VCardJapanizationTests.java revision c4b51712d89e9fb742b598911e611c80ad51de82
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 */ 164fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 174fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawapackage com.android.unit_tests.vcard; 184fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 194fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport android.content.ContentValues; 204fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport android.pim.vcard.VCardConfig; 21839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Note; 22839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Phone; 234fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredName; 245a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 254fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 264fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport com.android.unit_tests.vcard.PropertyNodesVerifierElem.TypeSet; 27839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawaimport com.android.unit_tests.vcard.VCardTestsBase.ContactEntry; 28839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawaimport com.android.unit_tests.vcard.VCardTestsBase.VCardVerifier; 294fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 304fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport java.util.Arrays; 314fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 324fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawapublic class VCardJapanizationTests extends VCardTestsBase { 334fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa private void testNameUtf8Common(int vcardType) { 348c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(vcardType); 358c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 368c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa entry.buildData(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 = 434fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa (VCardConfig.isV30(vcardType) ? null : mContentValuesForQPAndUtf8); 444fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa verifier.addPropertyNodesVerifierElem() 454fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D", 464fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa contentValues) 474fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("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 verifier.verify(); 524fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 534fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 544fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameUtf8V21() { 554fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa testNameUtf8Common(VCardConfig.VCARD_TYPE_V21_JAPANESE_UTF8); 564fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 574fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 584fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameUtf8V30() { 594fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa testNameUtf8Common(VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8); 604fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 614fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 624fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameShiftJis() { 638c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_V30_JAPANESE_SJIS); 648c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 658c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa entry.buildData(StructuredName.CONTENT_ITEM_TYPE) 664fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 674fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 684fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 694fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 704fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 714fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 724fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa verifier.addPropertyNodesVerifierElem() 734fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D", 744fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa mContentValuesForSJis) 754fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D", 764fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa Arrays.asList( 774fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"), 784fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa null, mContentValuesForSJis, null, null); 794fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa verifier.verify(); 804fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 814fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 824fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa /** 834fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa * DoCoMo phones require all name elements should be in "family name" field. 844fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa */ 854fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa public void testNameDoCoMo() { 868c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_DOCOMO); 878c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 888c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa entry.buildData(StructuredName.CONTENT_ITEM_TYPE) 894fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069") 904fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B") 914fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.MIDDLE_NAME, "B") 924fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.PREFIX, "Dr.") 934fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .put(StructuredName.SUFFIX, "Ph.D"); 944fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa 954fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa final String fullName = "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D"; 964fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa verifier.addPropertyNodesVerifierElem() 974fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("N", fullName + ";;;;", 984fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa Arrays.asList(fullName, "", "", "", ""), 994fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa null, mContentValuesForSJis, null, null) 1004fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("FN", fullName, mContentValuesForSJis) 1014fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("SOUND", ";;;;", new TypeSet("X-IRMC-N")) 1024fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("TEL", "", new TypeSet("HOME")) 1034fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("EMAIL", "", new TypeSet("HOME")) 1044fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("ADR", "", new TypeSet("HOME")) 1054fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("X-CLASS", "PUBLIC") 1064fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("X-REDUCTION", "") 1074fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("X-NO", "") 1084fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa .addNodeWithoutOrder("X-DCM-HMN-MODE", ""); 1094fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa verifier.verify(); 1104fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa } 111592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 112592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa private void testPhoneticNameCommon(int vcardType) { 1138c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(vcardType); 1148c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 1158c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa entry.buildData(StructuredName.CONTENT_ITEM_TYPE) 116592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 117592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 118592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 119592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 120592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa final ContentValues contentValues = 121592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa (VCardConfig.usesShiftJis(vcardType) ? 122592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa (VCardConfig.isV30(vcardType) ? mContentValuesForSJis : 123592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa mContentValuesForQPAndSJis) : 124592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa (VCardConfig.isV30(vcardType) ? null : mContentValuesForQPAndUtf8)); 125592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa PropertyNodesVerifierElem elem = verifier.addPropertyNodesVerifierElemWithEmptyName(); 126592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa elem.addNodeWithoutOrder("X-PHONETIC-LAST-NAME", "\u3084\u307E\u3060", 127592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues) 128592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addNodeWithoutOrder("X-PHONETIC-MIDDLE-NAME", 129592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0", 130592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues) 131592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addNodeWithoutOrder("X-PHONETIC-FIRST-NAME", "\u305F\u308D\u3046", 132592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues); 133592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa if (VCardConfig.isV30(vcardType)) { 134592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa elem.addNodeWithoutOrder("SORT-STRING", 135592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 \u305F\u308D\u3046", 136592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa contentValues); 137592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 138592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa ContentValuesBuilder builder = verifier.addImportVerifier() 139592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 140592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 141592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 142592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046") 143592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, 144592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 " + 145592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\u305F\u308D\u3046"); 146592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa verifier.verify(); 147592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 148592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 149592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV21Utf8() { 150592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_UTF8); 151592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 152592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 153592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV21Sjis() { 154592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_SJIS); 155592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 156592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 157592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV30Utf8() { 158592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8); 159592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 160592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 161592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForJapaneseV30SJis() { 162592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE_SJIS); 163592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 164592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 165592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForMobileV21_1() { 1668c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE); 1678c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 1688c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa entry.buildData(StructuredName.CONTENT_ITEM_TYPE) 169592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 170592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0") 171592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 172592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 173592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa verifier.addPropertyNodesVerifierElem() 174592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addNodeWithoutOrder("SOUND", 175592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " + 176592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF80\uFF9B\uFF73;;;;", 177592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa mContentValuesForSJis, new TypeSet("X-IRMC-N")); 178592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa ContentValuesBuilder builder = verifier.addImportVerifier() 179592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 180592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E") 181592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_MIDDLE_NAME, 182592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91") 183592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73") 184592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, 185592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " + 186592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa "\uFF80\uFF9B\uFF73"); 187592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa verifier.verify(); 188592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 189592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 190592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa public void testPhoneticNameForMobileV21_2() { 1918c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE); 1928c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 1938c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa entry.buildData(StructuredName.CONTENT_ITEM_TYPE) 194592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060") 195592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046"); 196592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa 197592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa verifier.addPropertyNodesVerifierElem() 198592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addNodeWithoutOrder("SOUND", "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73;;;;", 199592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa mContentValuesForSJis, new TypeSet("X-IRMC-N")); 200592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa ContentValuesBuilder builder = verifier.addImportVerifier() 201592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .addExpected(StructuredName.CONTENT_ITEM_TYPE); 202592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E") 203592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73") 204592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa .put(StructuredName.DISPLAY_NAME, "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73"); 205592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa verifier.verify(); 206592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa } 2075a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 208c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa private void testPostalAddressWithJapaneseCommon(int vcardType) { 209c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(vcardType); 210c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 211c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 212c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107") 213c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.NEIGHBORHOOD, 214c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "\u30A2\u30D1\u30FC\u30C8\u0020\u0033\u0034\u53F7\u5BA4") 215c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751") 216c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02") 217c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C") 218c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.POSTCODE, "494-1313") 219c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.COUNTRY, "\u65E5\u672C") 220c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.FORMATTED_ADDRESS, 221c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "\u3053\u3093\u306A\u3068\u3053\u308D\u3092\u898B" 222c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa + "\u308B\u306A\u3093\u3066\u6687\u4EBA\u3067\u3059\u304B\uFF1F") 223c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 224c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa .put(StructuredPostal.LABEL, "\u304A\u3082\u3061\u304B\u3048\u308A"); 225c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa 226c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa ContentValues contentValues = (VCardConfig.usesShiftJis(vcardType) ? 227c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa (VCardConfig.isV30(vcardType) ? mContentValuesForSJis : 228c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa mContentValuesForQPAndSJis) : 229c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa (VCardConfig.isV30(vcardType) ? mContentValuesForUtf8 : 230c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa mContentValuesForQPAndUtf8)); 231c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa 232c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa PropertyNodesVerifierElem elem = verifier.addPropertyNodesVerifierElemWithEmptyName(); 233c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa // LABEL must be ignored in vCard 2.1. As for vCard 3.0, the current behavior is 234c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa // same as that in vCard 3.0, which can be changed in the future. 235c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa elem.addNodeWithoutOrder("ADR", Arrays.asList("\u79C1\u66F8\u7BB107", 236c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "\u30A2\u30D1\u30FC\u30C8\u0020\u0033\u0034\u53F7\u5BA4", 237c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C", 238c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa "494-1313", "\u65E5\u672C"), 239c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa contentValues); 240c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa verifier.verify(); 241c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa } 242c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa 243c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAddresswithJapaneseV21() { 244c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa testPostalAddressWithJapaneseCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_SJIS); 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() { 2528c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_DOCOMO); 2538c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 2545a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 2555a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 2565a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 2575a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 2585a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 2595a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 2605a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 2615a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME) 2625a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 2635a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(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 2685a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.addPropertyNodesVerifierElemWithEmptyName() 2695a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("TEL", "", new TypeSet("HOME")) 2705a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("EMAIL", "", new TypeSet("HOME")) 2715a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-CLASS", "PUBLIC") 2725a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-REDUCTION", "") 2735a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-NO", "") 2745a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-DCM-HMN-MODE", "") 2755a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("ADR", 2765a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME")); 2775a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.verify(); 2785a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 2795a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 280c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_2() { 2818c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_DOCOMO); 2828c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 2835a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 2845a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 2855a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 2865a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 2875a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 2885a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 2895a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 2905a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 2915a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom") 2925a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 2935a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 2945a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.addPropertyNodesVerifierElemWithEmptyName() 2955a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("TEL", "", new TypeSet("HOME")) 2965a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("EMAIL", "", new TypeSet("HOME")) 2975a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-CLASS", "PUBLIC") 2985a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-REDUCTION", "") 2995a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-NO", "") 3005a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-DCM-HMN-MODE", "") 3015a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("ADR", 3025a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa Arrays.asList("2", "", "", "", "", "", ""), new TypeSet("WORK")); 3035a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.verify(); 3045a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 3055a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 306c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_3() { 3078c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_DOCOMO); 3088c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 3095a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3105a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 3115a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom1") 3125a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 3135a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3145a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 3155a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 3165a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3175a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM) 3185a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.LABEL, "custom2") 3195a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 3205a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 3215a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.addPropertyNodesVerifierElemWithEmptyName() 3225a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("TEL", "", new TypeSet("HOME")) 3235a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("EMAIL", "", new TypeSet("HOME")) 3245a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-CLASS", "PUBLIC") 3255a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-REDUCTION", "") 3265a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-NO", "") 3275a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-DCM-HMN-MODE", "") 3285a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("ADR", Arrays.asList("2", "", "", "", "", "", "")); 3295a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.verify(); 3305a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 3315a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 3325a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa /** 3335a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa * Verifies the vCard exporter tolerates null TYPE. 3345a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa */ 335c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa public void testPostalAdrressForDoCoMo_4() { 3368c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_DOCOMO); 3378c808187249f473702e0f4bee2147da292490963Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 3385a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3395a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "1"); 3405a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3415a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER) 3425a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "2"); 3435a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3445a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME) 3455a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "3"); 3465a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3475a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 3485a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "4"); 3495a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE) 3505a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .put(StructuredPostal.POBOX, "5"); 3515a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa 3525a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.addPropertyNodesVerifierElemWithEmptyName() 3535a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("TEL", "", new TypeSet("HOME")) 3545a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("EMAIL", "", new TypeSet("HOME")) 3555a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-CLASS", "PUBLIC") 3565a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-REDUCTION", "") 3575a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-NO", "") 3585a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("X-DCM-HMN-MODE", "") 3595a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa .addNodeWithoutOrder("ADR", 3605a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME")); 3615a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa verifier.verify(); 3625a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa } 363839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 364839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa private void testJapanesePhoneNumberCommon(int vcardType) { 365839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(vcardType); 366839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 367839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa entry.buildData(Phone.CONTENT_ITEM_TYPE) 368839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.NUMBER, "0312341234") 369839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_HOME); 370839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa entry.buildData(Phone.CONTENT_ITEM_TYPE) 371839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.NUMBER, "09012341234") 372839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Phone.TYPE, Phone.TYPE_MOBILE); 373839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa verifier.addPropertyNodesVerifierElemWithEmptyName() 374839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("TEL", "03-1234-1234", new TypeSet("HOME")) 375839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("TEL", "090-1234-1234", new TypeSet("WORK")); 376839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 377839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 378839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testJapanesePhoneNumberV21_1() { 379839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_UTF8); 380839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 381839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 382839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testJapanesePhoneNumberDoCoMo() { 383839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_DOCOMO); 384839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 385839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 386839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testJapanesePhoneNumberV30() { 387839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8); 388839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 389839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 390839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa public void testNoteDoCoMo() { 391839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa VCardVerifier verifier = new VCardVerifier(VCardConfig.VCARD_TYPE_DOCOMO); 392839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa ContactEntry entry = verifier.addInputEntry(); 393839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa entry.buildData(Note.CONTENT_ITEM_TYPE) 394839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Note.NOTE, "note1"); 395839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa entry.buildData(Note.CONTENT_ITEM_TYPE) 396839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Note.NOTE, "note2"); 397839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa entry.buildData(Note.CONTENT_ITEM_TYPE) 398839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .put(Note.NOTE, "note3"); 399839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa 400839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa // More than one note fields must be aggregated into one note. 401839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa verifier.addPropertyNodesVerifierElemWithEmptyName() 402839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("TEL", "", new TypeSet("HOME")) 403839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("EMAIL", "", new TypeSet("HOME")) 404839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("X-CLASS", "PUBLIC") 405839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("X-REDUCTION", "") 406839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("X-NO", "") 407839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("X-DCM-HMN-MODE", "") 408839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("ADR", "", new TypeSet("HOME")) 409839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa .addNodeWithoutOrder("NOTE", "note1\nnote2\nnote3", mContentValuesForQP); 410839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa verifier.verify(); 411839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa } 412839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa} 413