14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/*
24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project
34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *
44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License");
54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * you may not use this file except in compliance with the License.
64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * You may obtain a copy of the License at
74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *
84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *      http://www.apache.org/licenses/LICENSE-2.0
94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *
104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software
114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS,
124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * See the License for the specific language governing permissions and
144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * limitations under the License.
154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */
164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapackage com.android.vcard.tests;
174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.content.ContentValues;
194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Email;
204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Event;
2106ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Im;
2206ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Nickname;
234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Note;
244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Organization;
254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Phone;
264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Photo;
2788d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.SipAddress;
284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredName;
294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Website;
31d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawaimport android.provider.ContactsContract.Data;
324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
33a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Chengimport com.android.vcard.VCardConfig;
34a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Chengimport com.android.vcard.tests.testutils.ContentValuesVerifier;
35a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Chengimport com.android.vcard.tests.testutils.ContentValuesVerifierElem;
36a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Chengimport com.android.vcard.tests.testutils.PropertyNodesVerifierElem.TypeSet;
37a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Chengimport com.android.vcard.tests.testutils.VCardTestsBase;
38a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng
394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport java.util.Arrays;
404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapublic class VCardImporterTests extends VCardTestsBase {
424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    // Push data into int array at first since values like 0x80 are
434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    // interpreted as int by the compiler and casting all of them is
444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    // cumbersome...
454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private static final int[] sPhotoIntArrayForComplicatedCase = {
464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xff, 0xd8, 0xff, 0xe1, 0x0a, 0x0f, 0x45, 0x78, 0x69, 0x66, 0x00,
474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x4d, 0x4d, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0d,
484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x0e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xaa, 0x01, 0x0f, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0xba, 0x01, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00,
514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0xc2, 0x01, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x01, 0x1a, 0x00, 0x05, 0x00, 0x00, 0x00,
534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x1b, 0x00, 0x05, 0x00, 0x00,
544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x28, 0x00, 0x03, 0x00,
554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x31, 0x00, 0x02,
564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x32, 0x00,
574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xe6, 0x02, 0x13,
584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x82,
594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x98, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfa,
604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x87, 0x69, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01,
614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x84, 0xc4, 0xa5, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x08, 0x00, 0x00, 0x04, 0x1e, 0x32, 0x30, 0x30, 0x38, 0x31,
634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x30, 0x32, 0x39, 0x31, 0x33, 0x35, 0x35, 0x33, 0x31, 0x00, 0x00,
644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x44, 0x6f, 0x43, 0x6f, 0x4d, 0x6f, 0x00, 0x00, 0x44, 0x39, 0x30,
654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x69, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01,
664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x44, 0x39, 0x30,
674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x69, 0x20, 0x56, 0x65, 0x72, 0x31, 0x2e, 0x30, 0x30, 0x00,
684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x32, 0x30, 0x30, 0x38, 0x3a, 0x31, 0x30, 0x3a, 0x32, 0x39, 0x20,
694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0x33, 0x3a, 0x35, 0x35, 0x3a, 0x34, 0x37, 0x00, 0x20, 0x20,
704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x49, 0x4d, 0x00, 0x30, 0x33,
724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x30, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x14, 0x00,
734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x14, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x34, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x11, 0x09, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x0f, 0x0b, 0x00,
774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x27, 0x10, 0x00, 0x00, 0x05, 0x97, 0x00, 0x00, 0x27, 0x10,
784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x08, 0xb0, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x1c,
794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x02, 0x5e, 0x00, 0x00,
804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x27, 0x10, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x27, 0x10, 0x00,
814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0xcb, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x1b, 0xe5,
824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x27, 0x10, 0x00, 0x28, 0x82, 0x9a, 0x00, 0x05, 0x00,
834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x6a, 0x82, 0x9d, 0x00, 0x05,
844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x72, 0x88, 0x22, 0x00,
854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x90, 0x00,
864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x30, 0x32, 0x32, 0x30, 0x90,
874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x03, 0x7a,
884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x90, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x03,
894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8e, 0x91, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x01, 0x02,
904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x91, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00,
914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0xa2, 0x92, 0x01, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01,
924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x03, 0xaa, 0x92, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00,
934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x03, 0xb2, 0x92, 0x04, 0x00, 0x0a, 0x00, 0x00,
944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x03, 0xba, 0x92, 0x05, 0x00, 0x05, 0x00,
954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xc2, 0x92, 0x07, 0x00, 0x03,
964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x92, 0x08, 0x00,
974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x92, 0x09,
984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x92,
994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xca,
1004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x92, 0x7c, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x92, 0x86, 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00,
1024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0xd2, 0xa0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x30,
1034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0x30, 0x30, 0xa0, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
1044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00,
1054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x60, 0x00, 0x00, 0xa0, 0x03, 0x00, 0x03, 0x00, 0x00,
1064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x48, 0x00, 0x00, 0xa0, 0x05, 0x00, 0x04, 0x00,
1074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x04, 0x00, 0xa2, 0x0e, 0x00, 0x05,
1084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xe8, 0xa2, 0x0f, 0x00,
1094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xf0, 0xa2, 0x10,
1104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0xa2,
1114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x17, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00,
1124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa3, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00,
1134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0xa3, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
1144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0xa4, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00,
1154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
1164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0xa4, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
1174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x04, 0x00, 0x05, 0x00, 0x00,
1184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x03, 0xf8, 0xa4, 0x05, 0x00, 0x03, 0x00,
1194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x1d, 0x00, 0x00, 0xa4, 0x06, 0x00, 0x03,
1204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x07, 0x00,
1214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x08,
1224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa4,
1234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa4, 0x0a, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0xa4, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
1264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00,
1274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x27, 0x10, 0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x64,
1284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x32, 0x30, 0x30, 0x38, 0x3a, 0x31, 0x30, 0x3a, 0x32, 0x39, 0x20,
1294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0x33, 0x3a, 0x35, 0x35, 0x3a, 0x33, 0x31, 0x00, 0x32, 0x30,
1304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x30, 0x38, 0x3a, 0x31, 0x30, 0x3a, 0x32, 0x39, 0x20, 0x31, 0x33,
1314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0x35, 0x35, 0x3a, 0x34, 0x37, 0x00, 0x00, 0x00, 0x29, 0x88,
1324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0xb2, 0x00, 0x00, 0x00,
1334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x64, 0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00,
1344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x25, 0x00,
1354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x0a, 0x00, 0x00, 0x0e, 0x92, 0x00, 0x00, 0x03, 0xe8,
1364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x30, 0x30,
1374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0x31, 0x30, 0x32, 0x39, 0x31, 0x33, 0x35, 0x35, 0x33, 0x31,
1384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x20, 0x2a, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x2a,
1394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe2, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00,
1414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x52, 0x39, 0x38, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00,
1424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x04, 0x30, 0x31, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
1434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x06, 0x01, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06,
1444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x1a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00,
1454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x04, 0x6c, 0x01, 0x1b, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01,
1464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x04, 0x74, 0x01, 0x28, 0x00, 0x03, 0x00, 0x00, 0x00,
1474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x02, 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x00, 0x00,
1484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x04, 0x7c, 0x02, 0x02, 0x00, 0x04, 0x00,
1494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x05, 0x8b, 0x00, 0x00, 0x00, 0x00,
1504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x48, 0x00, 0x00, 0x00, 0x01, 0xff, 0xd8, 0xff, 0xdb, 0x00, 0x84,
1524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x20, 0x16, 0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c, 0x1a, 0x1c,
1534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x24, 0x22, 0x20, 0x26, 0x30, 0x50, 0x34, 0x30, 0x2c, 0x2c, 0x30,
1544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x62, 0x46, 0x4a, 0x3a, 0x50, 0x74, 0x66, 0x7a, 0x78, 0x72, 0x66,
1554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x70, 0x6e, 0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88, 0xae, 0x8a, 0x6e,
1564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x70, 0xa0, 0xda, 0xa2, 0xae, 0xbe, 0xc4, 0xce, 0xd0, 0xce, 0x7c,
1574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9a, 0xe2, 0xf2, 0xe0, 0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6, 0x01,
1584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x22, 0x24, 0x24, 0x30, 0x2a, 0x30, 0x5e, 0x34, 0x34, 0x5e, 0xc6,
1594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x84, 0x70, 0x84, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
1604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
1614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
1624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
1634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xff, 0xc0,
1644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x11, 0x08, 0x00, 0x78, 0x00, 0xa0, 0x03, 0x01, 0x21, 0x00,
1654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x01, 0xa2, 0x00,
1664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
1674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
1684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01, 0x03,
1694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01,
1704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x7d, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31,
1714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81,
1724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
1734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19,
1744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37,
1754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a,
1764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65,
1774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92,
1794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4,
1804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
1814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
1824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
1834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1,
1844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01, 0x00,
1854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
1864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
1874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x07, 0x08, 0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04,
1884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77,
1894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12,
1904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14,
1914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15,
1924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17,
1934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37,
1944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a,
1954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65,
1964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
1984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3,
1994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5,
2004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
2014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
2024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2,
2034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xda, 0x00,
2044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00,
2054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x14, 0x54, 0xaa, 0x2a, 0x46, 0x48, 0xa2, 0xa4, 0x55, 0xa6, 0x04,
2064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8a, 0x29, 0xe0, 0x53, 0x10, 0xe0, 0x29, 0xc0, 0x50, 0x03, 0xb1,
2074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x46, 0x29, 0x80, 0x84, 0x52, 0x11, 0x40, 0x0d, 0x22, 0x9a, 0x45,
2084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x20, 0x23, 0x61, 0x51, 0x30, 0xa0, 0x08, 0xc8, 0xa8, 0xd8, 0x52,
2094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x26, 0x15, 0x0b, 0x0a, 0x00, 0xb4, 0xa2, 0xa5, 0x5a, 0x00,
2104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x91, 0x45, 0x4a, 0xa2, 0x81, 0x92, 0x01, 0x4e, 0x02, 0x98, 0x87,
2114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0a, 0x70, 0xa0, 0x07, 0x62, 0x8c, 0x50, 0x21, 0x0d, 0x25, 0x00,
2124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x34, 0x8a, 0x61, 0x14, 0x0c, 0x63, 0x0a, 0x89, 0x85, 0x00, 0x46,
2134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd5, 0x1b, 0x52, 0x02, 0x16, 0xa8, 0x98, 0x50, 0x05, 0x94, 0xa9,
2144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x16, 0x80, 0x25, 0x5a, 0x95, 0x68, 0x18, 0xf1, 0x4f, 0x14, 0xc4,
2154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0xb5, 0x22, 0xb6, 0x38, 0x34, 0x00, 0xe3, 0x22, 0x8e, 0xf4,
2164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x79, 0x8a, 0x7b, 0xd1, 0x71, 0x03, 0x30, 0xc7, 0x14, 0x83, 0xa5,
2174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x06, 0x98, 0x68, 0x01, 0x8d, 0x51, 0x35, 0x03, 0x22, 0x6a,
2184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8d, 0xa9, 0x01, 0x13, 0x54, 0x4d, 0x40, 0x13, 0xa5, 0x4a, 0x28,
2194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x45, 0x35, 0x2a, 0x9a, 0x00, 0x78, 0x34, 0xf0, 0x69, 0x80,
2204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x34, 0x81, 0x45, 0x40, 0xce, 0x58, 0xe6, 0xa2, 0x4c, 0x06, 0xe4,
2214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xfa, 0xd1, 0x93, 0x50, 0x21, 0xca, 0xe4, 0x55, 0x84, 0x90, 0x30,
2224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xab, 0x8b, 0x18, 0xa6, 0x9a, 0x6a, 0xc4, 0x31, 0xaa, 0x26, 0xa0,
2234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x64, 0x4d, 0x51, 0xb5, 0x20, 0x23, 0x6a, 0x89, 0xa8, 0x02, 0x44,
2244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x2a, 0x9a, 0x00, 0x95, 0x4d, 0x48, 0xa6, 0x80, 0x24, 0x53,
2254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4e, 0xce, 0x05, 0x30, 0x2b, 0x3b, 0xee, 0x6a, 0x91, 0x5d, 0x76,
2264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x63, 0xbd, 0x65, 0x7d, 0x40, 0x66, 0x68, 0xa9, 0x02, 0x45, 0x2b,
2274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb3, 0x9e, 0xb4, 0xc5, 0x6d, 0xad, 0x9a, 0xa0, 0x2c, 0x06, 0xc8,
2284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xcd, 0x04, 0xd6, 0xa2, 0x23, 0x63, 0x51, 0xb1, 0xa0, 0x64, 0x4d,
2294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x51, 0x93, 0x48, 0x08, 0xda, 0xa2, 0x6a, 0x00, 0x72, 0x1a, 0x99,
2304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4d, 0x00, 0x48, 0xa6, 0xa4, 0x53, 0x4c, 0x07, 0x86, 0x03, 0xbd,
2314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2b, 0x9c, 0xa7, 0x14, 0x98, 0x10, 0x85, 0x34, 0xe0, 0xa6, 0xb3,
2324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb0, 0x0b, 0xb5, 0xa8, 0x0a, 0xd4, 0x58, 0x42, 0xed, 0x3e, 0x94,
2334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd2, 0xa6, 0x8b, 0x01, 0x34, 0x44, 0xed, 0xe6, 0x9c, 0x4d, 0x6a,
2344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x80, 0x8d, 0x8d, 0x46, 0xc6, 0x80, 0x23, 0x63, 0x51, 0x9a, 0x06,
2354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x46, 0xd5, 0x13, 0x52, 0x01, 0x54, 0xd4, 0xaa, 0x68, 0x02, 0x40,
2364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6a, 0x40, 0x78, 0xa0, 0x08, 0x59, 0xce, 0xee, 0xb5, 0x2a, 0x39,
2374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd9, 0x59, 0xa7, 0xa8, 0x00, 0x73, 0xeb, 0x4e, 0x0e, 0x7d, 0x69,
2384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x5c, 0x05, 0xf3, 0x0f, 0xad, 0x1e, 0x61, 0xf5, 0xa7, 0x71, 0x0b,
2394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe6, 0x35, 0x21, 0x90, 0xd3, 0xb8, 0x0e, 0x32, 0x10, 0x95, 0x10,
2404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x91, 0xb3, 0xd6, 0x9b, 0x60, 0x4b, 0x9c, 0x8a, 0x63, 0x1a, 0xb0,
2414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0x4d, 0x46, 0xc6, 0x80, 0x22, 0x6a, 0x61, 0xa4, 0x31, 0xaa,
2424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6a, 0x55, 0x34, 0x01, 0x2a, 0x9a, 0x7e, 0x78, 0xa0, 0x08, 0x09,
2434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf9, 0xaa, 0x58, 0xcf, 0xca, 0x6b, 0x3e, 0xa0, 0x00, 0xd3, 0x81,
2444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa9, 0x01, 0x73, 0x46, 0x69, 0x80, 0xb9, 0xa4, 0xcd, 0x00, 0x2b,
2454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x1f, 0x92, 0xa3, 0x07, 0x9a, 0x6f, 0x70, 0x26, 0xcf, 0x14, 0xd2,
2464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6b, 0x51, 0x0c, 0x63, 0x51, 0xb1, 0xa0, 0x08, 0xda, 0x98, 0x69,
2474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0c, 0x8d, 0x4d, 0x4a, 0xa6, 0x80, 0x24, 0x53, 0x52, 0x03, 0xc5,
2484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x21, 0x27, 0xe6, 0xa9, 0x23, 0x3f, 0x29, 0xac, 0xfa, 0x8c,
2494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0xe6, 0x9c, 0x0d, 0x48, 0x0a, 0x0d, 0x2e, 0x68, 0x01, 0x73,
2504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x49, 0x9a, 0x60, 0x2b, 0x1f, 0x92, 0x98, 0x3a, 0xd3, 0x7b, 0x81,
2514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x36, 0x78, 0xa6, 0x93, 0x5a, 0x88, 0x8c, 0x9a, 0x63, 0x1a, 0x00,
2524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8c, 0xd3, 0x0d, 0x21, 0x91, 0x29, 0xa9, 0x14, 0xd0, 0x04, 0x8a,
2534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x69, 0xe0, 0xd3, 0x11, 0x1b, 0x1e, 0x6a, 0x48, 0xcf, 0xca, 0x6b,
2544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3e, 0xa3, 0x10, 0x1a, 0x70, 0x35, 0x20, 0x38, 0x1a, 0x5c, 0xd2,
2554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x73, 0x49, 0x9a, 0x60, 0x39, 0x8f, 0xca, 0x29, 0x8b, 0xf7,
2564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xaa, 0xba, 0x88, 0x96, 0x9a, 0x6b, 0x40, 0x18, 0xc6, 0xa3, 0x26,
2574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x80, 0x18, 0x69, 0xa6, 0x90, 0xc8, 0x14, 0xd4, 0x8a, 0x69, 0x80,
2584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf0, 0x6a, 0x40, 0x68, 0x10, 0xbb, 0x41, 0xa7, 0xe3, 0x0b, 0xc5,
2594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2b, 0x01, 0x10, 0xa7, 0x03, 0x59, 0x0c, 0x76, 0x69, 0x73, 0x40,
2604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0b, 0x9a, 0x28, 0x11, 0x28, 0x19, 0x5e, 0x69, 0x02, 0x81, 0x5a,
2614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd8, 0x00, 0xd3, 0x4d, 0x50, 0x0c, 0x6a, 0x8c, 0xd2, 0x01, 0xa6,
2624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x98, 0x69, 0x0c, 0xae, 0xa6, 0xa4, 0x06, 0x80, 0x1e, 0xa6, 0x9e,
2634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0d, 0x31, 0x12, 0x03, 0x4f, 0x06, 0x80, 0x13, 0x60, 0x34, 0xd3,
2644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc1, 0xa8, 0x92, 0x01, 0xf1, 0x8d, 0xdd, 0x69, 0xcc, 0xa1, 0x69,
2654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x5b, 0x4b, 0x80, 0x83, 0x93, 0x52, 0x04, 0x14, 0xe2, 0xae, 0x03,
2664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa9, 0x0d, 0x68, 0x03, 0x4d, 0x34, 0xd0, 0x03, 0x0d, 0x30, 0xd2,
2674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x86, 0x9a, 0x68, 0x19, 0x58, 0x1a, 0x78, 0xa4, 0x04, 0x8a,
2684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x69, 0xe0, 0xd3, 0x10, 0xe0, 0x69, 0xe0, 0xd0, 0x03, 0xc1, 0xa8,
2694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xdb, 0xad, 0x4c, 0x81, 0x12, 0x45, 0xd6, 0x9d, 0x25, 0x1d, 0x00,
2704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6a, 0xf5, 0xa9, 0xe8, 0x80, 0x31, 0x29, 0x0d, 0x58, 0x08, 0x69,
2714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x86, 0x80, 0x1a, 0x69, 0x86, 0x90, 0x0c, 0x34, 0xd3, 0x48, 0x65,
2724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x51, 0x4f, 0x06, 0x98, 0x0f, 0x14, 0xf0, 0x68, 0x10, 0xf0, 0x69,
2734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe0, 0xd0, 0x03, 0x81, 0xa5, 0x2b, 0x9a, 0x1a, 0xb8, 0x87, 0xa8,
2744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xdb, 0x4a, 0x46, 0x68, 0xb6, 0x80, 0x2a, 0xa8, 0x14, 0xea, 0x12,
2754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb0, 0x05, 0x21, 0xa6, 0x02, 0x1a, 0x61, 0xa0, 0x06, 0x9a, 0x61,
2764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa4, 0x31, 0x86, 0x9a, 0x69, 0x0c, 0xa8, 0x0d, 0x3c, 0x53, 0x01,
2774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe2, 0x9e, 0x28, 0x10, 0xf1, 0x4e, 0x06, 0x98, 0x0f, 0x06, 0x9e,
2784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0d, 0x02, 0x1c, 0x29, 0xc2, 0x80, 0x16, 0x96, 0x80, 0x0a, 0x4a,
2794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x43, 0x4d, 0x34, 0x0c, 0x61, 0xa6, 0x1a, 0x40, 0x34, 0xd3,
2804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4d, 0x21, 0x80, 0xff, 0xd9, 0xff, 0xdb, 0x00, 0x84, 0x00, 0x0a,
2814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x07, 0x07, 0x08, 0x07, 0x06, 0x0a, 0x08, 0x08, 0x08, 0x0b, 0x0a,
2824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0a, 0x0b, 0x0e, 0x18, 0x10, 0x0e, 0x0d, 0x0d, 0x0e, 0x1d, 0x15,
2834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x16, 0x11, 0x18, 0x23, 0x1f, 0x25, 0x24, 0x22, 0x1f, 0x22, 0x21,
2844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x26, 0x2b, 0x37, 0x2f, 0x26, 0x29, 0x34, 0x29, 0x21, 0x22, 0x30,
2854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x41, 0x31, 0x34, 0x39, 0x3b, 0x3e, 0x3e, 0x3e, 0x25, 0x2e, 0x44,
2864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x49, 0x43, 0x3c, 0x48, 0x37, 0x3d, 0x3e, 0x3b, 0x01, 0x0a, 0x0b,
2874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0b, 0x0e, 0x0d, 0x0e, 0x1c, 0x10, 0x10, 0x1c, 0x3b, 0x28, 0x22,
2884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x28, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
2894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
2904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
2914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
2924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xff, 0xc0, 0x00, 0x11,
2934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x08, 0x00, 0x48, 0x00, 0x60, 0x03, 0x01, 0x21, 0x00, 0x02, 0x11,
2944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x01, 0xa2, 0x00, 0x00, 0x01,
2954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
2964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02,
2984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 0x01,
2994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06,
3004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1,
3014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33,
3024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25,
3034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
3044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
3054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67,
3064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,
3074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94,
3084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
3094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8,
3104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca,
3114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
3124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3,
3134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01, 0x00, 0x03, 0x01,
3144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
3154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
3164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03,
3174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01,
3184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51,
3194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
3204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72,
3214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19,
3224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39,
3234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
3244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67,
3254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,
3264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93,
3274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
3284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
3294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
3304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2,
3314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4,
3324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xda, 0x00, 0x0c, 0x03,
3334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00, 0x9e, 0xd2,
3344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2e, 0x07, 0x15, 0xaf, 0x6d, 0x08, 0xe2, 0xb3, 0x45, 0x1a, 0xf6,
3354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd0, 0x00, 0x01, 0xc5, 0x68, 0x45, 0x17, 0x4a, 0xb4, 0x22, 0xe4,
3364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x70, 0x8c, 0x74, 0xa9, 0x3c, 0xa1, 0x8e, 0x95, 0x48, 0x96, 0x31,
3374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe2, 0x18, 0xe9, 0x55, 0xa5, 0x8c, 0x7a, 0x50, 0x05, 0x0b, 0x88,
3384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x86, 0x0f, 0x15, 0x8f, 0x75, 0x1f, 0x26, 0x93, 0x19, 0x91, 0x77,
3394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0xc1, 0xac, 0x4b, 0xc8, 0xfa, 0xd6, 0x63, 0x37, 0x6d, 0x31,
3404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb4, 0x73, 0x5b, 0x36, 0xa0, 0x1c, 0x50, 0x80, 0xd7, 0x83, 0xa0,
3414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xab, 0xd1, 0x62, 0xad, 0x09, 0x8f, 0x17, 0x29, 0x03, 0xb2, 0xcc,
3424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe0, 0x77, 0x14, 0xa3, 0x56, 0xb3, 0x27, 0x1e, 0x67, 0xe9, 0x52,
3434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xea, 0xc6, 0x3a, 0x36, 0x48, 0xef, 0x3d, 0x27, 0x70, 0x22, 0x60,
3444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x47, 0x52, 0x69, 0xb2, 0xe2, 0xad, 0x3b, 0xea, 0x80, 0xa3, 0x38,
3454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe0, 0xd6, 0x3d, 0xd8, 0x1c, 0xd0, 0xca, 0x46, 0x3d, 0xd0, 0x18,
3464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x89, 0x78, 0xa3, 0x9a, 0xcd, 0x8c, 0xd2, 0xb3, 0x93, 0x2a,
3474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2b, 0x66, 0xd5, 0xf1, 0x8a, 0x10, 0x1a, 0xd6, 0xf2, 0x03, 0x8a,
3484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9e, 0xe6, 0xf4, 0x5a, 0xdb, 0xef, 0xfe, 0x23, 0xc0, 0xa7, 0x27,
3494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xcb, 0x16, 0xc4, 0xcc, 0xdd, 0xe2, 0x78, 0x9a, 0x69, 0x66, 0xcc,
3504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x99, 0xe1, 0x4d, 0x47, 0xba, 0xbc, 0xd9, 0x6a, 0xee, 0x26, 0x59,
3514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x59, 0x4d, 0xac, 0x69, 0x34, 0x52, 0xe5, 0x8f, 0x55, 0xad, 0x58,
3524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xae, 0x85, 0xc4, 0x22, 0x41, 0xdf, 0xad, 0x76, 0x61, 0xe5, 0x6f,
3534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x74, 0x45, 0x69, 0xdc, 0x00, 0x79, 0xac, 0x8b, 0xa6, 0xc9, 0x35,
3544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd4, 0x34, 0x64, 0xdc, 0x37, 0x06, 0xb1, 0xae, 0x88, 0xc1, 0xac,
3554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd8, 0xc9, 0x2c, 0xa6, 0xe0, 0x73, 0x5b, 0x36, 0xf3, 0x74, 0xe6,
3564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x84, 0x05, 0xe3, 0xa9, 0x47, 0x6a, 0x14, 0xb6, 0x49, 0x3d, 0x85,
3574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0xee, 0xee, 0x2b, 0xa8, 0xe2, 0x6f, 0x30, 0x81, 0xe9, 0x8a,
3584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xca, 0xa4, 0xe2, 0xd3, 0x8b, 0x01, 0xb1, 0xf9, 0x04, 0x7f, 0xaf,
3594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x23, 0xf0, 0xa9, 0x54, 0x41, 0x9c, 0xfd, 0xa3, 0xf4, 0xae, 0x65,
3604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0xf7, 0x25, 0x8a, 0xe2, 0x02, 0x38, 0xb8, 0xfd, 0x2a, 0x7b,
3614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x5b, 0xa8, 0x6d, 0x6d, 0x5d, 0x9a, 0x5d, 0xcb, 0xbb, 0xd2, 0xb6,
3624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa6, 0xa3, 0x19, 0x5e, 0xe2, 0x03, 0x7b, 0x1d, 0xc2, 0x17, 0x8d,
3634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb8, 0xac, 0xfb, 0x89, 0x39, 0x35, 0xd6, 0x9a, 0x6a, 0xe8, 0x66,
3644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0xcb, 0xf5, 0xac, 0x7b, 0x96, 0xeb, 0x50, 0xc6, 0x88, 0x6d,
3654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x66, 0xe9, 0xcd, 0x6c, 0xdb, 0x4f, 0xd3, 0x9a, 0x00, 0x2f, 0xe6,
3664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf9, 0xa3, 0xe7, 0xb5, 0x4a, 0x93, 0x7f, 0xa2, 0xc6, 0x73, 0xdc,
3674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd7, 0x15, 0x55, 0xef, 0x48, 0x7d, 0x09, 0x52, 0x6e, 0x3a, 0xd4,
3684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xab, 0x2f, 0xbd, 0x61, 0x16, 0x0c, 0x73, 0x49, 0xc5, 0x24, 0x92,
3694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x7f, 0xa2, 0x63, 0xfd, 0xaa, 0xd6, 0x2f, 0x71, 0x0e, 0xb1, 0x93,
3704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf7, 0x2d, 0xf5, 0xa4, 0x9e, 0x4e, 0xb5, 0xdd, 0x4b, 0xf8, 0x68,
3714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4c, 0xcb, 0xb9, 0x93, 0xad, 0x65, 0xce, 0xd9, 0x26, 0xa9, 0x8d,
3724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x19, 0xf6, 0xf2, 0xf4, 0xe6, 0xb5, 0xad, 0xe7, 0xc6, 0x39, 0xa0,
3734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0xeb, 0xc9, 0x77, 0x6c, 0x35, 0x2a, 0x4b, 0xfe, 0x8a, 0x9c,
3744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xff, 0x00, 0x11, 0xae, 0x3a, 0x8b, 0xde, 0x61, 0xd0, 0x9e, 0x39,
3754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb8, 0xeb, 0x53, 0xac, 0xb9, 0xae, 0x5b, 0x00, 0xf3, 0x27, 0x14,
3764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x92, 0xc9, 0xfe, 0x8a, 0x3f, 0xde, 0x35, 0xac, 0x3a, 0x88, 0x92,
3774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xcd, 0xb1, 0x6e, 0x7d, 0xcd, 0x32, 0x67, 0xeb, 0xcd, 0x7a, 0x14,
3784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xfe, 0x04, 0x26, 0x66, 0xce, 0xf9, 0x26, 0xb3, 0xe6, 0x6e, 0xb4,
3794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd9, 0x48, 0xc8, 0x82, 0x4e, 0x07, 0x35, 0xa7, 0x6f, 0x2f, 0x02,
3804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9a, 0x06, 0x5f, 0x8c, 0xa4, 0x83, 0x0e, 0x32, 0x2a, 0x69, 0xe3,
3814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xdd, 0x12, 0x08, 0x97, 0x85, 0xec, 0x2a, 0x2a, 0x42, 0xf1, 0x76,
3824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x26, 0xe4, 0x6a, 0x59, 0x0e, 0x18, 0x10, 0x6a, 0xd2, 0x89, 0x02,
3834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6e, 0x2a, 0x71, 0xeb, 0x5c, 0x1c, 0x8c, 0xa6, 0x48, 0xbb, 0xdc,
3844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x61, 0x41, 0x35, 0x72, 0x28, 0x87, 0xd9, 0xf6, 0x4a, 0xb9, 0xe7,
3854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0xae, 0x8c, 0x3d, 0x36, 0xdd, 0xde, 0xc4, 0xb0, 0x21, 0x51,
3864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x76, 0xa8, 0xc0, 0xaa, 0x93, 0x31, 0xe6, 0xbb, 0x2d, 0x65, 0x61,
3874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x19, 0xd3, 0x1e, 0xb5, 0x46, 0x5a, 0x96, 0x5a, 0x30, 0xa0, 0x7e,
3884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x05, 0x69, 0x5b, 0xc9, 0xc6, 0x28, 0x40, 0xcd, 0x08, 0x64, 0x3c,
3894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x73, 0x57, 0xe1, 0x94, 0xf1, 0xcd, 0x5a, 0x21, 0x8c, 0xb9, 0x63,
3904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe7, 0x67, 0x1d, 0xab, 0x40, 0xb1, 0xfb, 0x00, 0x1d, 0xf0, 0x2b,
3914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x99, 0x2d, 0x66, 0x3e, 0x88, 0x75, 0x81, 0x3f, 0x31, 0xf6, 0xab,
3924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x64, 0xd6, 0xb4, 0x17, 0xee, 0xd0, 0x9e, 0xe4, 0x32, 0x1a, 0xa7,
3934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0xad, 0x18, 0x14, 0x26, 0xef, 0x54, 0xa5, 0xa8, 0x65, 0xa3,
3944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9c, 0x81, 0xfa, 0x56, 0x8c, 0x2d, 0xce, 0x68, 0x40, 0xcb, 0xf1,
3954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x37, 0xbd, 0x5e, 0x85, 0xea, 0xd1, 0x0c, 0xbb, 0x19, 0x56, 0x23,
3964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x20, 0x1f, 0xad, 0x5c, 0x42, 0x08, 0x03, 0xb5, 0x55, 0x91, 0x04,
3974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc9, 0x80, 0x38, 0x00, 0x0a, 0x71, 0x34, 0x6c, 0x32, 0x27, 0xe9,
3984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0x25, 0x15, 0x2c, 0x68, 0xa3, 0x30, 0xeb, 0x54, 0xa5, 0x15,
3994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0c, 0xd1, 0x00, 0xff, 0xd9};
4004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /* package */ static final byte[] sPhotoByteArrayForComplicatedCase;
4024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    static {
4044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        final int length = sPhotoIntArrayForComplicatedCase.length;
4054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        sPhotoByteArrayForComplicatedCase = new byte[length];
4064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        for (int i = 0; i < length; i++) {
4074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa            sPhotoByteArrayForComplicatedCase[i] = (byte)sPhotoIntArrayForComplicatedCase[i];
4084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        }
4094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase1_Parsing() {
4124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_simple_1);
413a76f41e328f31c2e9e9006160d8f65fe651eeb6aDaisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithoutVersion()  // no "VERSION:2.1" line.
4144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "Ando;Roid;", Arrays.asList("Ando", "Roid", ""));
4154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase1_Type_Generic() {
4184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_GENERIC, R.raw.v21_simple_1);
4194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.FAMILY_NAME, "Ando")
4224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "Roid")
4234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Roid Ando");
4244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase1_Type_Japanese() {
4274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_simple_1);
4284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.FAMILY_NAME, "Ando")
4314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "Roid")
4324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // If name-related strings only contains printable Ascii,
4334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // the order is remained to be US's:
4344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // "Prefix Given Middle Family Suffix"
4354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Roid Ando");
4364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase2() {
4394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_simple_2);
4404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Ando Roid");
4434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase3() {
4464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_simple_3);
4474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.FAMILY_NAME, "Ando")
4504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "Roid")
4514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // "FN" field should be prefered since it should contain the original
4524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // order intended by the author of the file.
4534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Ando Roid");
4544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
4574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Tests ';' is properly handled by VCardParser implementation.
4584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
4594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21BackslashCase_Parsing() {
4604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_backslash);
4614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
4624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", ";A;B\\;C\\;;D;:E;\\\\;",
4634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("", "A;B\\", "C\\;", "D", ":E", "\\\\", ""))
4644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "A;B\\C\\;D:E\\\\");
465449d710428682b3f44ba20ce290564cd9352ca0aDaisuke Miyakawa
4664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
4694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Tests ContactStruct correctly ignores redundant fields in "N" property values and
4704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * inserts name related data.
4714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
4724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21BackslashCase() {
4734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_backslash);
4744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // FAMILY_NAME is empty and removed in this test...
4774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "A;B\\")
4784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.MIDDLE_NAME, "C\\;")
4794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.PREFIX, "D")
4804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.SUFFIX, ":E")
4814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "A;B\\C\\;D:E\\\\");
4824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testOrgBeforTitle() {
4854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_org_before_title);
4864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
4874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
4884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Normal Guy");
4894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
4904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Company")
4914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Organization Devision Room Sheet No.")
4924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Excellent Janitor")
4934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
4944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testTitleBeforOrg() {
4974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_title_before_org);
4984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
4994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
5004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Nice Guy");
5014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Marverous")
5034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Perfect Great Good Bad Poor")
5044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Cool Title")
5054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
5074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
5084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
5094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies that vCard importer correctly interpret "PREF" attribute to IS_PRIMARY.
5104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * The data contain three cases: one "PREF", no "PREF" and multiple "PREF", in each type.
5114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
5124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21PrefToIsPrimary() {
5134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_pref_handling);
5144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
5154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
5164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
5174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Smith");
5184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
5194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "1")
5204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME);
5214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
5224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "2")
5234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_WORK)
5244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.IS_PRIMARY, 1);
5254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
5264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "3")
5274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_ISDN);
5284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
5294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "test@example.com")
5304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_HOME)
5314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.IS_PRIMARY, 1);
5324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
5334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "test2@examination.com")
5344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_MOBILE)
5354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.IS_PRIMARY, 1);
5364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Company")
5384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Engineer")
5394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Mystery")
5424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Blogger")
5434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Poetry")
5464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Poet")
5474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
5494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
5504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
5514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Tests all the properties in a complicated vCard are correctly parsed by the VCardParser.
5524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
5534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21ComplicatedCase_Parsing() {
5544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_complicated);
5554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
5564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "Gump;Forrest;Hoge;Pos;Tao",
5574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("Gump", "Forrest", "Hoge", "Pos", "Tao"))
5584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "Joe Due")
559f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .addExpectedNodeWithOrder("ORG",
560f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                        "Gump Shrimp Co.;Sales Dept.;Manager;Fish keeper",
5614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("Gump Shrimp Co.", "Sales Dept.;Manager", "Fish keeper"))
5624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ROLE", "Fish Cake Keeper!")
5634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TITLE", "Shrimp Man")
5644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-CLASS", "PUBLIC")
5654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "(111) 555-1212", new TypeSet("WORK", "VOICE"))
5664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "(404) 555-1212", new TypeSet("HOME", "VOICE"))
5674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0311111111", new TypeSet("CELL"))
5684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0322222222", new TypeSet("VIDEO"))
5694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0333333333", new TypeSet("VOICE"))
5704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR",
5714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        ";;100 Waters Edge;Baytown;LA;30314;United States of America",
5724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("", "", "100 Waters Edge", "Baytown",
5734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "LA", "30314", "United States of America"),
5744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                null, null, new TypeSet("WORK"), null)
5754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("LABEL",
5764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "100 Waters Edge\r\nBaytown, LA 30314\r\nUnited  States of America",
5774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForQP, new TypeSet("WORK"), null)
5784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR",
5794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        ";;42 Plantation St.;Baytown;LA;30314;United States of America",
5804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("", "", "42 Plantation St.", "Baytown",
5814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "LA", "30314", "United States of America"), null, null,
5824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                new TypeSet("HOME"), null)
5834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("LABEL",
5844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "42 Plantation St.\r\nBaytown, LA 30314\r\nUnited  States of America",
5854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForQP,
5864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("HOME"), null)
5874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("EMAIL", "forrestgump@walladalla.com",
5884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("PREF", "INTERNET"))
5894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("EMAIL", "cell@example.com", new TypeSet("CELL"))
590f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .addExpectedNodeWithOrder("NOTE",
591f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                        "The following note is the example from RFC 2045.")
5924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("NOTE",
5934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "Now's the time for all folk to come to the aid of their country.",
5944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForQP, null, null)
5954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("PHOTO", null,
5964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, sPhotoByteArrayForComplicatedCase, mContentValuesForBase64V21,
5974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("JPEG"), null)
5984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-ATTRIBUTE", "Some String")
5994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("BDAY", "19800101")
6004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("GEO", "35.6563854,139.6994233")
6014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("URL", "http://www.example.com/")
6024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("REV", "20080424T195243Z");
6034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
6044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
6054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
6064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Checks ContactStruct correctly inserts values in a complicated vCard
6074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * into ContentResolver.
6084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
6094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21ComplicatedCase() {
6104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_complicated);
6114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
6124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
6134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "Gump")
6144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Forrest")
6154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "Hoge")
6164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PREFIX, "Pos")
6174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.SUFFIX, "Tao")
6184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Joe Due");
6194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
6204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK)
6214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Gump Shrimp Co.")
6224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Sales Dept.;Manager Fish keeper")
6234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Shrimp Man");
6244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_WORK)
6264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // Phone number is expected to be formated with NAMP format in default.
6274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "111-555-1212");
6284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME)
6304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "404-555-1212");
6314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_MOBILE)
6334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "031-111-1111");
6344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
6364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "VIDEO")
6374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "032-222-2222");
638449d710428682b3f44ba20ce290564cd9352ca0aDaisuke Miyakawa        // vCard's VOICE type should become OTHER type on Android devices.
6394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
640449d710428682b3f44ba20ce290564cd9352ca0aDaisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_OTHER)
6414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "033-333-3333");
6424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
6434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
6444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.COUNTRY, "United States of America")
6454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "30314")
6464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.REGION, "LA")
6474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.CITY, "Baytown")
6484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.STREET, "100 Waters Edge")
6494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
6504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "100 Waters Edge Baytown LA 30314 United States of America");
6514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
6524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME)
6534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.COUNTRY, "United States of America")
6544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "30314")
6554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.REGION, "LA")
6564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.CITY, "Baytown")
6574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.STREET, "42 Plantation St.")
6584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
6594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "42 Plantation St. Baytown LA 30314 United States of America");
6604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
6614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // "TYPE=INTERNET" -> TYPE_CUSTOM + the label "INTERNET"
6624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_CUSTOM)
6634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.LABEL, "INTERNET")
6644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "forrestgump@walladalla.com")
6654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.IS_PRIMARY, 1);
6664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
6674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_MOBILE)
6684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "cell@example.com");
6694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
6704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE, "The following note is the example from RFC 2045.");
6714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
6724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE,
6734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "Now's the time for all folk to come to the aid of their country.");
6744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Photo.CONTENT_ITEM_TYPE)
6754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // No information about its image format can be inserted.
6764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Photo.PHOTO, sPhotoByteArrayForComplicatedCase);
6774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Event.CONTENT_ITEM_TYPE)
6784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Event.START_DATE, "19800101")
6794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Event.TYPE, Event.TYPE_BIRTHDAY);
6804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Website.CONTENT_ITEM_TYPE)
6814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Website.URL, "http://www.example.com/")
6824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Website.TYPE, Website.TYPE_HOMEPAGE);
6834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
6844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
685f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa    public void testInvalidMultipleLineV21() {
686f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_invalid_multiple_line);
687f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
688f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
689f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Omega")
690f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Omega");
691f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
692f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(Email.TYPE, Email.TYPE_CUSTOM)
693f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(Email.LABEL, "INTERNET")
694f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(Email.ADDRESS, "\"Omega\" <omega@example.com>");
695f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa    }
696f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa
6979e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng    public void testAdrMultipleLineV21() {
6989e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng        ContentValues contentValuesForValue = new ContentValues();
6999e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng        contentValuesForValue.put("VALUE", "DATE");
7009e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng
7019e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng        mVerifier.initForImportTest(V21, R.raw.v21_adr_multiple_line);
7029e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng        mVerifier.addPropertyNodesVerifierElem()
7039e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("N", "bogus")
7049e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("URL", "http://bogus.com/")
7059e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("ADR",
7069e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                        ";;Grindelberg 999;Hamburg;;99999;Deutschland",
7079e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                        Arrays.asList("", "", "Grindelberg 999", "Hamburg", "", "99999",
7089e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                                "Deutschland"),
7099e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                        new TypeSet("HOME"))
7109e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("ADR", ";;Hermann v. Brevern\\ 9999999\\ " +
7119e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                        "Packstation 999;Hamburg;;99999;Deutschland",
7129e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                        Arrays.asList("", "", "Hermann v. Brevern\\ 9999999\\ Packstation 999",
7139e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                                "Hamburg", "", "99999", "Deutschland"),
7149e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                        new TypeSet("HOME"))
7159e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("BDAY", "20081203", contentValuesForValue);
7169e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng    }
7179e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng
7184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV30Simple_Parsing() {
7194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_simple);
7204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
7214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "And Roid")
722f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .addExpectedNodeWithOrder("N", "And;Roid;;;",
723f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                        Arrays.asList("And", "Roid", "", "", ""))
7244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ORG", "Open;Handset; Alliance",
7254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("Open", "Handset", " Alliance"))
7264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SORT-STRING", "android")
7274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0300000000", new TypeSet("PREF", "VOICE"))
7284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("CLASS", "PUBLIC")
7294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-GNO", "0")
7304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-GN", "group0")
7314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-REDUCTION", "0")
7324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("REV", "20081031T065854Z");
7334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV30Simple() {
7364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_simple);
7374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
7384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
7394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "And")
7404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Roid")
7414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "And Roid")
7424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "android");
7434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
7444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Open")
7454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Handset  Alliance")
7464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
7474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
748449d710428682b3f44ba20ce290564cd9352ca0aDaisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_OTHER)
7494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "030-000-0000")
7504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.IS_PRIMARY, 1);
7514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Parsing() {
7544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        // Though Japanese careers append ";;;;" at the end of the value of "SOUND",
7554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        // vCard 2.1/3.0 specification does not allow multiple values.
7564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        // Do not need to handle it as multiple values.
7574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_japanese_1);
7584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
7594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9;;;;",
7604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9", "", "", "", ""),
7614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
7624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
7634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E;;;;",
7644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
7654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
7664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0300000000", null, null, null,
7674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("VOICE", "PREF"), null);
7684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private void testV21Japanese1Common(int resId, int vcardType, boolean japanese) {
7714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(vcardType, resId);
7724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
7734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
7744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9")
7754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9")
7764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // While vCard parser does not split "SOUND" property values,
7774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // ContactStruct care it.
7784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
7794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E");
7804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
7814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // Phone number formatting is different.
7824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, (japanese ? "03-0000-0000" : "030-000-0000"))
783449d710428682b3f44ba20ce290564cd9352ca0aDaisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_OTHER)
7844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.IS_PRIMARY, 1);
7854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
7884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies vCard with Japanese can be parsed correctly with
789f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa     * {@link com.android.vcard.VCardConfig#VCARD_TYPE_V21_GENERIC}.
7904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
7914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Type_Generic_Utf8() {
7924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        testV21Japanese1Common(
7934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                R.raw.v21_japanese_1, VCardConfig.VCARD_TYPE_V21_GENERIC, false);
7944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
7974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies vCard with Japanese can be parsed correctly with
798f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa     * {@link com.android.vcard.VCardConfig#VCARD_TYPE_V21_JAPANESE}.
7994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
8004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Type_Japanese_Sjis() {
8014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        testV21Japanese1Common(
8024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                R.raw.v21_japanese_1, VCardConfig.VCARD_TYPE_V21_JAPANESE, true);
8034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
8064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies vCard with Japanese can be parsed correctly with
807f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa     * {@link com.android.vcard.VCardConfig#VCARD_TYPE_V21_JAPANESE}.
8084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * since vCard 2.1 specifies the charset of each line if it contains non-Ascii.
8094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
8104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Type_Japanese_Utf8() {
8114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        testV21Japanese1Common(
8124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                R.raw.v21_japanese_1, VCardConfig.VCARD_TYPE_V21_JAPANESE, true);
8134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese2_Parsing() {
8164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_japanese_2);
8174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4;\u30ED\u30A4\u30C9\u0031;;;",
8194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4", "\u30ED\u30A4\u30C9\u0031",
8204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "", "", ""),
8214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9\u0020\u0031",
8234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis, null, null)
8244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73;\uFF9B\uFF72\uFF84\uFF9E\u0031;;;",
8264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR",
8294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        ";\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC\u0036" +
8324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u968E;;;;150-8512;",
8334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("",
8344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC" +
8374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u0036\u968E", "", "", "", "150-8512", ""),
8384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForQPAndSJis, new TypeSet("HOME"), null)
8394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("NOTE", "\u30E1\u30E2", null, null,
8404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        mContentValuesForQPAndSJis, null, null);
8414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese2_Type_Generic_Utf8() {
8444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_japanese_2);
8454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
8464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
8474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4")
8484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u30ED\u30A4\u30C9\u0031")
8494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME,
8504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9\u0020\u0031")
8514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // ContactStruct should correctly split "SOUND" property into several elements,
8524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // even though VCardParser side does not care it.
8534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF71\uFF9D\uFF84\uFF9E\uFF73")
8544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF9B\uFF72\uFF84\uFF9E\u0031");
8554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
8564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "150-8512")
8574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.STREET,
8584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC" +
8614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u0036\u968E")
8624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
8634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC" +
8664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u0036\u968E 150-8512")
8674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);
8684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
8694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE, "\u30E1\u30E2");
8704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21MultipleEntryCase_Parse() {
8734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_multiple_entry);
8744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9\u0033;;;;",
8764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9\u0033", "", "", "", ""),
8774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0033;;;;",
8804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "9", new TypeSet("X-NEC-SECRET"))
8834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "10", new TypeSet("X-NEC-HOTEL"))
8844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "11", new TypeSet("X-NEC-SCHOOL"))
8854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "12", new TypeSet("FAX", "HOME"));
8864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9\u0034;;;;",
8884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9\u0034", "", "", "", ""),
8894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0034;;;;",
8924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "13", new TypeSet("MODEM"))
8954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "14", new TypeSet("PAGER"))
8964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "15", new TypeSet("X-NEC-FAMILY"))
8974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "16", new TypeSet("X-NEC-GIRL"));
8984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9\u0035;;;;",
9004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9\u0035", "", "", "", ""),
9014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
9024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
9034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0035;;;;",
9044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
9054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
9064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "17", new TypeSet("X-NEC-BOY"))
9074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "18", new TypeSet("X-NEC-FRIEND"))
9084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "19", new TypeSet("X-NEC-PHS"))
9094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "20", new TypeSet("X-NEC-RESTAURANT"));
9104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21MultipleEntryCase() {
9134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_multiple_entry);
9144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
9154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0033")
9174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0033")
9184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
9194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0033");
9204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-SECRET")
9234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "9");
9244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-HOTEL")
9274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "10");
9284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-SCHOOL")
9314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "11");
9324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_FAX_HOME)
9344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "12");
9354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem = mVerifier.addContentValuesVerifierElem();
9374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0034")
9394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0034")
9404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
9414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0034");
9424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "MODEM")
9454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "13");
9464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_PAGER)
9484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "14");
9494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-FAMILY")
9524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "15");
9534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-GIRL")
9564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "16");
9574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem = mVerifier.addContentValuesVerifierElem();
9594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0035")
9614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0035")
9624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
9634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0035");
9644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-BOY")
9674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "17");
9684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-FRIEND")
9714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "18");
9724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-PHS")
9754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "19");
9764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-RESTAURANT")
9794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "20");
9804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testIgnoreAgentV21_Parse() {
9834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_winmo_65);
9844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValues contentValuesForValue = new ContentValues();
9854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        contentValuesForValue.put("VALUE", "DATE");
9864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
9874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("Example", "", "", "", ""))
9884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "Example")
9894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ANNIVERSARY", "20091010", contentValuesForValue)
9904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("AGENT", "")
9914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-CLASS", "PUBLIC")
9924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-REDUCTION", "")
9934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-NO", "");
9944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testIgnoreAgentV21() {
9974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_winmo_65);
9984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifier verifier = new ContentValuesVerifier();
9994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "Example")
10024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Example");
100342f5f84d9d501893bc14702276f0300ca8230bb5Daisuke Miyakawa        elem.addExpected(Event.CONTENT_ITEM_TYPE)
100442f5f84d9d501893bc14702276f0300ca8230bb5Daisuke Miyakawa                .put(Event.TYPE, Event.TYPE_ANNIVERSARY)
100542f5f84d9d501893bc14702276f0300ca8230bb5Daisuke Miyakawa                .put(Event.START_DATE, "20091010");
10064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
10074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
10084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testTolerateInvalidCommentLikeLineV21() {
10094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_invalid_comment_line);
10104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Conference Call")
10134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Conference Call");
10144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
10154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE, "This is an (sharp ->#<- sharp) example. "
10164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        + "This message must NOT be ignored.");
10174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
10184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
10194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testPagerV30_Parse() {
1020d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_pager);
10214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
10224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("F", "G", "M", "", ""))
10234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "6101231234@pagersample.com",
10244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("WORK", "MSG", "PAGER"));
10254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
10264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
10274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testPagerV30() {
1028d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_pager);
10294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "F")
10324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "M")
10334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "G")
10344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "G M F");
10354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
10364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_PAGER)
10374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "6101231234@pagersample.com");
10384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
1039d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa
10402bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    public void testMultiBytePropV30_Parse() {
10412bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_multibyte_param);
10422bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
10432bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("F", "G", "M", "", ""))
10442bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "1", new TypeSet("\u8D39"));
10452bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    }
10462bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa
10472bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    public void testMultiBytePropV30() {
10482bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_multibyte_param);
10492bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10502bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10512bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "F")
10522bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "M")
10532bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "G")
10542bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "G M F");
10552bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
10562bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
10572bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(Phone.LABEL, "\u8D39")
10582bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(Phone.NUMBER, "1");
10592bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    }
10602bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa
106136ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa    public void testCommaSeparatedParamsV30_Parse() {
106236ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_comma_separated);
106336ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
106436ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("F", "G", "M", "", ""),
106536ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa                        new TypeSet("PREF", "HOME"))
106636ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "1",
106736ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa                        new TypeSet("COMMA,SEPARATED:INSIDE.DQUOTE", "PREF"));
106836ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa    }
106936ba003879c5583609af3afcec8df22f51d94cd3Daisuke Miyakawa
10704560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa    public void testSortAsV40_Parse() {
10714560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        mVerifier.initForImportTest(V40, R.raw.v40_sort_as);
10724560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa
10734560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        final ContentValues contentValuesForSortAsN = new ContentValues();
10744560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        contentValuesForSortAsN.put("SORT-AS",
10754560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                "\u3042\u3093\u3069\u3046;\u308D\u3044\u3069");
10764560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        final ContentValues contentValuesForSortAsOrg = new ContentValues();
10774560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        contentValuesForSortAsOrg.put("SORT-AS",
10784560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                "\u3050\u30FC\u3050\u308B;\u3051\u3093\u3055\u304F\u3076\u3082\u3093");
10794560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa
1080d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
10814560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9")
10824560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .addExpectedNodeWithOrder("N",
10834560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4", "\u30ED\u30A4\u30C9", "", "", ""),
10844560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        contentValuesForSortAsN)
10854560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .addExpectedNodeWithOrder("ORG",
10864560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        Arrays.asList("\u30B0\u30FC\u30B0\u30EB", "\u691C\u7D22\u90E8\u9580"),
10874560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        contentValuesForSortAsOrg, new TypeSet("WORK"));
10884560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa    }
10894560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa
10904560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa    public void testSortAsV40() {
10914560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        mVerifier.initForImportTest(V40, R.raw.v40_sort_as);
10924560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10934560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10944560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4")
10954560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u30ED\u30A4\u30C9")
10964560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9")
10974560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3042\u3093\u3069\u3046")
10984560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
10994560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        "\u308D\u3044\u3069");
11004560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
11014560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK)
11024560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.COMPANY, "\u30B0\u30FC\u30B0\u30EB")
11034560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.DEPARTMENT, "\u691C\u7D22\u90E8\u9580")
11044560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.PHONETIC_NAME,
11054560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        "\u3050\u30FC\u3050\u308B\u3051\u3093\u3055\u304F\u3076\u3082\u3093");
1106d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa    }
110706ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa
110806ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa    public void testIMV21_Parse() {
110906ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_im);
111006ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
111106ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .addExpectedNodeWithOrder("X-ANDROID-CUSTOM",
111206ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                        Arrays.asList("vnd.android.cursor.item/nickname", "Nick", "1",
111306ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                                "", "", "", "", "", "", "", "", "", "", "", "", ""))  // 13
111406ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .addExpectedNodeWithOrder("X-GOOGLE-TALK", "hhh@gmail.com");
111506ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa    }
111606ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa
111706ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa    public void testIMV21() {
111806ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_im);
111906ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
112006ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa        elem.addExpected(Nickname.CONTENT_ITEM_TYPE)
112106ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .put(Nickname.NAME, "Nick")
112206ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .put(Nickname.TYPE, "1");
112306ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa        elem.addExpected(Im.CONTENT_ITEM_TYPE)
112406ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK)
112506ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .put(Im.TYPE, Im.TYPE_HOME)
112606ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa                .put(Im.DATA, "hhh@gmail.com");
112706ae82316d0b5f7222a7a1d15b7d03df88fdea15Daisuke Miyakawa    }
112888d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa
112988d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa    public void testSipV30_Parse() {
113088d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_sip);
113188d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
113288d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "Android")
113388d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa                .addExpectedNodeWithOrder("IMPP", "sip:android@android.example.com",
113488d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa                        new TypeSet("personal"));
113588d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa    }
113688d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa
113788d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa    public void testSipV30() {
113888d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_sip);
113988d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
114088d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
114188d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Android");
114288d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        // Type is ignored silently.
114388d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa        elem.addExpected(SipAddress.CONTENT_ITEM_TYPE)
11441de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put(SipAddress.TYPE, SipAddress.TYPE_CUSTOM)
11451de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put(SipAddress.LABEL, "personal")
114688d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa                .put(SipAddress.SIP_ADDRESS, "android@android.example.com");
114788d0f1ef715f2e1209eba5d175b1b71c556fa8b0Daisuke Miyakawa    }
11485db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa
11495db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa    public void testSipV21_Parse() {
11505db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_sip);
11515db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
11525db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "Android")
11530fc278de46840f89c01aa984de7565c1f97e3103Daisuke Miyakawa                .addExpectedNodeWithOrder("X-SIP", "888")
11540fc278de46840f89c01aa984de7565c1f97e3103Daisuke Miyakawa                .addExpectedNodeWithOrder("X-SIP", "sip:90-180-360");
11555db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa    }
11565db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa
11575db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa    public void testSipV21() {
11585db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_sip);
11595db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
11605db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
11615db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Android");
11625db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa        elem.addExpected(SipAddress.CONTENT_ITEM_TYPE)
11631de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put(SipAddress.TYPE, SipAddress.TYPE_OTHER)
11645db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa                .put(SipAddress.SIP_ADDRESS, "888");
11650fc278de46840f89c01aa984de7565c1f97e3103Daisuke Miyakawa        // "sip:" should be removed.
11660fc278de46840f89c01aa984de7565c1f97e3103Daisuke Miyakawa        elem.addExpected(SipAddress.CONTENT_ITEM_TYPE)
11671de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put(SipAddress.TYPE, SipAddress.TYPE_OTHER)
11680fc278de46840f89c01aa984de7565c1f97e3103Daisuke Miyakawa                .put(SipAddress.SIP_ADDRESS, "90-180-360");
11695db8b7baeffb35191032789cb0b0d643b78f0120Daisuke Miyakawa    }
117037634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa
117137634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa    public void testSipV40() {
117237634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa        mVerifier.initForImportTest(V40, R.raw.v40_sip);
117337634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
117437634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
117537634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4")
117637634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u30ED\u30A4\u30C9")
117737634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9");
117837634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
117937634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME)
118037634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa                .put(Phone.NUMBER, "1");
118137634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa        elem.addExpected(SipAddress.CONTENT_ITEM_TYPE)
11821de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put(SipAddress.TYPE, SipAddress.TYPE_HOME)
118337634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa                .put(SipAddress.SIP_ADDRESS, "example@example.com");
118437634a0179f74431317f50d2ce493e3fad36f5a9Daisuke Miyakawa    }
118500b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa
118600b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa    public void testCustomPropertyV21_Parse() {
118700b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_x_param);
118800b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
118900b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "Ando;Roid;", Arrays.asList("Ando", "Roid", ""))
119000b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR", "pobox;street", Arrays.asList("pobox", "street"),
119100b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                        new TypeSet("X-custom"))
119200b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "1", new TypeSet("X-CuStoMpRop"))
119300b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "2", new TypeSet("custompropertywithoutx"))
119400b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .addExpectedNodeWithOrder("EMAIL", "email@example.com",
119500b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                        new TypeSet("X-cUstomPrOperty"))
119600b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .addExpectedNodeWithOrder("EMAIL", "email2@example.com",
119700b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                        new TypeSet("CUSTOMPROPERTYWITHOUTX"));
119800b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa    }
119900b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa
120000b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa    public void testCustomPropertyV21() {
120100b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_x_param);
120200b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
120300b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
120400b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "Ando")
120500b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Roid")
120600b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Roid Ando");
120700b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
120800b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_CUSTOM)
120900b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredPostal.LABEL, "custom")
121000b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredPostal.POBOX, "pobox")
121100b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredPostal.STREET, "street")
121200b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS, "pobox street");
121300b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
121400b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
121500b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Phone.LABEL, "CuStoMpRop")
121600b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Phone.NUMBER, "1");
121700b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
121800b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
121900b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Phone.LABEL, "custompropertywithoutx")
122000b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Phone.NUMBER, "2");
122100b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
122200b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_CUSTOM)
122300b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Email.LABEL, "cUstomPrOperty")
122400b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Email.ADDRESS, "email@example.com");
122500b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
122600b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_CUSTOM)
122700b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Email.LABEL, "CUSTOMPROPERTYWITHOUTX")
122800b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa                .put(Email.ADDRESS, "email2@example.com");
122900b4b98ea94df7fa3f88ee9a623d60db0d4fc451Daisuke Miyakawa    }
1230c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa
1231c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa    public void testBase64Without2CrLf_Parse() {
1232c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_base64_no_2_crlf);
1233c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
1234c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa                .addExpectedNodeWithOrder("N", "name")
1235c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa                .addExpectedNodeWithOrder("FN", "fullname")
1236c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa                .addExpectedNodeWithOrder("PHOTO", null,
1237c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa                        null, sPhotoByteArrayForComplicatedCase, mContentValuesForBase64V21,
1238c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa                        new TypeSet("JPEG"), null);
1239c955c8b0da0c9fcbad0ddcae76641358c27e72cdDaisuke Miyakawa    }
12401de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa
1241a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng    public void testBase64Without2CrLfForBlackBerry_Parse() {
1242a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng        mVerifier.initForImportTest(V21, R.raw.v21_blackberry_photo);
1243a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng        mVerifier.addPropertyNodesVerifierElem()
12449e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("FN", "boogie")
12459e87c7606b0593b6789cdd177d80e31b991c864cChiao Cheng                .addExpectedNodeWithOrder("N", "boogie")
1246a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                .addExpectedNodeWithOrder("PHOTO", null,
1247a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                        null, sPhotoByteArrayForComplicatedCase, mContentValuesForBase64V21,
1248a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                        null, null)
1249a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                .addExpectedNodeWithOrder("TEL", "+5555555", new TypeSet("WORK"))
1250a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                .addExpectedNodeWithOrder("TEL", "+5555556", new TypeSet("CELL"))
1251a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                .addExpectedNodeWithOrder("EMAIL", "forrestgump@walladalla.com",
1252a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng                        new TypeSet("INTERNET"));
1253a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng    }
1254a4e576ce8ebf869c505f0fe0ea82faefae9940f8Chiao Cheng
12552c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng    public void testMalformedBase64PhotoThrowsVCardException() {
12562c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng        mVerifier.initForImportTest(V21, R.raw.v21_malformed_photo);
12572c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng
12582c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng        String expectedMsgContent = "qgEPAAIAAAAHAAAAugEQAAIAAAAG:ASDF==";
12592c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng        mVerifier.addVCardExceptionVerifier(expectedMsgContent);
12602c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng    }
12612c9cf383b1c956c7185e97c2417ebd85b48fc0acChiao Cheng
12621de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa    public void testAndroidCustomPropertyV21() {
12631de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_android_custom_prop);
12641de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
12651de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        elem.addExpected("custom_mime1")
12661de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data1", "1").put("data2", "2").put("data3", "3").put("data4", "4")
12671de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data5", "5").put("data6", "6").put("data7", "7").put("data8", "8")
12681de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data9", "9").put("data10", "10").put("data11", "11").put("data12", "12")
12691de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data13", "13").put("data14", "14").put("data15", "15");
12701de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        // 16'th elemnt ('p') should be ignored
12711de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        elem.addExpected("custom_mime2")
12721de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data1", "a").put("data2", "b").put("data3", "c").put("data4", "d")
12731de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data5", "e").put("data6", "f").put("data7", "g").put("data8", "h")
12741de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data9", "i").put("data10", "j").put("data11", "k").put("data12", "l")
12751de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa                .put("data13", "m").put("data14", "n").put("data15", "o");
12761de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa
12771de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        // custom_mime3 shouldn't be here, as there's no data
12781de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa
12791de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        // Smoke test.
12801de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa        elem.addExpected("custom_mime4").put("data1", "z");
12811de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa    }
128295e66b00988bc16ecc17df31e47c873b2554b8ccinshik
128395e66b00988bc16ecc17df31e47c873b2554b8ccinshik    public void testPauseWaitV30_Parse() {
128495e66b00988bc16ecc17df31e47c873b2554b8ccinshik        mVerifier.initForImportTest(V30, R.raw.v30_pause_wait);
128595e66b00988bc16ecc17df31e47c873b2554b8ccinshik        mVerifier.addPropertyNodesVerifierElem()
128695e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .addExpectedNodeWithOrder("FN", "Pause Wait")
128795e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .addExpectedNodeWithOrder("N", "Pause;Wait;;;",
128895e66b00988bc16ecc17df31e47c873b2554b8ccinshik                        Arrays.asList("Pause", "Wait", "", "", ""))
128995e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .addExpectedNodeWithOrder("TEL", "p1234p5678w9");
129095e66b00988bc16ecc17df31e47c873b2554b8ccinshik     }
129195e66b00988bc16ecc17df31e47c873b2554b8ccinshik
129295e66b00988bc16ecc17df31e47c873b2554b8ccinshik    public void testPauseWaitV30() {
129395e66b00988bc16ecc17df31e47c873b2554b8ccinshik        mVerifier.initForImportTest(V30, R.raw.v30_pause_wait);
129495e66b00988bc16ecc17df31e47c873b2554b8ccinshik        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
129595e66b00988bc16ecc17df31e47c873b2554b8ccinshik        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
129695e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .put(StructuredName.FAMILY_NAME, "Pause")
129795e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .put(StructuredName.GIVEN_NAME, "Wait")
129895e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .put(StructuredName.DISPLAY_NAME, "Pause Wait");
129995e66b00988bc16ecc17df31e47c873b2554b8ccinshik        // See PhoneNumberUtils in Android SDK.
130095e66b00988bc16ecc17df31e47c873b2554b8ccinshik        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
130195e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .put(Phone.TYPE, Phone.TYPE_HOME)
130295e66b00988bc16ecc17df31e47c873b2554b8ccinshik                .put(Phone.NUMBER, ",1234,5678;9");
130395e66b00988bc16ecc17df31e47c873b2554b8ccinshik    }
13044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa}
1305