14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/* 24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project 34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License"); 54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * you may not use this file except in compliance with the License. 64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * You may obtain a copy of the License at 74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * http://www.apache.org/licenses/LICENSE-2.0 94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software 114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS, 124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * See the License for the specific language governing permissions and 144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * limitations under the License. 154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapackage com.android.vcard.tests; 174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.content.ContentValues; 194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Nickname; 204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Note; 214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Phone; 224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredName; 234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.VCardConfig; 26677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaimport com.android.vcard.tests.testutils.ContactEntry; 27677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaimport com.android.vcard.tests.testutils.ContentValuesBuilder; 28677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaimport com.android.vcard.tests.testutils.PropertyNodesVerifierElem; 29677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaimport com.android.vcard.tests.testutils.VCardTestsBase; 30677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaimport com.android.vcard.tests.testutils.PropertyNodesVerifierElem.TypeSet; 314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport java.util.Arrays; 334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapublic class VCardJapanizationTests extends VCardTestsBase { 354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa private void testNameUtf8Common(int vcardType) { 364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(vcardType); 374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContentValues contentValues = 45be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : null); 464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D", 484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa contentValues) 494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D", 504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList( 514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"), 524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa null, contentValues, null, null); 534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testNameUtf8V21() { 564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testNameUtf8Common(VCardConfig.VCARD_TYPE_V21_JAPANESE); 574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testNameUtf8V30() { 604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testNameUtf8Common(VCardConfig.VCARD_TYPE_V30_JAPANESE); 614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testNameShiftJis() { 644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V30_JAPANESE, "Shift_JIS"); 654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D", 754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForSJis) 764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D", 774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList( 784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"), 794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa null, mContentValuesForSJis, null, null); 804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * DoCoMo phones require all name elements should be in "family name" field. 844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testNameDoCoMo() { 864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa final String fullName = "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D"; 964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("N", fullName + ";;;;", 984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList(fullName, "", "", "", ""), 994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa null, mContentValuesForSJis, null, null) 1004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("FN", fullName, mContentValuesForSJis) 1014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("SOUND", ";;;;", new TypeSet("X-IRMC-N")) 1024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 1034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 1044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", "", new TypeSet("HOME")) 1054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 1064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 1074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 1084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", ""); 1094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa private void testPhoneticNameCommon(int vcardType, String charset) { 1124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(vcardType, charset); 1134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 1144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 1154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 1164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 1174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 1184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa final ContentValues contentValues = 1204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ("SHIFT_JIS".equalsIgnoreCase(charset) ? 121be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndSJis : 122be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa mContentValuesForSJis) : 123be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : null)); 1244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName(); 1254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa elem.addExpectedNode("X-PHONETIC-LAST-NAME", "\u3084\u307E\u3060", 1264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa contentValues) 1274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-PHONETIC-MIDDLE-NAME", 1284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0", 1294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa contentValues) 1304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-PHONETIC-FIRST-NAME", "\u305F\u308D\u3046", 1314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa contentValues); 132be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa if (!VCardConfig.isVersion21(vcardType)) { 1334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa elem.addExpectedNode("SORT-STRING", 1344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 \u305F\u308D\u3046", 1354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa contentValues); 1364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem() 1384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 1394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 1404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 1414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046") 1424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, 1434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 " + 1444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u305F\u308D\u3046"); 1454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPhoneticNameForJapaneseV21Utf8() { 1484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, null); 1494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPhoneticNameForJapaneseV21Sjis() { 1524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, "Shift_JIS"); 1534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPhoneticNameForJapaneseV30Utf8() { 1564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE, null); 1574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPhoneticNameForJapaneseV30SJis() { 1604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE, "Shift_JIS"); 1614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPhoneticNameForMobileV21_1() { 1644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE, "Shift_JIS"); 1654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 1664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 1674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 1684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 1694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 1704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 1724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("SOUND", 1734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " + 1744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\uFF80\uFF9B\uFF73;;;;", 1754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForSJis, new TypeSet("X-IRMC-N")); 1764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem() 1774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 1784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E") 1794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, 1804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91") 1814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73") 1824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, 1834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " + 1844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\uFF80\uFF9B\uFF73"); 1854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 1864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPhoneticNameForMobileV21_2() { 1884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE, "Shift_JIS"); 1894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 1904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 1914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 1924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 1934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 1944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 1954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("SOUND", "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73;;;;", 1964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForSJis, new TypeSet("X-IRMC-N")); 1974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem() 1984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 1994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E") 2004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73") 2014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73"); 2024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 2034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa private void testPostalAddressWithJapaneseCommon(int vcardType, String charset) { 2054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(vcardType, charset); 2064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 2074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107") 2094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751") 2104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02") 2114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C") 2124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POSTCODE, "494-1313") 2134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.COUNTRY, "\u65E5\u672C") 2144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.FORMATTED_ADDRESS, 2154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u3053\u3093\u306A\u3068\u3053\u308D\u3092\u898B" 2164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa + "\u308B\u306A\u3093\u3066\u6687\u4EBA\u3067\u3059\u304B\uFF1F") 2174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 2184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.LABEL, "\u304A\u3082\u3061\u304B\u3048\u308A"); 2194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContentValues contentValues = ("UTF-8".equalsIgnoreCase(charset) ? 221be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndSJis : 222be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa mContentValuesForSJis) : 223be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : 224be378d5b188f51cf717e5309e3c39180e85833a8Daisuke Miyakawa mContentValuesForUtf8)); 2254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName(); 2274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa // LABEL must be ignored in vCard 2.1. As for vCard 3.0, the current behavior is 2284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa // same as that in vCard 3.0, which can be changed in the future. 2294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa elem.addExpectedNode("ADR", Arrays.asList("\u79C1\u66F8\u7BB107", 2304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "", "\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C", 2314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "494-1313", "\u65E5\u672C"), 2324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa contentValues); 2334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addContentValuesVerifierElem().addExpected(StructuredPostal.CONTENT_ITEM_TYPE) 2344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107") 2354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751") 2364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02") 2374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C") 2384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POSTCODE, "494-1313") 2394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.COUNTRY, "\u65E5\u672C") 2404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.FORMATTED_ADDRESS, 2414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u65E5\u672C 494-1313 \u00D7\u00D7\u770C \u9E7F\u9AA8\u5E02 " + 2424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u96DB\u898B\u6CA2\u6751 " + "\u79C1\u66F8\u7BB107") 2434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME); 2444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 2454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPostalAddresswithJapaneseV21() { 2464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testPostalAddressWithJapaneseCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, "Shift_JIS"); 2474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 2484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 2504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Verifies that only one address field is emitted toward DoCoMo phones. 2514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Prefered type must (should?) be: HOME > WORK > OTHER > CUSTOM 2524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 2534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPostalAdrressForDoCoMo_1() { 2544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 2554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 2564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 2584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 2594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 2614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 2624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME) 2644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 2654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 2674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom") 2684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "4"); 2694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 2714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 2724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 2734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 2744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 2754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 2764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 2774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", 2784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME")); 2794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 2804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPostalAdrressForDoCoMo_2() { 2824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 2834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 2844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 2864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 2874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 2894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 2904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 2924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom") 2934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 2944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 2954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 2964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 2974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 2984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 2994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 3004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 3014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 3024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", 3034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList("2", "", "", "", "", "", ""), new TypeSet("WORK")); 3044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 3054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPostalAdrressForDoCoMo_3() { 3074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 3084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 3094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 3114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom1") 3124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 3134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 3154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 3164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 3184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom2") 3194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 3204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 3224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 3234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 3244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 3254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 3264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 3274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 3284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", Arrays.asList("2", "", "", "", "", "", "")); 3294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 3304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 3324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Verifies the vCard exporter tolerates null TYPE. 3334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 3344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testPostalAdrressForDoCoMo_4() { 3354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 3364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 3374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 3394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 3414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 3424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME) 3444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 3454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 3474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "4"); 3484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(StructuredPostal.POBOX, "5"); 3504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 3524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 3534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 3544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 3554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 3564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 3574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 3584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", 3594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME")); 3604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 3614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa private void testJapanesePhoneNumberCommon(int vcardType) { 3634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(vcardType); 3644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 3654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 3664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.NUMBER, "0312341234") 3674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_HOME); 3684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 3694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.NUMBER, "09012341234") 3704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_MOBILE); 3714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 3724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME")) 3734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL")); 3744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 3754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testJapanesePhoneNumberV21_1() { 3774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE); 3784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 3794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testJapanesePhoneNumberV30() { 3814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE); 3824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 3834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 3844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testJapanesePhoneNumberDoCoMo() { 3854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 3864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 3874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 3884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.NUMBER, "0312341234") 3894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_HOME); 3904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 3914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.NUMBER, "09012341234") 3924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_MOBILE); 3934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 3944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 3954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 3964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 3974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 3984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 3994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", "", new TypeSet("HOME")) 4004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME")) 4014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL")); 4024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 4034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 4044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testNoteDoCoMo() { 4054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 4064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 4074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Note.CONTENT_ITEM_TYPE) 4084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Note.NOTE, "note1"); 4094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Note.CONTENT_ITEM_TYPE) 4104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Note.NOTE, "note2"); 4114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa entry.addContentValues(Note.CONTENT_ITEM_TYPE) 4124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Note.NOTE, "note3"); 4134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 4144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa // More than one note fields must be aggregated into one note. 4154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 4164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 4174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 4184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 4194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 4204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-NO", "") 4214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 4224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("ADR", "", new TypeSet("HOME")) 4234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("NOTE", "note1\nnote2\nnote3", mContentValuesForQP); 4244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 4254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 4264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testAndroidCustomV21() { 4274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_GENERIC); 4284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addInputEntry().addContentValues(Nickname.CONTENT_ITEM_TYPE) 4294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .put(Nickname.NAME, "\u304D\u3083\u30FC\u30A8\u30C3\u30C1\u30FC"); 4304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 4314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa .addExpectedNode("X-ANDROID-CUSTOM", 4324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa Arrays.asList(Nickname.CONTENT_ITEM_TYPE, 4334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "\u304D\u3083\u30FC\u30A8\u30C3\u30C1\u30FC", 4344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa "", "", "", "", "", "", "", "", "", "", "", "", "", ""), 4354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndUtf8); 4364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 4374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa} 438