2 * Copyright (C) 2009 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package android.pim.vcard;
18 import android.content.ContentValues;
19 import android.pim.vcard.test_utils.ContactEntry;
20 import android.pim.vcard.test_utils.ContentValuesBuilder;
21 import android.pim.vcard.test_utils.PropertyNodesVerifierElem;
22 import android.pim.vcard.test_utils.PropertyNodesVerifierElem.TypeSet;
23 import android.pim.vcard.test_utils.VCardTestsBase;
24 import android.provider.ContactsContract.CommonDataKinds.Nickname;
25 import android.provider.ContactsContract.CommonDataKinds.Note;
26 import android.provider.ContactsContract.CommonDataKinds.Phone;
27 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
28 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
30 import java.util.Arrays;
32 public class VCardJapanizationTests extends VCardTestsBase {
33 private void testNameUtf8Common(int vcardType) {
34 mVerifier.initForExportTest(vcardType);
35 ContactEntry entry = mVerifier.addInputEntry();
36 entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
37 .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069")
38 .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B")
39 .put(StructuredName.MIDDLE_NAME, "B")
40 .put(StructuredName.PREFIX, "Dr.")
41 .put(StructuredName.SUFFIX, "Ph.D");
42 ContentValues contentValues =
43 (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : null);
44 mVerifier.addPropertyNodesVerifierElem()
45 .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D",
47 .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D",
49 "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"),
50 null, contentValues, null, null);
53 public void testNameUtf8V21() {
54 testNameUtf8Common(VCardConfig.VCARD_TYPE_V21_JAPANESE);
57 public void testNameUtf8V30() {
58 testNameUtf8Common(VCardConfig.VCARD_TYPE_V30_JAPANESE);
61 public void testNameShiftJis() {
62 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V30_JAPANESE, "Shift_JIS");
63 ContactEntry entry = mVerifier.addInputEntry();
64 entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
65 .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069")
66 .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B")
67 .put(StructuredName.MIDDLE_NAME, "B")
68 .put(StructuredName.PREFIX, "Dr.")
69 .put(StructuredName.SUFFIX, "Ph.D");
71 mVerifier.addPropertyNodesVerifierElem()
72 .addExpectedNode("FN", "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D",
73 mContentValuesForSJis)
74 .addExpectedNode("N", "\u3075\u308B\u3069;\u3091\u308A\u304B;B;Dr.;Ph.D",
76 "\u3075\u308B\u3069", "\u3091\u308A\u304B", "B", "Dr.", "Ph.D"),
77 null, mContentValuesForSJis, null, null);
81 * DoCoMo phones require all name elements should be in "family name" field.
83 public void testNameDoCoMo() {
84 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
85 ContactEntry entry = mVerifier.addInputEntry();
86 entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
87 .put(StructuredName.FAMILY_NAME, "\u3075\u308B\u3069")
88 .put(StructuredName.GIVEN_NAME, "\u3091\u308A\u304B")
89 .put(StructuredName.MIDDLE_NAME, "B")
90 .put(StructuredName.PREFIX, "Dr.")
91 .put(StructuredName.SUFFIX, "Ph.D");
93 final String fullName = "Dr. \u3075\u308B\u3069 B \u3091\u308A\u304B Ph.D";
94 mVerifier.addPropertyNodesVerifierElem()
95 .addExpectedNode("N", fullName + ";;;;",
96 Arrays.asList(fullName, "", "", "", ""),
97 null, mContentValuesForSJis, null, null)
98 .addExpectedNode("FN", fullName, mContentValuesForSJis)
99 .addExpectedNode("SOUND", ";;;;", new TypeSet("X-IRMC-N"))
100 .addExpectedNode("TEL", "", new TypeSet("HOME"))
101 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
102 .addExpectedNode("ADR", "", new TypeSet("HOME"))
103 .addExpectedNode("X-CLASS", "PUBLIC")
104 .addExpectedNode("X-REDUCTION", "")
105 .addExpectedNode("X-NO", "")
106 .addExpectedNode("X-DCM-HMN-MODE", "");
109 private void testPhoneticNameCommon(int vcardType, String charset) {
110 mVerifier.initForExportTest(vcardType, charset);
111 ContactEntry entry = mVerifier.addInputEntry();
112 entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
113 .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
114 .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0")
115 .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046");
117 final ContentValues contentValues =
118 ("SHIFT_JIS".equalsIgnoreCase(charset) ?
119 (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndSJis :
120 mContentValuesForSJis) :
121 (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 : null));
122 PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName();
123 elem.addExpectedNode("X-PHONETIC-LAST-NAME", "\u3084\u307E\u3060",
125 .addExpectedNode("X-PHONETIC-MIDDLE-NAME",
126 "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0",
128 .addExpectedNode("X-PHONETIC-FIRST-NAME", "\u305F\u308D\u3046",
130 if (!VCardConfig.isVersion21(vcardType)) {
131 elem.addExpectedNode("SORT-STRING",
132 "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 \u305F\u308D\u3046",
135 ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem()
136 .addExpected(StructuredName.CONTENT_ITEM_TYPE);
137 builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
138 .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0")
139 .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046")
140 .put(StructuredName.DISPLAY_NAME,
141 "\u3084\u307E\u3060 \u30DF\u30C9\u30EB\u30CD\u30FC\u30E0 " +
142 "\u305F\u308D\u3046");
145 public void testPhoneticNameForJapaneseV21Utf8() {
146 testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, null);
149 public void testPhoneticNameForJapaneseV21Sjis() {
150 testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, "Shift_JIS");
153 public void testPhoneticNameForJapaneseV30Utf8() {
154 testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE, null);
157 public void testPhoneticNameForJapaneseV30SJis() {
158 testPhoneticNameCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE, "Shift_JIS");
161 public void testPhoneticNameForMobileV21_1() {
162 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE, "Shift_JIS");
163 ContactEntry entry = mVerifier.addInputEntry();
164 entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
165 .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
166 .put(StructuredName.PHONETIC_MIDDLE_NAME, "\u30DF\u30C9\u30EB\u30CD\u30FC\u30E0")
167 .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046");
169 mVerifier.addPropertyNodesVerifierElem()
170 .addExpectedNode("SOUND",
171 "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " +
172 "\uFF80\uFF9B\uFF73;;;;",
173 mContentValuesForSJis, new TypeSet("X-IRMC-N"));
174 ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem()
175 .addExpected(StructuredName.CONTENT_ITEM_TYPE);
176 builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E")
177 .put(StructuredName.PHONETIC_MIDDLE_NAME,
178 "\uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91")
179 .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73")
180 .put(StructuredName.DISPLAY_NAME,
181 "\uFF94\uFF8F\uFF80\uFF9E \uFF90\uFF84\uFF9E\uFF99\uFF88\uFF70\uFF91 " +
182 "\uFF80\uFF9B\uFF73");
185 public void testPhoneticNameForMobileV21_2() {
186 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE_MOBILE, "Shift_JIS");
187 ContactEntry entry = mVerifier.addInputEntry();
188 entry.addContentValues(StructuredName.CONTENT_ITEM_TYPE)
189 .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3084\u307E\u3060")
190 .put(StructuredName.PHONETIC_GIVEN_NAME, "\u305F\u308D\u3046");
192 mVerifier.addPropertyNodesVerifierElem()
193 .addExpectedNode("SOUND", "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73;;;;",
194 mContentValuesForSJis, new TypeSet("X-IRMC-N"));
195 ContentValuesBuilder builder = mVerifier.addContentValuesVerifierElem()
196 .addExpected(StructuredName.CONTENT_ITEM_TYPE);
197 builder.put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF94\uFF8F\uFF80\uFF9E")
198 .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF80\uFF9B\uFF73")
199 .put(StructuredName.DISPLAY_NAME, "\uFF94\uFF8F\uFF80\uFF9E \uFF80\uFF9B\uFF73");
202 private void testPostalAddressWithJapaneseCommon(int vcardType, String charset) {
203 mVerifier.initForExportTest(vcardType, charset);
204 ContactEntry entry = mVerifier.addInputEntry();
205 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
206 .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107")
207 .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751")
208 .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
209 .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C")
210 .put(StructuredPostal.POSTCODE, "494-1313")
211 .put(StructuredPostal.COUNTRY, "\u65E5\u672C")
212 .put(StructuredPostal.FORMATTED_ADDRESS,
213 "\u3053\u3093\u306A\u3068\u3053\u308D\u3092\u898B"
214 + "\u308B\u306A\u3093\u3066\u6687\u4EBA\u3067\u3059\u304B\uFF1F")
215 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
216 .put(StructuredPostal.LABEL, "\u304A\u3082\u3061\u304B\u3048\u308A");
218 ContentValues contentValues = ("UTF-8".equalsIgnoreCase(charset) ?
219 (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndSJis :
220 mContentValuesForSJis) :
221 (VCardConfig.isVersion21(vcardType) ? mContentValuesForQPAndUtf8 :
222 mContentValuesForUtf8));
224 PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName();
225 // LABEL must be ignored in vCard 2.1. As for vCard 3.0, the current behavior is
226 // same as that in vCard 3.0, which can be changed in the future.
227 elem.addExpectedNode("ADR", Arrays.asList("\u79C1\u66F8\u7BB107",
228 "", "\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C",
229 "494-1313", "\u65E5\u672C"),
231 mVerifier.addContentValuesVerifierElem().addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
232 .put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107")
233 .put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751")
234 .put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
235 .put(StructuredPostal.REGION, "\u00D7\u00D7\u770C")
236 .put(StructuredPostal.POSTCODE, "494-1313")
237 .put(StructuredPostal.COUNTRY, "\u65E5\u672C")
238 .put(StructuredPostal.FORMATTED_ADDRESS,
239 "\u65E5\u672C 494-1313 \u00D7\u00D7\u770C \u9E7F\u9AA8\u5E02 " +
240 "\u96DB\u898B\u6CA2\u6751 " + "\u79C1\u66F8\u7BB107")
241 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);
243 public void testPostalAddresswithJapaneseV21() {
244 testPostalAddressWithJapaneseCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE, "Shift_JIS");
248 * Verifies that only one address field is emitted toward DoCoMo phones.
249 * Prefered type must (should?) be: HOME > WORK > OTHER > CUSTOM
251 public void testPostalAdrressForDoCoMo_1() {
252 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
253 ContactEntry entry = mVerifier.addInputEntry();
254 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
255 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
256 .put(StructuredPostal.POBOX, "1");
257 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
258 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
259 .put(StructuredPostal.POBOX, "2");
260 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
261 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME)
262 .put(StructuredPostal.POBOX, "3");
263 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
264 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
265 .put(StructuredPostal.LABEL, "custom")
266 .put(StructuredPostal.POBOX, "4");
268 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
269 .addExpectedNode("TEL", "", new TypeSet("HOME"))
270 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
271 .addExpectedNode("X-CLASS", "PUBLIC")
272 .addExpectedNode("X-REDUCTION", "")
273 .addExpectedNode("X-NO", "")
274 .addExpectedNode("X-DCM-HMN-MODE", "")
275 .addExpectedNode("ADR",
276 Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME"));
279 public void testPostalAdrressForDoCoMo_2() {
280 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
281 ContactEntry entry = mVerifier.addInputEntry();
282 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
283 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
284 .put(StructuredPostal.POBOX, "1");
285 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
286 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
287 .put(StructuredPostal.POBOX, "2");
288 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
289 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
290 .put(StructuredPostal.LABEL, "custom")
291 .put(StructuredPostal.POBOX, "3");
293 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
294 .addExpectedNode("TEL", "", new TypeSet("HOME"))
295 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
296 .addExpectedNode("X-CLASS", "PUBLIC")
297 .addExpectedNode("X-REDUCTION", "")
298 .addExpectedNode("X-NO", "")
299 .addExpectedNode("X-DCM-HMN-MODE", "")
300 .addExpectedNode("ADR",
301 Arrays.asList("2", "", "", "", "", "", ""), new TypeSet("WORK"));
304 public void testPostalAdrressForDoCoMo_3() {
305 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
306 ContactEntry entry = mVerifier.addInputEntry();
307 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
308 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
309 .put(StructuredPostal.LABEL, "custom1")
310 .put(StructuredPostal.POBOX, "1");
311 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
312 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
313 .put(StructuredPostal.POBOX, "2");
314 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
315 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
316 .put(StructuredPostal.LABEL, "custom2")
317 .put(StructuredPostal.POBOX, "3");
319 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
320 .addExpectedNode("TEL", "", new TypeSet("HOME"))
321 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
322 .addExpectedNode("X-CLASS", "PUBLIC")
323 .addExpectedNode("X-REDUCTION", "")
324 .addExpectedNode("X-NO", "")
325 .addExpectedNode("X-DCM-HMN-MODE", "")
326 .addExpectedNode("ADR", Arrays.asList("2", "", "", "", "", "", ""));
330 * Verifies the vCard exporter tolerates null TYPE.
332 public void testPostalAdrressForDoCoMo_4() {
333 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
334 ContactEntry entry = mVerifier.addInputEntry();
335 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
336 .put(StructuredPostal.POBOX, "1");
337 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
338 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_OTHER)
339 .put(StructuredPostal.POBOX, "2");
340 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
341 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME)
342 .put(StructuredPostal.POBOX, "3");
343 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
344 .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
345 .put(StructuredPostal.POBOX, "4");
346 entry.addContentValues(StructuredPostal.CONTENT_ITEM_TYPE)
347 .put(StructuredPostal.POBOX, "5");
349 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
350 .addExpectedNode("TEL", "", new TypeSet("HOME"))
351 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
352 .addExpectedNode("X-CLASS", "PUBLIC")
353 .addExpectedNode("X-REDUCTION", "")
354 .addExpectedNode("X-NO", "")
355 .addExpectedNode("X-DCM-HMN-MODE", "")
356 .addExpectedNode("ADR",
357 Arrays.asList("3", "", "", "", "", "", ""), new TypeSet("HOME"));
360 private void testJapanesePhoneNumberCommon(int vcardType) {
361 mVerifier.initForExportTest(vcardType);
362 ContactEntry entry = mVerifier.addInputEntry();
363 entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
364 .put(Phone.NUMBER, "0312341234")
365 .put(Phone.TYPE, Phone.TYPE_HOME);
366 entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
367 .put(Phone.NUMBER, "09012341234")
368 .put(Phone.TYPE, Phone.TYPE_MOBILE);
369 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
370 .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME"))
371 .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL"));
374 public void testJapanesePhoneNumberV21_1() {
375 testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE);
378 public void testJapanesePhoneNumberV30() {
379 testJapanesePhoneNumberCommon(VCardConfig.VCARD_TYPE_V30_JAPANESE);
382 public void testJapanesePhoneNumberDoCoMo() {
383 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
384 ContactEntry entry = mVerifier.addInputEntry();
385 entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
386 .put(Phone.NUMBER, "0312341234")
387 .put(Phone.TYPE, Phone.TYPE_HOME);
388 entry.addContentValues(Phone.CONTENT_ITEM_TYPE)
389 .put(Phone.NUMBER, "09012341234")
390 .put(Phone.TYPE, Phone.TYPE_MOBILE);
391 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
392 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
393 .addExpectedNode("X-CLASS", "PUBLIC")
394 .addExpectedNode("X-REDUCTION", "")
395 .addExpectedNode("X-NO", "")
396 .addExpectedNode("X-DCM-HMN-MODE", "")
397 .addExpectedNode("ADR", "", new TypeSet("HOME"))
398 .addExpectedNode("TEL", "03-1234-1234", new TypeSet("HOME"))
399 .addExpectedNode("TEL", "090-1234-1234", new TypeSet("CELL"));
402 public void testNoteDoCoMo() {
403 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_DOCOMO, "Shift_JIS");
404 ContactEntry entry = mVerifier.addInputEntry();
405 entry.addContentValues(Note.CONTENT_ITEM_TYPE)
406 .put(Note.NOTE, "note1");
407 entry.addContentValues(Note.CONTENT_ITEM_TYPE)
408 .put(Note.NOTE, "note2");
409 entry.addContentValues(Note.CONTENT_ITEM_TYPE)
410 .put(Note.NOTE, "note3");
412 // More than one note fields must be aggregated into one note.
413 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
414 .addExpectedNode("TEL", "", new TypeSet("HOME"))
415 .addExpectedNode("EMAIL", "", new TypeSet("HOME"))
416 .addExpectedNode("X-CLASS", "PUBLIC")
417 .addExpectedNode("X-REDUCTION", "")
418 .addExpectedNode("X-NO", "")
419 .addExpectedNode("X-DCM-HMN-MODE", "")
420 .addExpectedNode("ADR", "", new TypeSet("HOME"))
421 .addExpectedNode("NOTE", "note1\nnote2\nnote3", mContentValuesForQP);
424 public void testAndroidCustomV21() {
425 mVerifier.initForExportTest(VCardConfig.VCARD_TYPE_V21_GENERIC);
426 mVerifier.addInputEntry().addContentValues(Nickname.CONTENT_ITEM_TYPE)
427 .put(Nickname.NAME, "\u304D\u3083\u30FC\u30A8\u30C3\u30C1\u30FC");
428 mVerifier.addPropertyNodesVerifierElemWithEmptyName()
429 .addExpectedNode("X-ANDROID-CUSTOM",
430 Arrays.asList(Nickname.CONTENT_ITEM_TYPE,
431 "\u304D\u3083\u30FC\u30A8\u30C3\u30C1\u30FC",
432 "", "", "", "", "", "", "", "", "", "", "", "", "", ""),
433 mContentValuesForQPAndUtf8);