1package com.android.bluetooth.tests; 2 3import java.io.ByteArrayInputStream; 4import java.io.ByteArrayOutputStream; 5import java.io.InputStream; 6import java.io.UnsupportedEncodingException; 7import java.text.SimpleDateFormat; 8import java.util.Calendar; 9import java.util.Date; 10 11import org.apache.http.message.BasicHeaderValueFormatter; 12 13import android.preference.PreferenceFragment; 14import android.test.AndroidTestCase; 15import android.util.Log; 16import android.view.Menu; 17import android.view.MenuItem; 18 19import com.android.bluetooth.map.BluetoothMapAppParams; 20import com.android.bluetooth.map.BluetoothMapUtils.TYPE; 21import com.android.bluetooth.map.BluetoothMapSmsPdu; 22import com.android.bluetooth.map.BluetoothMapbMessage; 23import com.android.bluetooth.map.BluetoothMapbMessageMms; 24import com.android.bluetooth.map.BluetoothMapbMessageSms; 25import org.apache.http.message.BasicHeaderValueFormatter; 26import org.apache.http.message.BasicHeaderElement; 27 28/*** 29 * 30 * Test cases for the bMessage class. (encoding and decoding) 31 * 32 */ 33public class BluetoothMapbMessageTest extends AndroidTestCase { 34 protected static String TAG = "BluetoothMapbMessageTest"; 35 protected static final boolean D = true; 36 37 public BluetoothMapbMessageTest() { 38 super(); 39 } 40 41 /*** 42 * Test encoding of a simple SMS text message (UTF8). This validates most parameters. 43 */ 44 public void testSmsEncodeText() { 45 BluetoothMapbMessageSms msg = new BluetoothMapbMessageSms(); 46 String str1 = 47 "BEGIN:BMSG\r\n" + 48 "VERSION:1.0\r\n" + 49 "STATUS:UNREAD\r\n" + 50 "TYPE:SMS_GSM\r\n" + 51 "FOLDER:telecom/msg/inbox\r\n" + 52 "BEGIN:VCARD\r\n" + 53 "VERSION:3.0\r\n" + 54 "FN:Casper Bonde\r\n" + 55 "N:Bonde,Casper\r\n" + 56 "TEL:+4512345678\r\n" + 57 "TEL:+4587654321\r\n" + 58 "EMAIL:casper@email.add\r\n" + 59 "EMAIL:bonde@email.add\r\n" + 60 "END:VCARD\r\n" + 61 "BEGIN:BENV\r\n" + 62 "BEGIN:VCARD\r\n" + 63 "VERSION:3.0\r\n" + 64 "FN:Jens Hansen\r\n" + 65 "N:\r\n" + 66 "TEL:+4512345678\r\n" + 67 "TEL:+4587654321\r\n" + 68 "EMAIL:casper@email.add\r\n" + 69 "EMAIL:bonde@email.add\r\n" + 70 "END:VCARD\r\n" + 71 "BEGIN:BBODY\r\n" + 72 "CHARSET:UTF-8\r\n" + 73 "LENGTH:45\r\n" + 74 "BEGIN:MSG\r\n" + 75 "This is a short message\r\n" + 76 "END:MSG\r\n" + 77 "END:BBODY\r\n" + 78 "END:BENV\r\n" + 79 "END:BMSG\r\n"; 80 81 String encoded; 82 String[] phone = {"+4512345678", "+4587654321"}; 83 String[] email = {"casper@email.add", "bonde@email.add"}; 84 msg.addOriginator("Bonde,Casper", "Casper Bonde", phone, email); 85 msg.addRecipient("", "Jens Hansen", phone, email); 86 msg.setFolder("inbox"); 87 msg.setSmsBody("This is a short message"); 88 msg.setStatus(false); 89 msg.setType(TYPE.SMS_GSM); 90 try { 91 encoded = new String(msg.encode()); 92 if(D) Log.d(TAG, encoded); 93 assertTrue(str1.equals(encoded)); 94 } catch (UnsupportedEncodingException e) { 95 Log.d(TAG, "Encoding failed.",e); 96 assertTrue("Encoding failed.", true); 97 } 98 } 99 100 /*** 101 * Test native Deliver PDU encoding (decoding not possible), based on the example in the MAP 1.1 specification. 102 * The difference between this PDU, and the one in the specification: 103 * - The invalid SC address 0191 is replaced with no address 00 104 * - The "No more messages flag" is set (bit 2 in the second byte) 105 * - The phone number type is changed from private 91 to international 81 106 * - The time is changed to local time, since the time zone cannot be controlled through the API 107 */ 108 public void testSmsEncodeNativeDeliverPdu() { 109 BluetoothMapbMessageSms msg = new BluetoothMapbMessageSms(); 110 SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmmss"); 111 Date date = new Date(System.currentTimeMillis()); 112 String timeStr = format.format(date); // Format to YYMMDDTHHMMSS UTC time 113 ByteArrayOutputStream scTime = new ByteArrayOutputStream(7); 114 StringBuilder scTimeSb = new StringBuilder(); 115 byte[] timeChars; 116 try { 117 timeChars = timeStr.getBytes("US-ASCII"); 118 } catch (UnsupportedEncodingException e1) { 119 assertTrue("Failed to extract bytes from string using US-ASCII", true); 120 return; 121 } 122 123 for(int i = 0, n = timeStr.length(); i < n; i+=2) { 124 scTime.write((timeChars[i+1]-0x30) << 4 | (timeChars[i]-0x30)); // Offset from ascii char to decimal value 125 } 126 127 Calendar cal = Calendar.getInstance(); 128 int offset = (cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET)) / (15 * 60 * 1000); /* offset in quarters of an hour */ 129 String offsetString; 130 if(offset < 0) { 131 offsetString = String.format("%1$02d", -(offset)); 132 char[] offsetChars = offsetString.toCharArray(); 133 scTime.write((offsetChars[1]-0x30) << 4 | 0x40 | (offsetChars[0]-0x30)); 134 } 135 else { 136 offsetString = String.format("%1$02d", offset); 137 char[] offsetChars = offsetString.toCharArray(); 138 scTime.write((offsetChars[1]-0x30) << 4 | (offsetChars[0]-0x30)); 139 } 140 byte[] scTimeData = scTime.toByteArray(); 141 for(int i = 0; i < scTimeData.length; i++) { 142 scTimeSb.append(Integer.toString((scTimeData[i] >> 4) & 0x0f,16)); // MS-nibble first 143 scTimeSb.append(Integer.toString( scTimeData[i] & 0x0f,16)); 144 } 145 if(D) Log.v(TAG, "Generated time string: " + scTimeSb.toString()); 146 String expected = 147 "BEGIN:BMSG\r\n" + 148 "VERSION:1.0\r\n" + 149 "STATUS:UNREAD\r\n" + 150 "TYPE:SMS_GSM\r\n" + 151 "FOLDER:telecom/msg/inbox\r\n" + 152 "BEGIN:VCARD\r\n" + 153 "VERSION:3.0\r\n" + 154 "FN:Casper Bonde\r\n" + 155 "N:Bonde,Casper\r\n" + 156 "TEL:00498912345678\r\n" + 157 "TEL:+4587654321\r\n" + 158 "EMAIL:casper@email.add\r\n" + 159 "EMAIL:bonde@email.add\r\n" + 160 "END:VCARD\r\n" + 161 "BEGIN:BENV\r\n" + 162 "BEGIN:VCARD\r\n" + 163 "VERSION:3.0\r\n" + 164 "FN:Jens Hansen\r\n" + 165 "N:\r\n" + 166 "TEL:00498912345678\r\n" + 167 "TEL:+4587654321\r\n" + 168 "EMAIL:casper@email.add\r\n" + 169 "EMAIL:bonde@email.add\r\n" + 170 "END:VCARD\r\n" + 171 "BEGIN:BBODY\r\n" + 172 "ENCODING:G-7BIT\r\n" + 173 "LENGTH:94\r\n" + 174 "BEGIN:MSG\r\n" + 175 "00040E81009498214365870000" + scTimeSb.toString() + 176 "11CC32FD34079DDF20737A8E4EBBCF21\r\n" + 177 "END:MSG\r\n" + 178 "END:BBODY\r\n" + 179 "END:BENV\r\n" + 180 "END:BMSG\r\n"; 181 182 String encoded; 183 String[] phone = {"00498912345678", "+4587654321"}; 184 String[] email = {"casper@email.add", "bonde@email.add"}; 185 msg.addOriginator("Bonde,Casper", "Casper Bonde", phone, email); 186 msg.addRecipient("", "Jens Hansen", phone, email); 187 msg.setFolder("inbox"); 188 /* TODO: extract current time, and build the expected string */ 189 msg.setSmsBodyPdus(BluetoothMapSmsPdu.getDeliverPdus("Let's go fishing!", "00498912345678", date.getTime())); 190 msg.setStatus(false); 191 msg.setType(TYPE.SMS_GSM); 192 try { 193 byte[] encodedBytes = msg.encode(); 194// InputStream is = new ByteArrayInputStream(encodedBytes); 195 encoded = new String(encodedBytes); 196// BluetoothMapbMessage newMsg = BluetoothMapbMessage.parse(is, BluetoothMapAppParams.CHARSET_NATIVE); 197// String decoded = ((BluetoothMapbMessageSms) newMsg).getSmsBody(); 198 if(D) Log.d(TAG, "\nExpected: \n" + expected); 199 if(D) Log.d(TAG, "\nEncoded: \n" + encoded); 200// if(D) Log.d(TAG, "\nDecoded: \n" + decoded); 201 assertTrue(expected.equalsIgnoreCase(encoded)); 202 } catch (UnsupportedEncodingException e) { 203 Log.d(TAG, "Encoding failed.",e); 204 assertTrue("Encoding failed.", true); 205 } 206 } 207 208 /*** 209 * Test native Submit PDU encoding and decoding, based on the example in the MAP 1.1 specification. 210 * The difference between this PDU, and the one in the specification: 211 * - The invalid SC address 0191 is replaced with no address 00 212 * - The PDU is converted to a submit PDU by adding the TP-MR and removing the service center time stamp. 213 * - The phone number type is changed from private 91 to international 81 214 */ 215 public void testSmsEncodeDecodeNativeSubmitPdu() { 216 BluetoothMapbMessageSms msg = new BluetoothMapbMessageSms(); 217 String expected = 218 "BEGIN:BMSG\r\n" + 219 "VERSION:1.0\r\n" + 220 "STATUS:UNREAD\r\n" + 221 "TYPE:SMS_GSM\r\n" + 222 "FOLDER:telecom/msg/outbox\r\n" + 223 "BEGIN:VCARD\r\n" + 224 "VERSION:3.0\r\n" + 225 "FN:Casper Bonde\r\n" + 226 "N:Bonde,Casper\r\n" + 227 "TEL:00498912345678\r\n" + 228 "TEL:+4587654321\r\n" + 229 "EMAIL:casper@email.add\r\n" + 230 "EMAIL:bonde@email.add\r\n" + 231 "END:VCARD\r\n" + 232 "BEGIN:BENV\r\n" + 233 "BEGIN:VCARD\r\n" + 234 "VERSION:3.0\r\n" + 235 "FN:Jens Hansen\r\n" + 236 "N:\r\n" + 237 "TEL:00498912345678\r\n" + 238 "TEL:+4587654321\r\n" + 239 "EMAIL:casper@email.add\r\n" + 240 "EMAIL:bonde@email.add\r\n" + 241 "END:VCARD\r\n" + 242 "BEGIN:BBODY\r\n" + 243 "ENCODING:G-7BIT\r\n" + 244 "LENGTH:82\r\n" + 245 "BEGIN:MSG\r\n" + /*Length 11 */ 246 "0001000E8100949821436587000011CC32FD34079DDF20737A8E4EBBCF21\r\n" + /* Length 62 */ 247 "END:MSG\r\n" + /* Length 9 */ 248 "END:BBODY\r\n" + 249 "END:BENV\r\n" + 250 "END:BMSG\r\n"; 251 252 String encoded; 253 String[] phone = {"00498912345678", "+4587654321"}; 254 String[] email = {"casper@email.add", "bonde@email.add"}; 255 msg.addOriginator("Bonde,Casper", "Casper Bonde", phone, email); 256 msg.addRecipient("", "Jens Hansen", phone, email); 257 msg.setFolder("outbox"); 258 /* TODO: extract current time, and build the expected string */ 259 msg.setSmsBodyPdus(BluetoothMapSmsPdu.getSubmitPdus("Let's go fishing!", "00498912345678")); 260 msg.setStatus(false); 261 msg.setType(TYPE.SMS_GSM); 262 try { 263 byte[] encodedBytes = msg.encode(); 264 InputStream is = new ByteArrayInputStream(encodedBytes); 265 encoded = new String(encodedBytes); 266 BluetoothMapbMessage newMsg = BluetoothMapbMessage.parse(is, BluetoothMapAppParams.CHARSET_NATIVE); 267 String decoded = ((BluetoothMapbMessageSms) newMsg).getSmsBody(); 268 if(D) Log.d(TAG, "\nCalling encoder on decoded message to log its content"); 269 newMsg.encode(); 270 if(D) Log.d(TAG, "\nExpected: \n" + expected); 271 if(D) Log.d(TAG, "\nEncoded: \n" + encoded); 272 if(D) Log.d(TAG, "\nDecoded: \n" + decoded); 273 assertTrue("The encoded bMessage do not match the expected.", expected.equalsIgnoreCase(encoded)); 274 assertTrue("The decoded text is \"" + decoded + "\" - expected \"Let's go fishing!\"", decoded.equalsIgnoreCase("Let's go fishing!")); 275 } catch (UnsupportedEncodingException e) { 276 Log.d(TAG, "Encoding failed.",e); 277 assertTrue("Encoding failed.", true); 278 } 279 } 280 281 /*** 282 * Test native Submit PDU encoding and decoding, based on the example in the MAP 1.1 specification. 283 * The difference between this PDU, and the one in the specification: 284 * - The invalid SC address 0191 is replaced with no address 00 285 * - The PDU is converted to a submit PDU by adding the TP-MR and removing the service center time stamp. 286 * - The phone number type is changed from private 91 to international 81 287 */ 288 public void testSmsEncodeDecodeNativeSubmitPduWithSc() { 289 BluetoothMapbMessageSms msg = new BluetoothMapbMessageSms(); 290 String encoded = 291 "BEGIN:BMSG\r\n" + 292 "VERSION:1.0\r\n" + 293 "STATUS:UNREAD\r\n" + 294 "TYPE:SMS_GSM\r\n" + 295 "FOLDER:telecom/msg/outbox\r\n" + 296 "BEGIN:VCARD\r\n" + 297 "VERSION:3.0\r\n" + 298 "FN:Casper Bonde\r\n" + 299 "N:Bonde,Casper\r\n" + 300 "TEL:00498912345678\r\n" + 301 "TEL:+4587654321\r\n" + 302 "EMAIL:casper@email.add\r\n" + 303 "EMAIL:bonde@email.add\r\n" + 304 "END:VCARD\r\n" + 305 "BEGIN:BENV\r\n" + 306 "BEGIN:VCARD\r\n" + 307 "VERSION:3.0\r\n" + 308 "FN:Jens Hansen\r\n" + 309 "N:\r\n" + 310 "TEL:00498912345678\r\n" + 311 "TEL:+4587654321\r\n" + 312 "EMAIL:casper@email.add\r\n" + 313 "EMAIL:bonde@email.add\r\n" + 314 "END:VCARD\r\n" + 315 "BEGIN:BBODY\r\n" + 316 "ENCODING:G-7BIT\r\n" + 317 "LENGTH:58 \r\n" + 318 "BEGIN:MSG\r\n" + /*Length 11 */ 319 "018001000B912184254590F500000346F61B\r\n" + /* Length 38 */ 320 "END:MSG\r\n" + /* Length 9 */ 321 "END:BBODY\r\n" + 322 "END:BENV\r\n" + 323 "END:BMSG\r\n"; 324 try { 325 String expected = "Flo"; 326 InputStream is = new ByteArrayInputStream(encoded.getBytes("UTF-8")); 327 BluetoothMapbMessage newMsg = BluetoothMapbMessage.parse(is, BluetoothMapAppParams.CHARSET_NATIVE); 328 String decoded = ((BluetoothMapbMessageSms) newMsg).getSmsBody(); 329 if(D) Log.d(TAG, "\nEncoded: \n" + encoded); 330 if(D) Log.d(TAG, "\nDecoded: \n" + decoded); 331 assertTrue("Decoded string (" + decoded + ") did not match expected (" + expected + ")", expected.equals(decoded)); 332 } catch (UnsupportedEncodingException e) { 333 Log.d(TAG, "Encoding failed.",e); 334 assertTrue("Encoding failed.", false); 335 } 336 } 337 338 /*** 339 * Validate that the folder is correctly truncated to 512 bytes, if a longer folder path 340 * is supplied. 341 */ 342 public void testFolderLengthTruncation() { 343 String folder = ""; 344 int levelCount = 0; 345 while(folder.length()<640) 346 folder += "/folder" + levelCount++; 347 348 String expected = folder.substring(folder.length()-512, folder.length()); 349 350 BluetoothMapbMessageSms msg = new BluetoothMapbMessageSms(); 351 msg.setFolder(folder); 352 msg.setStatus(false); 353 msg.setType(TYPE.SMS_GSM); 354 355 try { 356 byte[] encoded = msg.encode(); 357 InputStream is = new ByteArrayInputStream(encoded); 358 if(D) Log.d(TAG, new String(encoded)); 359 BluetoothMapbMessage newMsg = BluetoothMapbMessage.parse(is, BluetoothMapAppParams.CHARSET_UTF8); 360 assertTrue("Wrong length expected 512, got " + expected.length(), expected.length() == 512); 361 Log.d(TAG, "expected: " + expected); 362 Log.d(TAG, "newMsg.getFolder(): " + newMsg.getFolder()); 363 assertTrue("Folder string did not match", expected.equals(newMsg.getFolder())); 364 365 } catch (UnsupportedEncodingException e) { 366 Log.d(TAG, "Encoding failed.",e); 367 assertTrue("Encoding failed", false); 368 } 369 } 370 371 /*** 372 * Test multipart message decoding. 373 */ 374 public void testSmsMultipartDecode() { 375 BluetoothMapbMessageSms msg = new BluetoothMapbMessageSms(); 376 String encoded = 377 "BEGIN:BMSG\r\n" + 378 "VERSION:1.0\r\n" + 379 "STATUS:READ\r\n" + 380 "TYPE:SMS_GSM\r\n" + 381 "FOLDER:/telecom/msg/outbox\r\n" + 382 "BEGIN:VCARD\r\n" + 383 "VERSION:2.1\r\n" + 384 "N:12485254094 \r\n" + 385 "TEL:12485254094\r\n" + 386 "END:VCARD\r\n" + 387 "BEGIN:BENV\r\n" + 388 "BEGIN:VCARD\r\n" + 389 "VERSION:2.1\r\n" + 390 "N:+12485254095 \r\n" + 391 "TEL:+12485254095\r\n" + 392 "END:VCARD\r\n" + 393 "BEGIN:BBODY\r\n" + 394 "ENCODING:G-7BIT\r\n" + 395 "LENGTH:762\r\n" + 396 "BEGIN:MSG\r\n" + 397 "018041000B912184254590F50000A0050003010301A8E8F41C949E83C220F69B0E7A9B41F7B79C3C07D1DF20F35BDE068541E3B77B1CA697DD617A990C6A97E7F3F0B90C0ABBC9203ABA0C32A7E5733A889E6E9741F437888E2E83E66537B92C07A5DBED32391DA697D97990FB4D4F9BF3A07619B476BFEFA03B3A4C07E5DF7550585E06B9DF74D0BC2E2F83F2EF3A681C7683C86F509A0EBABFEB\r\n" + 398 "END:MSG\r\n" + 399 "BEGIN:MSG\r\n" + 400 "018041000B912184254590F50000A0050003010302C820767A5D06D1D16550DA4D2FBBC96532485E1EA7E1E9B29B0E82B3CBE17919644EBBC9A0779D0EA2A3CB20735A3EA783E8E8B4FB0CA2BF41E437C8FDA683E6757919947FD741E3B01B447E83D274D0FD5D679341ECB7BD0C4AD341F7F01C44479741E6B47C4E0791C379D0DB0C6AE741F2F2BCDE2E83CC6F3928FFAECB41E57638CD06A5E7\r\n" + 401 "END:MSG\r\n" + 402 "BEGIN:MSG\r\n" + 403 "018041000B912184254590F500001A050003010303DC6F3A685E979741F9771D340EBB41E437\r\n" + 404 "END:MSG\r\n" + 405 "END:BBODY\r\n" + 406 "END:BENV\r\n" + 407 "END:BMSG\r\n"; 408 try { 409 InputStream is = new ByteArrayInputStream(encoded.getBytes("UTF-8")); 410 BluetoothMapbMessage newMsg = BluetoothMapbMessage.parse(is, BluetoothMapAppParams.CHARSET_NATIVE); 411 String decoded = ((BluetoothMapbMessageSms) newMsg).getSmsBody(); 412 if(D) Log.d(TAG, "\nEncoded: \n" + encoded); 413 if(D) Log.d(TAG, "\nDecoded: \n" + decoded); 414 } catch (UnsupportedEncodingException e) { 415 Log.d(TAG, "Decoding failed.",e); 416 assertTrue("Decoding failed.", false); 417 } 418 } 419 420 /*** 421 * Test encoding of a simple MMS text message (UTF8). This validates most parameters. 422 */ 423 public void testMmsEncodeText() { 424 BluetoothMapbMessageMms msg = new BluetoothMapbMessageMms(); 425 String str1 = 426 "BEGIN:BMSG\r\n" + 427 "VERSION:1.0\r\n" + 428 "STATUS:UNREAD\r\n" + 429 "TYPE:MMS\r\n" + 430 "FOLDER:telecom/msg/inbox\r\n" + 431 "BEGIN:VCARD\r\n" + 432 "VERSION:3.0\r\n" + 433 "FN:Casper Bonde\r\n" + 434 "N:Bonde,Casper\r\n" + 435 "TEL:+4512345678\r\n" + 436 "TEL:+4587654321\r\n" + 437 "EMAIL:casper@email.add\r\n" + 438 "EMAIL:bonde@email.add\r\n" + 439 "END:VCARD\r\n" + 440 "BEGIN:BENV\r\n" + 441 "BEGIN:VCARD\r\n" + 442 "VERSION:3.0\r\n" + 443 "FN:Jørn Hansen\r\n" + 444 "N:\r\n" + 445 "TEL:+4512345678\r\n" + 446 "TEL:+4587654321\r\n" + 447 "EMAIL:casper@email.add\r\n" + 448 "EMAIL:bonde@email.add\r\n" + 449 "END:VCARD\r\n" + 450 "BEGIN:BBODY\r\n" + 451 "CHARSET:UTF-8\r\n" + 452 "LENGTH:45\r\n" + 453 "BEGIN:MSG\r\n" + 454 "This is a short message\r\n" + 455 "END:MSG\r\n" + 456 "END:BBODY\r\n" + 457 "END:BENV\r\n" + 458 "END:BMSG\r\n"; 459 460 String encoded; 461 String[] phone = {"+4512345678", "+4587654321"}; 462 String[] email = {"casper@email.add", "bonde@email.add"}; 463 msg.addOriginator("Bonde,Casper", "Casper Bonde", phone, email); 464 msg.addRecipient("", "Jørn Hansen", phone, email); 465 msg.setFolder("inbox"); 466 msg.setIncludeAttachments(false); 467 msg.addTo("Jørn Hansen", "bonde@email.add"); 468 msg.addCc("Jens Hansen", "bonde@email.add"); 469 msg.addFrom("Jørn Hansen", "bonde@email.add"); 470 BluetoothMapbMessageMms.MimePart part = msg.addMimePart(); 471 part.mPartName = "partNameText"; 472 part.mContentType ="dsfajfdlk/text/asdfafda"; 473 try { 474 part.mData = new String("This is a short message\r\n").getBytes("UTF-8"); 475 } 476 catch (UnsupportedEncodingException e) { 477 if(D) Log.e(TAG, "UnsupportedEncodingException should never happen???", e); 478 assertTrue(false); 479 } 480 481 part = msg.addMimePart(); 482 part.mPartName = "partNameimage"; 483 part.mContentType = "dsfajfdlk/image/asdfafda"; 484 part.mData = null; 485 486 msg.setStatus(false); 487 msg.setType(TYPE.MMS); 488 try { 489 encoded = new String(msg.encode()); 490 if(D) Log.d(TAG, encoded); 491 assertTrue(str1.equals(encoded)); 492 } catch (UnsupportedEncodingException e) { 493 Log.d(TAG, "Encoding failed.",e); 494 assertTrue("Encoding failed.", true); 495 } 496 } 497 498 public void testHeaderEncode() { 499 BasicHeaderElement header = new BasicHeaderElement("To","Jørgen <joergen@hest.com>"); 500 String headerStr = BasicHeaderValueFormatter.formatHeaderElement(header, true, BasicHeaderValueFormatter.DEFAULT); 501 if(D) Log.i(TAG, "The encoded header: " + headerStr); 502 } 503 504} 505 506