diff options
| author | Daisuke Miyakawa <dmiyakawa@google.com> | 2010-08-17 16:42:06 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-08-17 16:42:06 -0700 |
| commit | f996ed9f2e4a992e5d884077a15dcc23a8d90c44 (patch) | |
| tree | 08b23c1ff8e43079af59f7eaeea4b60011c81fc1 /core/tests | |
| parent | 8c11e952305327183db9f7be719e4c94fde15a7c (diff) | |
| parent | b7688558cc30bceac8377640db68126e53dd545e (diff) | |
| download | frameworks_base-f996ed9f2e4a992e5d884077a15dcc23a8d90c44.zip frameworks_base-f996ed9f2e4a992e5d884077a15dcc23a8d90c44.tar.gz frameworks_base-f996ed9f2e4a992e5d884077a15dcc23a8d90c44.tar.bz2 | |
Merge "Make vCard importer/exporter aware of multi-byte parameters." into gingerbread
Diffstat (limited to 'core/tests')
3 files changed, 57 insertions, 0 deletions
diff --git a/core/tests/coretests/res/raw/v30_multibyte_param.vcf b/core/tests/coretests/res/raw/v30_multibyte_param.vcf new file mode 100644 index 0000000..cd200e5 --- /dev/null +++ b/core/tests/coretests/res/raw/v30_multibyte_param.vcf @@ -0,0 +1,5 @@ +BEGIN:VCARD
+VERSION:3.0
+N:F;G;M;;
+TEL;TYPE="่ดน":1
+END:VCARD
diff --git a/core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java b/core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java index 21f2254..e0e1f87 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java +++ b/core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java @@ -1008,4 +1008,26 @@ public class VCardImporterTests extends VCardTestsBase { .put(Phone.TYPE, Phone.TYPE_PAGER) .put(Phone.NUMBER, "6101231234@pagersample.com"); } + + public void testMultiBytePropV30_Parse() { + mVerifier.initForImportTest(V30, R.raw.v30_multibyte_param); + mVerifier.addPropertyNodesVerifierElem() + .addExpectedNodeWithOrder("VERSION", "3.0") + .addExpectedNodeWithOrder("N", Arrays.asList("F", "G", "M", "", "")) + .addExpectedNodeWithOrder("TEL", "1", new TypeSet("\u8D39")); + } + + public void testMultiBytePropV30() { + mVerifier.initForImportTest(V30, R.raw.v30_multibyte_param); + final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem(); + elem.addExpected(StructuredName.CONTENT_ITEM_TYPE) + .put(StructuredName.FAMILY_NAME, "F") + .put(StructuredName.MIDDLE_NAME, "M") + .put(StructuredName.GIVEN_NAME, "G") + .put(StructuredName.DISPLAY_NAME, "G M F"); + elem.addExpected(Phone.CONTENT_ITEM_TYPE) + .put(Phone.TYPE, Phone.TYPE_CUSTOM) + .put(Phone.LABEL, "\u8D39") + .put(Phone.NUMBER, "1"); + } } diff --git a/core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java b/core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java index 59299f9..e805bee 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java +++ b/core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java @@ -82,4 +82,34 @@ public class VCardUtilsTests extends TestCase { assertFalse(VCardUtils.containsOnlyAlphaDigitHyphen(String.valueOf((char)i))); } } + + public void testToStringAvailableAsV30ParamValue() { + // Smoke tests. + assertEquals("HOME", VCardUtils.toStringAvailableAsV30ParameValue("HOME")); + assertEquals("TEL", VCardUtils.toStringAvailableAsV30ParameValue("TEL")); + assertEquals("PAGER", VCardUtils.toStringAvailableAsV30ParameValue("PAGER")); + + assertEquals("\"\"", VCardUtils.toStringAvailableAsV30ParameValue("")); + + // non-Ascii must be allowed + assertEquals("\u4E8B\u52D9\u6240", + VCardUtils.toStringAvailableAsV30ParameValue("\u4E8B\u52D9\u6240")); + // Reported as bug report. + assertEquals("\u8D39", VCardUtils.toStringAvailableAsV30ParameValue("\u8D39")); + assertEquals("\"comma,separated\"", + VCardUtils.toStringAvailableAsV30ParameValue("comma,separated")); + assertEquals("\"colon:aware\"", + VCardUtils.toStringAvailableAsV30ParameValue("colon:aware")); + // CTL characters. + assertEquals("CTLExample", + VCardUtils.toStringAvailableAsV30ParameValue("CTL\u0001Example")); + // DQUOTE must be removed. + assertEquals("quoted", + VCardUtils.toStringAvailableAsV30ParameValue("\"quoted\"")); + // DQUOTE must be removed basically, but we should detect a space, which + // require us to use DQUOTE again. + // Right-side has one more illegal dquote to test quote-handle code thoroughly. + assertEquals("\"Already quoted\"", + VCardUtils.toStringAvailableAsV30ParameValue("\"Already quoted\"\"")); + } } |
