14fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa/* 24fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project 34fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * 44fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License"); 54fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * you may not use this file except in compliance with the License. 64fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * You may obtain a copy of the License at 74fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * 84fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * http://www.apache.org/licenses/LICENSE-2.0 94fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * 104fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * Unless required by applicable law or agreed to in writing, software 114fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS, 124fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * See the License for the specific language governing permissions and 144fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * limitations under the License. 154fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa */ 161a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyenpackage android.pim.vcard; 174fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 184fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport android.content.ContentValues; 193bd9b8f04cece37ab4405abc382e2810006b9f97Daisuke Miyakawaimport android.pim.vcard.test_utils.ContactEntry; 203bd9b8f04cece37ab4405abc382e2810006b9f97Daisuke Miyakawaimport android.pim.vcard.test_utils.ContentValuesBuilder; 213bd9b8f04cece37ab4405abc382e2810006b9f97Daisuke Miyakawaimport android.pim.vcard.test_utils.PropertyNodesVerifierElem; 2269831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawaimport android.pim.vcard.test_utils.PropertyNodesVerifierElem.TypeSet; 233bd9b8f04cece37ab4405abc382e2810006b9f97Daisuke Miyakawaimport android.pim.vcard.test_utils.VCardTestsBase; 24a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Nickname; 25839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Note; 26839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Phone; 274fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredName; 285a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 294fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 304fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport java.util.Arrays; 314fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 324fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawapublic class VCardJapanizationTests extends VCardTestsBase { 334fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa private void testNameUtf8Common(int vcardType) { 34673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.initForExportTest(vcardType); 35673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 36673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 374fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 384fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 394fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 404fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 414fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 424fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa ContentValues contentValues = 4369831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : null); 44673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 45673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D", 464fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa contentValues) 47673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D", 484fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa Arrays.asList( 494fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"), 504fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa null, contentValues, null, null); 514fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 524fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 534fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameUtf8V21() { 5469831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testNameUtf8Common(VCardConfig.VCARD_TYPE_V21_JAPANESE); 554fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 564fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 574fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameUtf8V30() { 5869831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testNameUtf8Common(VCardConfig.VCARD_TYPE_V30_JAPANESE); 594fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 604fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 614fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameShiftJis() { 6269831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V30_JAPANESE, "Shift_JIS"); 63673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 64673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 654fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 664fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 674fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 684fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 694fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 704fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 71673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 72673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D", 734fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa mContentValuesForSJis) 74673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D", 754fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa Arrays.asList( 764fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"), 774fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa null, mContentValuesForSJis, null, null); 784fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 794fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 804fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa /** 814fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * DoCoMo phones require all name elements should be in "family name" field. 824fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa */ 834fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameDoCoMo() { 8469831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 85673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 86673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 874fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 884fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 894fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 904fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 914fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 924fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 934fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa final String fullName = "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D"; 94673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 95673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("N", fullName + ";;;;", 964fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa Arrays.asList(fullName, "", "", "", ""), 974fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa null, mContentValuesForSJis, null, null) 98673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("FN", fullName, mContentValuesForSJis) 99673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("SOUND", ";;;;", new TypeSet("X-IRMC-N")) 100673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 101673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 102673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", "", new TypeSet("HOME")) 103673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 104673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 105673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 106673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", ""); 1074fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 108592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 10969831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa private void testPhoneticNameCommon(int vcardType, String charset) { 11069831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(vcardType, charset); 111673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 112673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 113592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 114592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 115592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 116592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 117592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa final ContentValues contentValues = 11869831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa ("SHIFT_JIS".equalsIgnoreCase(charset) ? 11969831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndSJis : 12069831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mContentValuesForSJis) : 12169831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : null)); 122673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName(); 123673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa elem.addExpectedNode("X-PHONETIC-LAST-NAME", "\u3084\u307E\u3060", 124592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues) 125673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-PHONETIC-MIDDLE-NAME", 126592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0", 127592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues) 128673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-PHONETIC-FIRST-NAME", "\u305F\u308D\u3046", 129592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues); 13069831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa if (!VCardConfig.isVersion21(vcardType)) { 131673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa elem.addExpectedNode("SORT-STRING", 132592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 \u305F\u308D\u3046", 133592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues); 134592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 135673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem() 136592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 137592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 138592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 139592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046") 140592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, 141592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 " + 142592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u305F\u308D\u3046"); 143592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 144592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 145592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV21Utf8() { 14669831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, null); 147592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 148592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 149592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV21Sjis() { 15069831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, "Shift_JIS"); 151592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 152592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 153592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV30Utf8() { 15469831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE, null); 155592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 156592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 157592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV30SJis() { 15869831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE, "Shift_JIS"); 159592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 160592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 161592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForMobileV21_1() { 16269831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE, "Shift_JIS"); 163673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 164673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 165592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 166592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 167592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 168592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 169673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 170673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("SOUND", 171592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " + 172592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF80\uFF9B\uFF73;;;;", 173592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa mContentValuesForSJis, new TypeSet("X-IRMC-N")); 174673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem() 175592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 176592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E") 177592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, 178592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91") 179592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73") 180592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, 181592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " + 182592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF80\uFF9B\uFF73"); 183592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 184592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 185592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForMobileV21_2() { 18669831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE, "Shift_JIS"); 187673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 188673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE) 189592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 190592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 191592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 192673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElem() 193673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("SOUND", "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73;;;;", 194592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa mContentValuesForSJis, new TypeSet("X-IRMC-N")); 195673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem() 196592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 197592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E") 198592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73") 199592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73"); 200592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 2015a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 20269831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa private void testPostalAddressWithJapaneseCommon(int vcardType, String charset) { 20369831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(vcardType, charset); 204673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 205673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 206c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107") 207c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751") 208c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02") 209c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C") 210c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.POSTCODE, "494-1313") 211c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.COUNTRY, "\u65E5\u672C") 212c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.FORMATTED_ADDRESS, 213c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "\u3053\u3093\u306A\u3068\u3053\u308D\u3092\u898B" 214c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa + "\u308B\u306A\u3093\u3066\u6687\u4EBA\u3067\u3059\u304B\uFF1F") 215c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 216c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.LABEL, "\u304A\u3082\u3061\u304B\u3048\u308A"); 217c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa 21869831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa ContentValues contentValues = ("UTF-8".equalsIgnoreCase(charset) ? 21969831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndSJis : 22069831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mContentValuesForSJis) : 22169831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : 22269831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mContentValuesForUtf8)); 223c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa 224673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName(); 225c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa // LABEL must be ignored in vCard 2.1. As for vCard 3.0, the current behavior is 226c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa // same as that in vCard 3.0, which can be changed in the future. 227673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa elem.addExpectedNode("ADR", Arrays.asList("\u79C1\u66F8\u7BB107", 228639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa "", "\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C", 229c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "494-1313", "\u65E5\u672C"), 230c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa contentValues); 231673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addContentValuesVerifierElem().addExpected(StructuredPostal.CONTENT_ITEM_TYPE) 232a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107") 233639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751") 234639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02") 235a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C") 236a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa .put(StructuredPostal.POSTCODE, "494-1313") 237a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa .put(StructuredPostal.COUNTRY, "\u65E5\u672C") 238a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa .put(StructuredPostal.FORMATTED_ADDRESS, 239a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa "\u65E5\u672C 494-1313 \u00D7\u00D7\u770C \u9E7F\u9AA8\u5E02 " + 240639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa "\u96DB\u898B\u6CA2\u6751 " + "\u79C1\u66F8\u7BB107") 241a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME); 242c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa } 243c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAddresswithJapaneseV21() { 24469831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testPostalAddressWithJapaneseCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, "Shift_JIS"); 245c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa } 246c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa 2475a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa /** 2485a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa * Verifies that only one address field is emitted toward DoCoMo phones. 2495a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa * Prefered type must (should?) be: HOME > WORK > OTHER > CUSTOM 2505a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa */ 251c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_1() { 25269831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 253673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 254673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2555a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 2565a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 257673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2585a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 2595a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 260673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2615a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME) 2625a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 263673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2645a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 2655a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom") 2665a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "4"); 2675a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 268673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 269673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 270673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 271673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 272673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 273673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 274673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 275673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", 2765a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME")); 2775a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 2785a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 279c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_2() { 28069831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 281673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 282673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2835a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 2845a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 285673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2865a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 2875a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 288673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 2895a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 2905a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom") 2915a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 2925a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 293673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 294673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 295673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 296673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 297673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 298673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 299673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 300673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", 3015a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa Arrays.asList("2", "", "", "", "", "", ""), new TypeSet("WORK")); 3025a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 3035a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 304c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_3() { 30569831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 306673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 307673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3085a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 3095a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom1") 3105a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 311673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3125a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 3135a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 314673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3155a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 3165a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom2") 3175a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 3185a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 319673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 320673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 321673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 322673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 323673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 324673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 325673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 326673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", Arrays.asList("2", "", "", "", "", "", "")); 3275a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 3285a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 3295a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa /** 3305a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa * Verifies the vCard exporter tolerates null TYPE. 3315a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa */ 332c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_4() { 33369831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 334673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 335673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3365a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 337673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3385a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 3395a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 340673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3415a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME) 3425a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 343673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3445a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 3455a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "4"); 346673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE) 3475a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "5"); 3485a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 349673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 350673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 351673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 352673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 353673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 354673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 355673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 356673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", 3575a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME")); 3585a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 359839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 360839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa private void testJapanesePhoneNumberCommon(int vcardType) { 361673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.initForExportTest(vcardType); 362673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 363673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 364839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.NUMBER, "0312341234") 365839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_HOME); 366673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 367839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.NUMBER, "09012341234") 368839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_MOBILE); 369673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 370673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME")) 371673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL")); 372839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 373839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 374839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testJapanesePhoneNumberV21_1() { 37569831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE); 376839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 377839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 378839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testJapanesePhoneNumberV30() { 37969831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE); 380839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 381839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 382673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa public void testJapanesePhoneNumberDoCoMo() { 38369831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 384673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 385673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 386673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .put(Phone.NUMBER, "0312341234") 387673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_HOME); 388673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Phone.CONTENT_ITEM_TYPE) 389673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .put(Phone.NUMBER, "09012341234") 390673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_MOBILE); 391673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 392673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 393673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 394673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 395673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 396673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 397673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", "", new TypeSet("HOME")) 398673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME")) 399673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL")); 400673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa } 401673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa 402839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testNoteDoCoMo() { 40369831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS"); 404673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa ContactEntry entry = mVerifier.addInputEntry(); 405673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Note.CONTENT_ITEM_TYPE) 406839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Note.NOTE, "note1"); 407673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Note.CONTENT_ITEM_TYPE) 408839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Note.NOTE, "note2"); 409673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa entry.addContentValues(Note.CONTENT_ITEM_TYPE) 410839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Note.NOTE, "note3"); 411839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 412839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa // More than one note fields must be aggregated into one note. 413673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 414673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("TEL", "", new TypeSet("HOME")) 415673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("EMAIL", "", new TypeSet("HOME")) 416673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-CLASS", "PUBLIC") 417673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-REDUCTION", "") 418673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-NO", "") 419673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("X-DCM-HMN-MODE", "") 420673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("ADR", "", new TypeSet("HOME")) 421673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa .addExpectedNode("NOTE", "note1\nnote2\nnote3", mContentValuesForQP); 422839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 423a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa 424a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa public void testAndroidCustomV21() { 42569831d9dc16c1d36739328910e5d7c0fb7d327feDaisuke Miyakawa mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_GENERIC); 426a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa mVerifier.addInputEntry().addContentValues(Nickname.CONTENT_ITEM_TYPE) 427a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa .put(Nickname.NAME, "\u304D\u3083\u30FC\u30A8\u30C3\u30C1\u30FC"); 428a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa mVerifier.addPropertyNodesVerifierElemWithEmptyName() 429a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa .addExpectedNode("X-ANDROID-CUSTOM", 430a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa Arrays.asList(Nickname.CONTENT_ITEM_TYPE, 431a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa "\u304D\u3083\u30FC\u30A8\u30C3\u30C1\u30FC", 432a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa "", "", "", "", "", "", "", "", "", "", "", "", "", ""), 433a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa mContentValuesForQPAndUtf8); 434a750fdd765ec253ffa8bf3d4848d5c3a35e1979bDaisuke Miyakawa } 435839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa} 436