diff options
author | Daisuke Miyakawa <dmiyakawa@google.com> | 2010-08-18 13:35:47 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-08-18 13:35:47 -0700 |
commit | a7bb3ba54aed70919c8304ae4227ab5106243f75 (patch) | |
tree | 5039f03e3924ecc6c6c7ddfcb2cccc8cdf950803 /core/tests | |
parent | 3719f8568e809ffd30f90adc38993256a9d3d066 (diff) | |
parent | f996ed9f2e4a992e5d884077a15dcc23a8d90c44 (diff) | |
download | frameworks_base-a7bb3ba54aed70919c8304ae4227ab5106243f75.zip frameworks_base-a7bb3ba54aed70919c8304ae4227ab5106243f75.tar.gz frameworks_base-a7bb3ba54aed70919c8304ae4227ab5106243f75.tar.bz2 |
am f996ed9f: Merge "Make vCard importer/exporter aware of multi-byte parameters." into gingerbread
Merge commit 'f996ed9f2e4a992e5d884077a15dcc23a8d90c44' into gingerbread-plus-aosp
* commit 'f996ed9f2e4a992e5d884077a15dcc23a8d90c44':
Make vCard importer/exporter aware of multi-byte parameters.
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\"\"")); + } } |