VCardJapanizationTests.java revision 673c1d1fc9f3c004e999f763a9c718e656497d32
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;
274fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
284fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawaimport java.util.Arrays;
294fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
304fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawapublic class VCardJapanizationTests extends VCardTestsBase {
314fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    private void testNameUtf8Common(int vcardType) {
32673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(vcardType);
33673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
34673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
354fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069")
364fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B")
374fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "B")
384fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.PREFIX, "Dr.")
394fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.SUFFIX, "Ph.D");
404fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa        ContentValues contentValues =
414fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa            (VCardConfig.isV30(vcardType) ? null : mContentValuesForQPAndUtf8);
42673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
43673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D",
444fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                        contentValues)
45673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D",
464fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                        Arrays.asList(
474fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                                "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"),
484fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                                null, contentValues, null, null);
494fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    }
504fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
514fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    public void testNameUtf8V21() {
524fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa        testNameUtf8Common(VCardConfig.VCARD_TYPE_V21_JAPANESE_UTF8);
534fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    }
544fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
554fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    public void testNameUtf8V30() {
564fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa        testNameUtf8Common(VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8);
574fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    }
584fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
594fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    public void testNameShiftJis() {
60673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V30_JAPANESE_SJIS);
61673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
62673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
634fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069")
644fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B")
654fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "B")
664fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.PREFIX, "Dr.")
674fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.SUFFIX, "Ph.D");
684fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
69673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
70673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D",
714fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                        mContentValuesForSJis)
72673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D",
734fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                        Arrays.asList(
744fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                                "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"),
754fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                                null, mContentValuesForSJis, null, null);
764fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    }
774fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
784fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    /**
794fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa     * DoCoMo phones require all name elements should be in "family name" field.
804fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa     */
814fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    public void testNameDoCoMo() {
82673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
83673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
84673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
854fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069")
864fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B")
874fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "B")
884fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.PREFIX, "Dr.")
894fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                .put(StructuredName.SUFFIX, "Ph.D");
904fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa
914fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa        final String fullName = "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D";
92673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
93673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("N", fullName + ";;;;",
944fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                        Arrays.asList(fullName, "", "", "", ""),
954fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa                        null, mContentValuesForSJis, null, null)
96673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("FN", fullName, mContentValuesForSJis)
97673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("SOUND", ";;;;", new TypeSet("X-IRMC-N"))
98673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "", new TypeSet("HOME"))
99673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
100673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR", "", new TypeSet("HOME"))
101673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
102673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
103673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
104673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "");
1054fe2c57c3c123dfd0c335b2390a661bcb7b546fbDaisuke Miyakawa    }
106592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
107592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    private void testPhoneticNameCommon(int vcardType) {
108673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(vcardType);
109673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
110673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
111592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
112592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0")
113592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046");
114592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
115592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        final ContentValues contentValues =
116592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa            (VCardConfig.usesShiftJis(vcardType) ?
117592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                    (VCardConfig.isV30(vcardType) ? mContentValuesForSJis :
118592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                            mContentValuesForQPAndSJis) :
119592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                    (VCardConfig.isV30(vcardType) ? null : mContentValuesForQPAndUtf8));
120673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName();
121673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        elem.addExpectedNode("X-PHONETIC-LAST-NAME", "\u3084\u307E\u3060",
122592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        contentValues)
123673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-PHONETIC-MIDDLE-NAME",
124592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0",
125592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        contentValues)
126673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-PHONETIC-FIRST-NAME", "\u305F\u308D\u3046",
127592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        contentValues);
128592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        if (VCardConfig.isV30(vcardType)) {
129673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa            elem.addExpectedNode("SORT-STRING",
130592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                    "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 \u305F\u308D\u3046",
131592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                    contentValues);
132592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        }
133673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem()
134592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE);
135592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
136592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0")
137592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046")
138592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME,
139592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 " +
140592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\u305F\u308D\u3046");
141592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
142592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
143592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    public void testPhoneticNameForJapaneseV21Utf8() {
144592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_UTF8);
145592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
146592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
147592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    public void testPhoneticNameForJapaneseV21Sjis() {
148592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_SJIS);
149592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
150592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
151592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    public void testPhoneticNameForJapaneseV30Utf8() {
152592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8);
153592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
154592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
155592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    public void testPhoneticNameForJapaneseV30SJis() {
156592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE_SJIS);
157592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
158592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
159592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    public void testPhoneticNameForMobileV21_1() {
160673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE);
161673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
162673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
163592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
164592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0")
165592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046");
166592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
167673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
168673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("SOUND",
169592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " +
170592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\uFF80\uFF9B\uFF73;;;;",
171592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        mContentValuesForSJis, new TypeSet("X-IRMC-N"));
172673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem()
173592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE);
174592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E")
175592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_MIDDLE_NAME,
176592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91")
177592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73")
178592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME,
179592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " +
180592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                        "\uFF80\uFF9B\uFF73");
181592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
182592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
183592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    public void testPhoneticNameForMobileV21_2() {
184673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE);
185673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
186673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
187592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
188592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046");
189592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa
190673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
191673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("SOUND", "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73;;;;",
192592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                                mContentValuesForSJis, new TypeSet("X-IRMC-N"));
193673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem()
194592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE);
195592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa        builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E")
196592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73")
197592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73");
198592988d307e8d305ca163c4e58da0fb350054194Daisuke Miyakawa    }
1995a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
200c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    private void testPostalAddressWithJapaneseCommon(int vcardType) {
201673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(vcardType);
202673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
203673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
204c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107")
205c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751")
206c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
207c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C")
208c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "494-1313")
209c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.COUNTRY, "\u65E5\u672C")
210c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
211c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                        "\u3053\u3093\u306A\u3068\u3053\u308D\u3092\u898B"
212c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                        + "\u308B\u306A\u3093\u3066\u6687\u4EBA\u3067\u3059\u304B\uFF1F")
213c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
214c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                .put(StructuredPostal.LABEL, "\u304A\u3082\u3061\u304B\u3048\u308A");
215c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa
216c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa        ContentValues contentValues = (VCardConfig.usesShiftJis(vcardType) ?
217c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                (VCardConfig.isV30(vcardType) ? mContentValuesForSJis :
218c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                    mContentValuesForQPAndSJis) :
219c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                (VCardConfig.isV30(vcardType) ? mContentValuesForUtf8 :
220c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                    mContentValuesForQPAndUtf8));
221c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa
222673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName();
223c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa        // LABEL must be ignored in vCard 2.1. As for vCard 3.0, the current behavior is
224c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa        // same as that in vCard 3.0, which can be changed in the future.
225673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        elem.addExpectedNode("ADR", Arrays.asList("\u79C1\u66F8\u7BB107",
226639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa                "", "\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C",
227c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                "494-1313", "\u65E5\u672C"),
228c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa                contentValues);
229673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem().addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
230a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107")
231639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa                .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751")
232639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa                .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
233a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C")
234a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                .put(StructuredPostal.POSTCODE, "494-1313")
235a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                .put(StructuredPostal.COUNTRY, "\u65E5\u672C")
236a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
237a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                        "\u65E5\u672C 494-1313 \u00D7\u00D7\u770C \u9E7F\u9AA8\u5E02 " +
238639b0f032bd933286a89812544460680a6a01ae4Daisuke Miyakawa                        "\u96DB\u898B\u6CA2\u6751 " + "\u79C1\u66F8\u7BB107")
239a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98aDaisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);
240c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    }
241c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    public void testPostalAddresswithJapaneseV21() {
242c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa        testPostalAddressWithJapaneseCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_SJIS);
243c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    }
244c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa
2455a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa    /**
2465a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa     * Verifies that only one address field is emitted toward DoCoMo phones.
2475a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa     * Prefered type must (should?) be: HOME > WORK > OTHER > CUSTOM
2485a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa     */
249c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    public void testPostalAdrressForDoCoMo_1() {
250673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
251673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
252673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2535a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
2545a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "1");
255673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2565a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
2575a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "2");
258673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2595a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME)
2605a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "3");
261673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2625a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
2635a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.LABEL, "custom")
2645a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "4");
2655a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
266673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
267673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "", new TypeSet("HOME"))
268673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
269673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
270673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
271673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
272673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "")
273673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR",
2745a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                        Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME"));
2755a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa    }
2765a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
277c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    public void testPostalAdrressForDoCoMo_2() {
278673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
279673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
280673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2815a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
2825a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "1");
283673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2845a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
2855a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "2");
286673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
2875a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
2885a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.LABEL, "custom")
2895a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "3");
2905a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
291673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
292673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "", new TypeSet("HOME"))
293673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
294673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
295673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
296673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
297673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "")
298673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR",
2995a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                        Arrays.asList("2", "", "", "", "", "", ""), new TypeSet("WORK"));
3005a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa    }
3015a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
302c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    public void testPostalAdrressForDoCoMo_3() {
303673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
304673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
305673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3065a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
3075a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.LABEL, "custom1")
3085a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "1");
309673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3105a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
3115a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "2");
312673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3135a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
3145a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.LABEL, "custom2")
3155a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "3");
3165a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
317673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
318673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "", new TypeSet("HOME"))
319673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
320673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
321673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
322673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
323673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "")
324673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR", Arrays.asList("2", "", "", "", "", "", ""));
3255a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa    }
3265a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
3275a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa    /**
3285a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa     * Verifies the vCard exporter tolerates null TYPE.
3295a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa     */
330c4b51712d89e9fb742b598911e611c80ad51de82Daisuke Miyakawa    public void testPostalAdrressForDoCoMo_4() {
331673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
332673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
333673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3345a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "1");
335673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3365a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
3375a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "2");
338673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3395a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME)
3405a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "3");
341673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3425a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
3435a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "4");
344673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
3455a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                .put(StructuredPostal.POBOX, "5");
3465a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa
347673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
348673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "", new TypeSet("HOME"))
349673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
350673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
351673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
352673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
353673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "")
354673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR",
3555a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa                        Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME"));
3565a1f2d2de026b582fbe8b1a46a83ad33760a2c48Daisuke Miyakawa    }
357839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa
358839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    private void testJapanesePhoneNumberCommon(int vcardType) {
359673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(vcardType);
360673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
361673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
362839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Phone.NUMBER, "0312341234")
363839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME);
364673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
365839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Phone.NUMBER, "09012341234")
366839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_MOBILE);
367673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
368673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME"))
369673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL"));
370839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    }
371839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa
372839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    public void testJapanesePhoneNumberV21_1() {
373839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa        testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_UTF8);
374839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    }
375839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa
376839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    public void testJapanesePhoneNumberV30() {
377839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa        testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8);
378839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    }
379839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa
380673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa    public void testJapanesePhoneNumberDoCoMo() {
381673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
382673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
383673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
384673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .put(Phone.NUMBER, "0312341234")
385673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME);
386673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
387673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .put(Phone.NUMBER, "09012341234")
388673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_MOBILE);
389673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
390673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
391673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
392673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
393673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
394673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "")
395673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR", "", new TypeSet("HOME"))
396673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME"))
397673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL"));
398673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa    }
399673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa
400839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    public void testNoteDoCoMo() {
401673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO);
402673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        ContactEntry entry = mVerifier.addInputEntry();
403673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Note.CONTENT_ITEM_TYPE)
404839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Note.NOTE, "note1");
405673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Note.CONTENT_ITEM_TYPE)
406839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Note.NOTE, "note2");
407673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        entry.addContentValues(Note.CONTENT_ITEM_TYPE)
408839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa                .put(Note.NOTE, "note3");
409839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa
410839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa        // More than one note fields must be aggregated into one note.
411673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithEmptyName()
412673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("TEL", "", new TypeSet("HOME"))
413673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
414673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-CLASS", "PUBLIC")
415673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-REDUCTION", "")
416673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-NO", "")
417673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("X-DCM-HMN-MODE", "")
418673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("ADR", "", new TypeSet("HOME"))
419673c1d1fc9f3c004e999f763a9c718e656497d32Daisuke Miyakawa                .addExpectedNode("NOTE", "note1\nnote2\nnote3", mContentValuesForQP);
420839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa    }
421839c036444c8a5335cc557e174acc7ee28baafc4Daisuke Miyakawa}
422