VCardImporterTests.java revision 4560bdde6dd75cca49fc55b58aafb5d416b88ca3
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;
214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Note;
224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Organization;
234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Phone;
244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Photo;
254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredName;
264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.provider.ContactsContract.CommonDataKinds.Website;
28d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawaimport android.provider.ContactsContract.Data;
294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.VCardConfig;
314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.tests.test_utils.ContentValuesVerifier;
324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.tests.test_utils.ContentValuesVerifierElem;
334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.tests.test_utils.PropertyNodesVerifierElem.TypeSet;
344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
3558ca5f9943bb5c8aeeab3150ac96f1143dfd86baDaisuke Miyakawaimport junit.framework.TestCase;
3658ca5f9943bb5c8aeeab3150ac96f1143dfd86baDaisuke Miyakawa
374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport java.util.Arrays;
384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapublic class VCardImporterTests extends VCardTestsBase {
404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    // Push data into int array at first since values like 0x80 are
414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    // interpreted as int by the compiler and casting all of them is
424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    // cumbersome...
434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private static final int[] sPhotoIntArrayForComplicatedCase = {
444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xff, 0xd8, 0xff, 0xe1, 0x0a, 0x0f, 0x45, 0x78, 0x69, 0x66, 0x00,
454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x4d, 0x4d, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0d,
464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x0e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xaa, 0x01, 0x0f, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0xba, 0x01, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00,
494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0xc2, 0x01, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x01, 0x1a, 0x00, 0x05, 0x00, 0x00, 0x00,
514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x1b, 0x00, 0x05, 0x00, 0x00,
524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x28, 0x00, 0x03, 0x00,
534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x31, 0x00, 0x02,
544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x32, 0x00,
554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xe6, 0x02, 0x13,
564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x82,
574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x98, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfa,
584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x87, 0x69, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01,
594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x84, 0xc4, 0xa5, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x08, 0x00, 0x00, 0x04, 0x1e, 0x32, 0x30, 0x30, 0x38, 0x31,
614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x30, 0x32, 0x39, 0x31, 0x33, 0x35, 0x35, 0x33, 0x31, 0x00, 0x00,
624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x44, 0x6f, 0x43, 0x6f, 0x4d, 0x6f, 0x00, 0x00, 0x44, 0x39, 0x30,
634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x69, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01,
644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x44, 0x39, 0x30,
654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x69, 0x20, 0x56, 0x65, 0x72, 0x31, 0x2e, 0x30, 0x30, 0x00,
664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x32, 0x30, 0x30, 0x38, 0x3a, 0x31, 0x30, 0x3a, 0x32, 0x39, 0x20,
674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0x33, 0x3a, 0x35, 0x35, 0x3a, 0x34, 0x37, 0x00, 0x20, 0x20,
684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x49, 0x4d, 0x00, 0x30, 0x33,
704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x30, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x14, 0x00,
714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x14, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x34, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x11, 0x09, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x0f, 0x0b, 0x00,
754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x27, 0x10, 0x00, 0x00, 0x05, 0x97, 0x00, 0x00, 0x27, 0x10,
764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x08, 0xb0, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x1c,
774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x02, 0x5e, 0x00, 0x00,
784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x27, 0x10, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x27, 0x10, 0x00,
794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0xcb, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x1b, 0xe5,
804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x27, 0x10, 0x00, 0x28, 0x82, 0x9a, 0x00, 0x05, 0x00,
814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x6a, 0x82, 0x9d, 0x00, 0x05,
824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x72, 0x88, 0x22, 0x00,
834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x90, 0x00,
844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x30, 0x32, 0x32, 0x30, 0x90,
854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x03, 0x7a,
864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x90, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x03,
874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8e, 0x91, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x01, 0x02,
884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x91, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00,
894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0xa2, 0x92, 0x01, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01,
904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x03, 0xaa, 0x92, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00,
914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x03, 0xb2, 0x92, 0x04, 0x00, 0x0a, 0x00, 0x00,
924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x03, 0xba, 0x92, 0x05, 0x00, 0x05, 0x00,
934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xc2, 0x92, 0x07, 0x00, 0x03,
944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x92, 0x08, 0x00,
954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x92, 0x09,
964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x92,
974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xca,
984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x92, 0x7c, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x92, 0x86, 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00,
1004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0xd2, 0xa0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x30,
1014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0x30, 0x30, 0xa0, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
1024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00,
1034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x60, 0x00, 0x00, 0xa0, 0x03, 0x00, 0x03, 0x00, 0x00,
1044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x48, 0x00, 0x00, 0xa0, 0x05, 0x00, 0x04, 0x00,
1054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x04, 0x00, 0xa2, 0x0e, 0x00, 0x05,
1064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xe8, 0xa2, 0x0f, 0x00,
1074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xf0, 0xa2, 0x10,
1084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0xa2,
1094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x17, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00,
1104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa3, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00,
1114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0xa3, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
1124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0xa4, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00,
1134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
1144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0xa4, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
1154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x04, 0x00, 0x05, 0x00, 0x00,
1164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x03, 0xf8, 0xa4, 0x05, 0x00, 0x03, 0x00,
1174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x1d, 0x00, 0x00, 0xa4, 0x06, 0x00, 0x03,
1184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x07, 0x00,
1194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x08,
1204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa4,
1214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa4, 0x0a, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0xa4, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
1244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00,
1254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x27, 0x10, 0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x64,
1264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x32, 0x30, 0x30, 0x38, 0x3a, 0x31, 0x30, 0x3a, 0x32, 0x39, 0x20,
1274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0x33, 0x3a, 0x35, 0x35, 0x3a, 0x33, 0x31, 0x00, 0x32, 0x30,
1284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x30, 0x38, 0x3a, 0x31, 0x30, 0x3a, 0x32, 0x39, 0x20, 0x31, 0x33,
1294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0x35, 0x35, 0x3a, 0x34, 0x37, 0x00, 0x00, 0x00, 0x29, 0x88,
1304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0xb2, 0x00, 0x00, 0x00,
1314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x64, 0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00,
1324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x25, 0x00,
1334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x0a, 0x00, 0x00, 0x0e, 0x92, 0x00, 0x00, 0x03, 0xe8,
1344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x30, 0x30,
1354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0x31, 0x30, 0x32, 0x39, 0x31, 0x33, 0x35, 0x35, 0x33, 0x31,
1364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x20, 0x2a, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x2a,
1374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe2, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00,
1394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x52, 0x39, 0x38, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00,
1404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x04, 0x30, 0x31, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
1414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x06, 0x01, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06,
1424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x1a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00,
1434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x04, 0x6c, 0x01, 0x1b, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01,
1444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x04, 0x74, 0x01, 0x28, 0x00, 0x03, 0x00, 0x00, 0x00,
1454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x02, 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x00, 0x00,
1464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x00, 0x00, 0x04, 0x7c, 0x02, 0x02, 0x00, 0x04, 0x00,
1474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x01, 0x00, 0x00, 0x05, 0x8b, 0x00, 0x00, 0x00, 0x00,
1484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
1494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x48, 0x00, 0x00, 0x00, 0x01, 0xff, 0xd8, 0xff, 0xdb, 0x00, 0x84,
1504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x20, 0x16, 0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c, 0x1a, 0x1c,
1514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x24, 0x22, 0x20, 0x26, 0x30, 0x50, 0x34, 0x30, 0x2c, 0x2c, 0x30,
1524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x62, 0x46, 0x4a, 0x3a, 0x50, 0x74, 0x66, 0x7a, 0x78, 0x72, 0x66,
1534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x70, 0x6e, 0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88, 0xae, 0x8a, 0x6e,
1544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x70, 0xa0, 0xda, 0xa2, 0xae, 0xbe, 0xc4, 0xce, 0xd0, 0xce, 0x7c,
1554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9a, 0xe2, 0xf2, 0xe0, 0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6, 0x01,
1564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x22, 0x24, 0x24, 0x30, 0x2a, 0x30, 0x5e, 0x34, 0x34, 0x5e, 0xc6,
1574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x84, 0x70, 0x84, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
1584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
1594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc6, 0xc6, 0xc6, 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, 0xff, 0xc0,
1624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x11, 0x08, 0x00, 0x78, 0x00, 0xa0, 0x03, 0x01, 0x21, 0x00,
1634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x01, 0xa2, 0x00,
1644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
1654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
1664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01, 0x03,
1674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01,
1684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x7d, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31,
1694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81,
1704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,
1714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19,
1724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37,
1734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a,
1744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65,
1754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92,
1774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4,
1784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
1794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
1804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
1814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1,
1824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01, 0x00,
1834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
1844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
1854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x07, 0x08, 0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04,
1864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77,
1874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12,
1884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14,
1894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15,
1904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17,
1914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37,
1924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a,
1934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65,
1944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
1954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
1964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3,
1974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5,
1984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
2004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2,
2014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xda, 0x00,
2024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00,
2034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x14, 0x54, 0xaa, 0x2a, 0x46, 0x48, 0xa2, 0xa4, 0x55, 0xa6, 0x04,
2044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8a, 0x29, 0xe0, 0x53, 0x10, 0xe0, 0x29, 0xc0, 0x50, 0x03, 0xb1,
2054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x46, 0x29, 0x80, 0x84, 0x52, 0x11, 0x40, 0x0d, 0x22, 0x9a, 0x45,
2064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x20, 0x23, 0x61, 0x51, 0x30, 0xa0, 0x08, 0xc8, 0xa8, 0xd8, 0x52,
2074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x26, 0x15, 0x0b, 0x0a, 0x00, 0xb4, 0xa2, 0xa5, 0x5a, 0x00,
2084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x91, 0x45, 0x4a, 0xa2, 0x81, 0x92, 0x01, 0x4e, 0x02, 0x98, 0x87,
2094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0a, 0x70, 0xa0, 0x07, 0x62, 0x8c, 0x50, 0x21, 0x0d, 0x25, 0x00,
2104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x34, 0x8a, 0x61, 0x14, 0x0c, 0x63, 0x0a, 0x89, 0x85, 0x00, 0x46,
2114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd5, 0x1b, 0x52, 0x02, 0x16, 0xa8, 0x98, 0x50, 0x05, 0x94, 0xa9,
2124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x16, 0x80, 0x25, 0x5a, 0x95, 0x68, 0x18, 0xf1, 0x4f, 0x14, 0xc4,
2134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0xb5, 0x22, 0xb6, 0x38, 0x34, 0x00, 0xe3, 0x22, 0x8e, 0xf4,
2144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x79, 0x8a, 0x7b, 0xd1, 0x71, 0x03, 0x30, 0xc7, 0x14, 0x83, 0xa5,
2154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x06, 0x98, 0x68, 0x01, 0x8d, 0x51, 0x35, 0x03, 0x22, 0x6a,
2164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8d, 0xa9, 0x01, 0x13, 0x54, 0x4d, 0x40, 0x13, 0xa5, 0x4a, 0x28,
2174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x45, 0x35, 0x2a, 0x9a, 0x00, 0x78, 0x34, 0xf0, 0x69, 0x80,
2184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x34, 0x81, 0x45, 0x40, 0xce, 0x58, 0xe6, 0xa2, 0x4c, 0x06, 0xe4,
2194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xfa, 0xd1, 0x93, 0x50, 0x21, 0xca, 0xe4, 0x55, 0x84, 0x90, 0x30,
2204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xab, 0x8b, 0x18, 0xa6, 0x9a, 0x6a, 0xc4, 0x31, 0xaa, 0x26, 0xa0,
2214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x64, 0x4d, 0x51, 0xb5, 0x20, 0x23, 0x6a, 0x89, 0xa8, 0x02, 0x44,
2224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x2a, 0x9a, 0x00, 0x95, 0x4d, 0x48, 0xa6, 0x80, 0x24, 0x53,
2234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4e, 0xce, 0x05, 0x30, 0x2b, 0x3b, 0xee, 0x6a, 0x91, 0x5d, 0x76,
2244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x63, 0xbd, 0x65, 0x7d, 0x40, 0x66, 0x68, 0xa9, 0x02, 0x45, 0x2b,
2254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb3, 0x9e, 0xb4, 0xc5, 0x6d, 0xad, 0x9a, 0xa0, 0x2c, 0x06, 0xc8,
2264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xcd, 0x04, 0xd6, 0xa2, 0x23, 0x63, 0x51, 0xb1, 0xa0, 0x64, 0x4d,
2274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x51, 0x93, 0x48, 0x08, 0xda, 0xa2, 0x6a, 0x00, 0x72, 0x1a, 0x99,
2284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4d, 0x00, 0x48, 0xa6, 0xa4, 0x53, 0x4c, 0x07, 0x86, 0x03, 0xbd,
2294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2b, 0x9c, 0xa7, 0x14, 0x98, 0x10, 0x85, 0x34, 0xe0, 0xa6, 0xb3,
2304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb0, 0x0b, 0xb5, 0xa8, 0x0a, 0xd4, 0x58, 0x42, 0xed, 0x3e, 0x94,
2314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd2, 0xa6, 0x8b, 0x01, 0x34, 0x44, 0xed, 0xe6, 0x9c, 0x4d, 0x6a,
2324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x80, 0x8d, 0x8d, 0x46, 0xc6, 0x80, 0x23, 0x63, 0x51, 0x9a, 0x06,
2334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x46, 0xd5, 0x13, 0x52, 0x01, 0x54, 0xd4, 0xaa, 0x68, 0x02, 0x40,
2344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6a, 0x40, 0x78, 0xa0, 0x08, 0x59, 0xce, 0xee, 0xb5, 0x2a, 0x39,
2354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd9, 0x59, 0xa7, 0xa8, 0x00, 0x73, 0xeb, 0x4e, 0x0e, 0x7d, 0x69,
2364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x5c, 0x05, 0xf3, 0x0f, 0xad, 0x1e, 0x61, 0xf5, 0xa7, 0x71, 0x0b,
2374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe6, 0x35, 0x21, 0x90, 0xd3, 0xb8, 0x0e, 0x32, 0x10, 0x95, 0x10,
2384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x91, 0xb3, 0xd6, 0x9b, 0x60, 0x4b, 0x9c, 0x8a, 0x63, 0x1a, 0xb0,
2394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0x4d, 0x46, 0xc6, 0x80, 0x22, 0x6a, 0x61, 0xa4, 0x31, 0xaa,
2404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6a, 0x55, 0x34, 0x01, 0x2a, 0x9a, 0x7e, 0x78, 0xa0, 0x08, 0x09,
2414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf9, 0xaa, 0x58, 0xcf, 0xca, 0x6b, 0x3e, 0xa0, 0x00, 0xd3, 0x81,
2424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa9, 0x01, 0x73, 0x46, 0x69, 0x80, 0xb9, 0xa4, 0xcd, 0x00, 0x2b,
2434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x1f, 0x92, 0xa3, 0x07, 0x9a, 0x6f, 0x70, 0x26, 0xcf, 0x14, 0xd2,
2444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6b, 0x51, 0x0c, 0x63, 0x51, 0xb1, 0xa0, 0x08, 0xda, 0x98, 0x69,
2454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0c, 0x8d, 0x4d, 0x4a, 0xa6, 0x80, 0x24, 0x53, 0x52, 0x03, 0xc5,
2464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x21, 0x27, 0xe6, 0xa9, 0x23, 0x3f, 0x29, 0xac, 0xfa, 0x8c,
2474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0xe6, 0x9c, 0x0d, 0x48, 0x0a, 0x0d, 0x2e, 0x68, 0x01, 0x73,
2484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x49, 0x9a, 0x60, 0x2b, 0x1f, 0x92, 0x98, 0x3a, 0xd3, 0x7b, 0x81,
2494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x36, 0x78, 0xa6, 0x93, 0x5a, 0x88, 0x8c, 0x9a, 0x63, 0x1a, 0x00,
2504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x8c, 0xd3, 0x0d, 0x21, 0x91, 0x29, 0xa9, 0x14, 0xd0, 0x04, 0x8a,
2514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x69, 0xe0, 0xd3, 0x11, 0x1b, 0x1e, 0x6a, 0x48, 0xcf, 0xca, 0x6b,
2524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3e, 0xa3, 0x10, 0x1a, 0x70, 0x35, 0x20, 0x38, 0x1a, 0x5c, 0xd2,
2534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x73, 0x49, 0x9a, 0x60, 0x39, 0x8f, 0xca, 0x29, 0x8b, 0xf7,
2544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xaa, 0xba, 0x88, 0x96, 0x9a, 0x6b, 0x40, 0x18, 0xc6, 0xa3, 0x26,
2554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x80, 0x18, 0x69, 0xa6, 0x90, 0xc8, 0x14, 0xd4, 0x8a, 0x69, 0x80,
2564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf0, 0x6a, 0x40, 0x68, 0x10, 0xbb, 0x41, 0xa7, 0xe3, 0x0b, 0xc5,
2574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2b, 0x01, 0x10, 0xa7, 0x03, 0x59, 0x0c, 0x76, 0x69, 0x73, 0x40,
2584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0b, 0x9a, 0x28, 0x11, 0x28, 0x19, 0x5e, 0x69, 0x02, 0x81, 0x5a,
2594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd8, 0x00, 0xd3, 0x4d, 0x50, 0x0c, 0x6a, 0x8c, 0xd2, 0x01, 0xa6,
2604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x98, 0x69, 0x0c, 0xae, 0xa6, 0xa4, 0x06, 0x80, 0x1e, 0xa6, 0x9e,
2614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0d, 0x31, 0x12, 0x03, 0x4f, 0x06, 0x80, 0x13, 0x60, 0x34, 0xd3,
2624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc1, 0xa8, 0x92, 0x01, 0xf1, 0x8d, 0xdd, 0x69, 0xcc, 0xa1, 0x69,
2634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x5b, 0x4b, 0x80, 0x83, 0x93, 0x52, 0x04, 0x14, 0xe2, 0xae, 0x03,
2644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa9, 0x0d, 0x68, 0x03, 0x4d, 0x34, 0xd0, 0x03, 0x0d, 0x30, 0xd2,
2654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x86, 0x9a, 0x68, 0x19, 0x58, 0x1a, 0x78, 0xa4, 0x04, 0x8a,
2664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x69, 0xe0, 0xd3, 0x10, 0xe0, 0x69, 0xe0, 0xd0, 0x03, 0xc1, 0xa8,
2674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xdb, 0xad, 0x4c, 0x81, 0x12, 0x45, 0xd6, 0x9d, 0x25, 0x1d, 0x00,
2684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6a, 0xf5, 0xa9, 0xe8, 0x80, 0x31, 0x29, 0x0d, 0x58, 0x08, 0x69,
2694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x86, 0x80, 0x1a, 0x69, 0x86, 0x90, 0x0c, 0x34, 0xd3, 0x48, 0x65,
2704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x51, 0x4f, 0x06, 0x98, 0x0f, 0x14, 0xf0, 0x68, 0x10, 0xf0, 0x69,
2714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe0, 0xd0, 0x03, 0x81, 0xa5, 0x2b, 0x9a, 0x1a, 0xb8, 0x87, 0xa8,
2724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xdb, 0x4a, 0x46, 0x68, 0xb6, 0x80, 0x2a, 0xa8, 0x14, 0xea, 0x12,
2734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb0, 0x05, 0x21, 0xa6, 0x02, 0x1a, 0x61, 0xa0, 0x06, 0x9a, 0x61,
2744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa4, 0x31, 0x86, 0x9a, 0x69, 0x0c, 0xa8, 0x0d, 0x3c, 0x53, 0x01,
2754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe2, 0x9e, 0x28, 0x10, 0xf1, 0x4e, 0x06, 0x98, 0x0f, 0x06, 0x9e,
2764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0d, 0x02, 0x1c, 0x29, 0xc2, 0x80, 0x16, 0x96, 0x80, 0x0a, 0x4a,
2774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x43, 0x4d, 0x34, 0x0c, 0x61, 0xa6, 0x1a, 0x40, 0x34, 0xd3,
2784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4d, 0x21, 0x80, 0xff, 0xd9, 0xff, 0xdb, 0x00, 0x84, 0x00, 0x0a,
2794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x07, 0x07, 0x08, 0x07, 0x06, 0x0a, 0x08, 0x08, 0x08, 0x0b, 0x0a,
2804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0a, 0x0b, 0x0e, 0x18, 0x10, 0x0e, 0x0d, 0x0d, 0x0e, 0x1d, 0x15,
2814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x16, 0x11, 0x18, 0x23, 0x1f, 0x25, 0x24, 0x22, 0x1f, 0x22, 0x21,
2824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x26, 0x2b, 0x37, 0x2f, 0x26, 0x29, 0x34, 0x29, 0x21, 0x22, 0x30,
2834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x41, 0x31, 0x34, 0x39, 0x3b, 0x3e, 0x3e, 0x3e, 0x25, 0x2e, 0x44,
2844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x49, 0x43, 0x3c, 0x48, 0x37, 0x3d, 0x3e, 0x3b, 0x01, 0x0a, 0x0b,
2854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0b, 0x0e, 0x0d, 0x0e, 0x1c, 0x10, 0x10, 0x1c, 0x3b, 0x28, 0x22,
2864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x28, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
2874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
2884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3b, 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, 0xff, 0xc0, 0x00, 0x11,
2914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x08, 0x00, 0x48, 0x00, 0x60, 0x03, 0x01, 0x21, 0x00, 0x02, 0x11,
2924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x01, 0xa2, 0x00, 0x00, 0x01,
2934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
2944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02,
2964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 0x01,
2974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06,
2984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1,
2994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33,
3004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25,
3014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
3024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
3034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67,
3044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,
3054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94,
3064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
3074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8,
3084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca,
3094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
3104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3,
3114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01, 0x00, 0x03, 0x01,
3124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
3134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
3144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03,
3154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01,
3164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51,
3174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
3184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72,
3194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19,
3204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39,
3214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
3224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67,
3234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,
3244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93,
3254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5,
3264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
3274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
3284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2,
3294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4,
3304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xda, 0x00, 0x0c, 0x03,
3314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00, 0x9e, 0xd2,
3324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2e, 0x07, 0x15, 0xaf, 0x6d, 0x08, 0xe2, 0xb3, 0x45, 0x1a, 0xf6,
3334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd0, 0x00, 0x01, 0xc5, 0x68, 0x45, 0x17, 0x4a, 0xb4, 0x22, 0xe4,
3344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x70, 0x8c, 0x74, 0xa9, 0x3c, 0xa1, 0x8e, 0x95, 0x48, 0x96, 0x31,
3354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe2, 0x18, 0xe9, 0x55, 0xa5, 0x8c, 0x7a, 0x50, 0x05, 0x0b, 0x88,
3364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x86, 0x0f, 0x15, 0x8f, 0x75, 0x1f, 0x26, 0x93, 0x19, 0x91, 0x77,
3374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0xc1, 0xac, 0x4b, 0xc8, 0xfa, 0xd6, 0x63, 0x37, 0x6d, 0x31,
3384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb4, 0x73, 0x5b, 0x36, 0xa0, 0x1c, 0x50, 0x80, 0xd7, 0x83, 0xa0,
3394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xab, 0xd1, 0x62, 0xad, 0x09, 0x8f, 0x17, 0x29, 0x03, 0xb2, 0xcc,
3404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe0, 0x77, 0x14, 0xa3, 0x56, 0xb3, 0x27, 0x1e, 0x67, 0xe9, 0x52,
3414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xea, 0xc6, 0x3a, 0x36, 0x48, 0xef, 0x3d, 0x27, 0x70, 0x22, 0x60,
3424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x47, 0x52, 0x69, 0xb2, 0xe2, 0xad, 0x3b, 0xea, 0x80, 0xa3, 0x38,
3434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe0, 0xd6, 0x3d, 0xd8, 0x1c, 0xd0, 0xca, 0x46, 0x3d, 0xd0, 0x18,
3444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x35, 0x89, 0x78, 0xa3, 0x9a, 0xcd, 0x8c, 0xd2, 0xb3, 0x93, 0x2a,
3454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x2b, 0x66, 0xd5, 0xf1, 0x8a, 0x10, 0x1a, 0xd6, 0xf2, 0x03, 0x8a,
3464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9e, 0xe6, 0xf4, 0x5a, 0xdb, 0xef, 0xfe, 0x23, 0xc0, 0xa7, 0x27,
3474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xcb, 0x16, 0xc4, 0xcc, 0xdd, 0xe2, 0x78, 0x9a, 0x69, 0x66, 0xcc,
3484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x99, 0xe1, 0x4d, 0x47, 0xba, 0xbc, 0xd9, 0x6a, 0xee, 0x26, 0x59,
3494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x59, 0x4d, 0xac, 0x69, 0x34, 0x52, 0xe5, 0x8f, 0x55, 0xad, 0x58,
3504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xae, 0x85, 0xc4, 0x22, 0x41, 0xdf, 0xad, 0x76, 0x61, 0xe5, 0x6f,
3514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x74, 0x45, 0x69, 0xdc, 0x00, 0x79, 0xac, 0x8b, 0xa6, 0xc9, 0x35,
3524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd4, 0x34, 0x64, 0xdc, 0x37, 0x06, 0xb1, 0xae, 0x88, 0xc1, 0xac,
3534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd8, 0xc9, 0x2c, 0xa6, 0xe0, 0x73, 0x5b, 0x36, 0xf3, 0x74, 0xe6,
3544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x84, 0x05, 0xe3, 0xa9, 0x47, 0x6a, 0x14, 0xb6, 0x49, 0x3d, 0x85,
3554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x3a, 0xee, 0xee, 0x2b, 0xa8, 0xe2, 0x6f, 0x30, 0x81, 0xe9, 0x8a,
3564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xca, 0xa4, 0xe2, 0xd3, 0x8b, 0x01, 0xb1, 0xf9, 0x04, 0x7f, 0xaf,
3574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x23, 0xf0, 0xa9, 0x54, 0x41, 0x9c, 0xfd, 0xa3, 0xf4, 0xae, 0x65,
3584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0xf7, 0x25, 0x8a, 0xe2, 0x02, 0x38, 0xb8, 0xfd, 0x2a, 0x7b,
3594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x5b, 0xa8, 0x6d, 0x6d, 0x5d, 0x9a, 0x5d, 0xcb, 0xbb, 0xd2, 0xb6,
3604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xa6, 0xa3, 0x19, 0x5e, 0xe2, 0x03, 0x7b, 0x1d, 0xc2, 0x17, 0x8d,
3614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb8, 0xac, 0xfb, 0x89, 0x39, 0x35, 0xd6, 0x9a, 0x6a, 0xe8, 0x66,
3624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0xcb, 0xf5, 0xac, 0x7b, 0x96, 0xeb, 0x50, 0xc6, 0x88, 0x6d,
3634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x66, 0xe9, 0xcd, 0x6c, 0xdb, 0x4f, 0xd3, 0x9a, 0x00, 0x2f, 0xe6,
3644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf9, 0xa3, 0xe7, 0xb5, 0x4a, 0x93, 0x7f, 0xa2, 0xc6, 0x73, 0xdc,
3654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd7, 0x15, 0x55, 0xef, 0x48, 0x7d, 0x09, 0x52, 0x6e, 0x3a, 0xd4,
3664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xab, 0x2f, 0xbd, 0x61, 0x16, 0x0c, 0x73, 0x49, 0xc5, 0x24, 0x92,
3674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x7f, 0xa2, 0x63, 0xfd, 0xaa, 0xd6, 0x2f, 0x71, 0x0e, 0xb1, 0x93,
3684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xf7, 0x2d, 0xf5, 0xa4, 0x9e, 0x4e, 0xb5, 0xdd, 0x4b, 0xf8, 0x68,
3694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x4c, 0xcb, 0xb9, 0x93, 0xad, 0x65, 0xce, 0xd9, 0x26, 0xa9, 0x8d,
3704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x19, 0xf6, 0xf2, 0xf4, 0xe6, 0xb5, 0xad, 0xe7, 0xc6, 0x39, 0xa0,
3714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x18, 0xeb, 0xc9, 0x77, 0x6c, 0x35, 0x2a, 0x4b, 0xfe, 0x8a, 0x9c,
3724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xff, 0x00, 0x11, 0xae, 0x3a, 0x8b, 0xde, 0x61, 0xd0, 0x9e, 0x39,
3734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xb8, 0xeb, 0x53, 0xac, 0xb9, 0xae, 0x5b, 0x00, 0xf3, 0x27, 0x14,
3744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x92, 0xc9, 0xfe, 0x8a, 0x3f, 0xde, 0x35, 0xac, 0x3a, 0x88, 0x92,
3754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xcd, 0xb1, 0x6e, 0x7d, 0xcd, 0x32, 0x67, 0xeb, 0xcd, 0x7a, 0x14,
3764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xfe, 0x04, 0x26, 0x66, 0xce, 0xf9, 0x26, 0xb3, 0xe6, 0x6e, 0xb4,
3774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xd9, 0x48, 0xc8, 0x82, 0x4e, 0x07, 0x35, 0xa7, 0x6f, 0x2f, 0x02,
3784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9a, 0x06, 0x5f, 0x8c, 0xa4, 0x83, 0x0e, 0x32, 0x2a, 0x69, 0xe3,
3794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xdd, 0x12, 0x08, 0x97, 0x85, 0xec, 0x2a, 0x2a, 0x42, 0xf1, 0x76,
3804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x26, 0xe4, 0x6a, 0x59, 0x0e, 0x18, 0x10, 0x6a, 0xd2, 0x89, 0x02,
3814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x6e, 0x2a, 0x71, 0xeb, 0x5c, 0x1c, 0x8c, 0xa6, 0x48, 0xbb, 0xdc,
3824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x61, 0x41, 0x35, 0x72, 0x28, 0x87, 0xd9, 0xf6, 0x4a, 0xb9, 0xe7,
3834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x38, 0xae, 0x8c, 0x3d, 0x36, 0xdd, 0xde, 0xc4, 0xb0, 0x21, 0x51,
3844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x76, 0xa8, 0xc0, 0xaa, 0x93, 0x31, 0xe6, 0xbb, 0x2d, 0x65, 0x61,
3854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x19, 0xd3, 0x1e, 0xb5, 0x46, 0x5a, 0x96, 0x5a, 0x30, 0xa0, 0x7e,
3864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x05, 0x69, 0x5b, 0xc9, 0xc6, 0x28, 0x40, 0xcd, 0x08, 0x64, 0x3c,
3874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x73, 0x57, 0xe1, 0x94, 0xf1, 0xcd, 0x5a, 0x21, 0x8c, 0xb9, 0x63,
3884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xe7, 0x67, 0x1d, 0xab, 0x40, 0xb1, 0xfb, 0x00, 0x1d, 0xf0, 0x2b,
3894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x99, 0x2d, 0x66, 0x3e, 0x88, 0x75, 0x81, 0x3f, 0x31, 0xf6, 0xab,
3904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x64, 0xd6, 0xb4, 0x17, 0xee, 0xd0, 0x9e, 0xe4, 0x32, 0x1a, 0xa7,
3914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x31, 0xad, 0x18, 0x14, 0x26, 0xef, 0x54, 0xa5, 0xa8, 0x65, 0xa3,
3924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x9c, 0x81, 0xfa, 0x56, 0x8c, 0x2d, 0xce, 0x68, 0x40, 0xcb, 0xf1,
3934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x37, 0xbd, 0x5e, 0x85, 0xea, 0xd1, 0x0c, 0xbb, 0x19, 0x56, 0x23,
3944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x20, 0x1f, 0xad, 0x5c, 0x42, 0x08, 0x03, 0xb5, 0x55, 0x91, 0x04,
3954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0xc9, 0x80, 0x38, 0x00, 0x0a, 0x71, 0x34, 0x6c, 0x32, 0x27, 0xe9,
3964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x55, 0x25, 0x15, 0x2c, 0x68, 0xa3, 0x30, 0xeb, 0x54, 0xa5, 0x15,
3974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        0x0c, 0xd1, 0x00, 0xff, 0xd9};
3984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
3994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /* package */ static final byte[] sPhotoByteArrayForComplicatedCase;
4004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    static {
4024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        final int length = sPhotoIntArrayForComplicatedCase.length;
4034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        sPhotoByteArrayForComplicatedCase = new byte[length];
4044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        for (int i = 0; i < length; i++) {
4054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa            sPhotoByteArrayForComplicatedCase[i] = (byte)sPhotoIntArrayForComplicatedCase[i];
4064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        }
4074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase1_Parsing() {
4104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_simple_1);
411a76f41e328f31c2e9e9006160d8f65fe651eeb6aDaisuke Miyakawa        mVerifier.addPropertyNodesVerifierElemWithoutVersion()  // no "VERSION:2.1" line.
4124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "Ando;Roid;", Arrays.asList("Ando", "Roid", ""));
4134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase1_Type_Generic() {
4164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_GENERIC, R.raw.v21_simple_1);
4174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.FAMILY_NAME, "Ando")
4204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "Roid")
4214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Roid Ando");
4224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase1_Type_Japanese() {
4254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_simple_1);
4264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.FAMILY_NAME, "Ando")
4294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "Roid")
4304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // If name-related strings only contains printable Ascii,
4314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // the order is remained to be US's:
4324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // "Prefix Given Middle Family Suffix"
4334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Roid Ando");
4344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase2() {
4374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_simple_2);
4384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Ando Roid");
4414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21SimpleCase3() {
4444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_simple_3);
4454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.FAMILY_NAME, "Ando")
4484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "Roid")
4494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // "FN" field should be prefered since it should contain the original
4504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // order intended by the author of the file.
4514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "Ando Roid");
4524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
4554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Tests ';' is properly handled by VCardParser implementation.
4564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
4574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21BackslashCase_Parsing() {
4584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_backslash);
4594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
4604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", ";A;B\\;C\\;;D;:E;\\\\;",
4614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("", "A;B\\", "C\\;", "D", ":E", "\\\\", ""))
4624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "A;B\\C\\;D:E\\\\");
4634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
4674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Tests ContactStruct correctly ignores redundant fields in "N" property values and
4684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * inserts name related data.
4694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
4704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21BackslashCase() {
4714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_backslash);
4724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addContentValuesVerifierElem()
4734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpected(StructuredName.CONTENT_ITEM_TYPE)
4744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        // FAMILY_NAME is empty and removed in this test...
4754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.GIVEN_NAME, "A;B\\")
4764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.MIDDLE_NAME, "C\\;")
4774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.PREFIX, "D")
4784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.SUFFIX, ":E")
4794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        .put(StructuredName.DISPLAY_NAME, "A;B\\C\\;D:E\\\\");
4804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testOrgBeforTitle() {
4834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_org_before_title);
4844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
4854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
4864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Normal Guy");
4874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
4884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Company")
4894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Organization Devision Room Sheet No.")
4904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Excellent Janitor")
4914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
4924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
4934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
4944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testTitleBeforOrg() {
4954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_title_before_org);
4964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
4974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
4984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Nice Guy");
4994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Marverous")
5014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Perfect Great Good Bad Poor")
5024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Cool Title")
5034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
5054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
5064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
5074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies that vCard importer correctly interpret "PREF" attribute to IS_PRIMARY.
5084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * The data contain three cases: one "PREF", no "PREF" and multiple "PREF", in each type.
5094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
5104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21PrefToIsPrimary() {
5114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_pref_handling);
5124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
5134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
5144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
5154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Smith");
5164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
5174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "1")
5184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME);
5194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
5204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "2")
5214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_WORK)
5224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.IS_PRIMARY, 1);
5234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
5244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "3")
5254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_ISDN);
5264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
5274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "test@example.com")
5284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_HOME)
5294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.IS_PRIMARY, 1);
5304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
5314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "test2@examination.com")
5324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_MOBILE)
5334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.IS_PRIMARY, 1);
5344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Company")
5364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Engineer")
5374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Mystery")
5404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Blogger")
5414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
5434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Poetry")
5444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Poet")
5454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
5464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
5474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
5484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
5494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Tests all the properties in a complicated vCard are correctly parsed by the VCardParser.
5504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
5514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21ComplicatedCase_Parsing() {
5524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_complicated);
5534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
5544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "Gump;Forrest;Hoge;Pos;Tao",
5554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("Gump", "Forrest", "Hoge", "Pos", "Tao"))
5564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "Joe Due")
557f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .addExpectedNodeWithOrder("ORG",
558f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                        "Gump Shrimp Co.;Sales Dept.;Manager;Fish keeper",
5594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("Gump Shrimp Co.", "Sales Dept.;Manager", "Fish keeper"))
5604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ROLE", "Fish Cake Keeper!")
5614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TITLE", "Shrimp Man")
5624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-CLASS", "PUBLIC")
5634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "(111) 555-1212", new TypeSet("WORK", "VOICE"))
5644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "(404) 555-1212", new TypeSet("HOME", "VOICE"))
5654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0311111111", new TypeSet("CELL"))
5664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0322222222", new TypeSet("VIDEO"))
5674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0333333333", new TypeSet("VOICE"))
5684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR",
5694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        ";;100 Waters Edge;Baytown;LA;30314;United States of America",
5704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("", "", "100 Waters Edge", "Baytown",
5714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "LA", "30314", "United States of America"),
5724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                null, null, new TypeSet("WORK"), null)
5734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("LABEL",
5744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "100 Waters Edge\r\nBaytown, LA 30314\r\nUnited  States of America",
5754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForQP, new TypeSet("WORK"), null)
5764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR",
5774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        ";;42 Plantation St.;Baytown;LA;30314;United States of America",
5784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("", "", "42 Plantation St.", "Baytown",
5794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "LA", "30314", "United States of America"), null, null,
5804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                new TypeSet("HOME"), null)
5814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("LABEL",
5824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "42 Plantation St.\r\nBaytown, LA 30314\r\nUnited  States of America",
5834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForQP,
5844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("HOME"), null)
5854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("EMAIL", "forrestgump@walladalla.com",
5864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("PREF", "INTERNET"))
5874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("EMAIL", "cell@example.com", new TypeSet("CELL"))
588f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .addExpectedNodeWithOrder("NOTE",
589f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                        "The following note is the example from RFC 2045.")
5904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("NOTE",
5914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "Now's the time for all folk to come to the aid of their country.",
5924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForQP, null, null)
5934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("PHOTO", null,
5944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, sPhotoByteArrayForComplicatedCase, mContentValuesForBase64V21,
5954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("JPEG"), null)
5964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-ATTRIBUTE", "Some String")
5974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("BDAY", "19800101")
5984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("GEO", "35.6563854,139.6994233")
5994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("URL", "http://www.example.com/")
6004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("REV", "20080424T195243Z");
6014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
6024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
6034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
6044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Checks ContactStruct correctly inserts values in a complicated vCard
6054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * into ContentResolver.
6064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
6074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21ComplicatedCase() {
6084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_complicated);
6094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
6104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
6114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "Gump")
6124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Forrest")
6134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "Hoge")
6144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PREFIX, "Pos")
6154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.SUFFIX, "Tao")
6164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Joe Due");
6174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
6184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK)
6194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Gump Shrimp Co.")
6204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Sales Dept.;Manager Fish keeper")
6214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TITLE, "Shrimp Man");
6224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_WORK)
6244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // Phone number is expected to be formated with NAMP format in default.
6254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "111-555-1212");
6264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_HOME)
6284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "404-555-1212");
6294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_MOBILE)
6314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "031-111-1111");
6324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
6344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "VIDEO")
6354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "032-222-2222");
6364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
6374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
6384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "VOICE")
6394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "033-333-3333");
6404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
6414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
6424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.COUNTRY, "United States of America")
6434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "30314")
6444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.REGION, "LA")
6454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.CITY, "Baytown")
6464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.STREET, "100 Waters Edge")
6474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
6484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "100 Waters Edge Baytown LA 30314 United States of America");
6494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
6504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME)
6514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.COUNTRY, "United States of America")
6524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "30314")
6534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.REGION, "LA")
6544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.CITY, "Baytown")
6554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.STREET, "42 Plantation St.")
6564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
6574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "42 Plantation St. Baytown LA 30314 United States of America");
6584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
6594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // "TYPE=INTERNET" -> TYPE_CUSTOM + the label "INTERNET"
6604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_CUSTOM)
6614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.LABEL, "INTERNET")
6624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "forrestgump@walladalla.com")
6634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.IS_PRIMARY, 1);
6644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
6654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.TYPE, Email.TYPE_MOBILE)
6664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Email.DATA, "cell@example.com");
6674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
6684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE, "The following note is the example from RFC 2045.");
6694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
6704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE,
6714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "Now's the time for all folk to come to the aid of their country.");
6724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Photo.CONTENT_ITEM_TYPE)
6734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // No information about its image format can be inserted.
6744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Photo.PHOTO, sPhotoByteArrayForComplicatedCase);
6754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Event.CONTENT_ITEM_TYPE)
6764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Event.START_DATE, "19800101")
6774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Event.TYPE, Event.TYPE_BIRTHDAY);
6784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Website.CONTENT_ITEM_TYPE)
6794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Website.URL, "http://www.example.com/")
6804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Website.TYPE, Website.TYPE_HOMEPAGE);
6814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
6824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
683f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa    public void testInvalidMultipleLineV21() {
684f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_invalid_multiple_line);
685f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
686f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
687f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Omega")
688f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Omega");
689f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa        elem.addExpected(Email.CONTENT_ITEM_TYPE)
690f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(Email.TYPE, Email.TYPE_CUSTOM)
691f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(Email.LABEL, "INTERNET")
692f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .put(Email.ADDRESS, "\"Omega\" <omega@example.com>");
693f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa    }
694f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa
6954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV30Simple_Parsing() {
6964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_simple);
6974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
6984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "And Roid")
699f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                .addExpectedNodeWithOrder("N", "And;Roid;;;",
700f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa                        Arrays.asList("And", "Roid", "", "", ""))
7014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ORG", "Open;Handset; Alliance",
7024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("Open", "Handset", " Alliance"))
7034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SORT-STRING", "android")
7044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0300000000", new TypeSet("PREF", "VOICE"))
7054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("CLASS", "PUBLIC")
7064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-GNO", "0")
7074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-GN", "group0")
7084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-REDUCTION", "0")
7094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("REV", "20081031T065854Z");
7104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV30Simple() {
7134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_simple);
7144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
7154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
7164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "And")
7174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Roid")
7184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "And Roid")
7194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "android");
7204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
7214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.COMPANY, "Open")
7224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.DEPARTMENT, "Handset  Alliance")
7234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK);
7244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
7254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
7264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "VOICE")
7274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "030-000-0000")
7284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.IS_PRIMARY, 1);
7294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Parsing() {
7324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        // Though Japanese careers append ";;;;" at the end of the value of "SOUND",
7334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        // vCard 2.1/3.0 specification does not allow multiple values.
7344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        // Do not need to handle it as multiple values.
7354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_japanese_1);
7364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
7374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9;;;;",
7384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9", "", "", "", ""),
7394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
7404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
7414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E;;;;",
7424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
7434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
7444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "0300000000", null, null, null,
7454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("VOICE", "PREF"), null);
7464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private void testV21Japanese1Common(int resId, int vcardType, boolean japanese) {
7494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(vcardType, resId);
7504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
7514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
7524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9")
7534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9")
7544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // While vCard parser does not split "SOUND" property values,
7554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // ContactStruct care it.
7564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
7574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E");
7584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
7594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // Phone number formatting is different.
7604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, (japanese ? "03-0000-0000" : "030-000-0000"))
7614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
7624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "VOICE")
7634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.IS_PRIMARY, 1);
7644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
7674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies vCard with Japanese can be parsed correctly with
768f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa     * {@link com.android.vcard.VCardConfig#VCARD_TYPE_V21_GENERIC}.
7694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
7704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Type_Generic_Utf8() {
7714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        testV21Japanese1Common(
7724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                R.raw.v21_japanese_1, VCardConfig.VCARD_TYPE_V21_GENERIC, false);
7734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
7764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies vCard with Japanese can be parsed correctly with
777f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa     * {@link com.android.vcard.VCardConfig#VCARD_TYPE_V21_JAPANESE}.
7784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
7794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Type_Japanese_Sjis() {
7804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        testV21Japanese1Common(
7814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                R.raw.v21_japanese_1, VCardConfig.VCARD_TYPE_V21_JAPANESE, true);
7824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    /**
7854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * Verifies vCard with Japanese can be parsed correctly with
786f6d9e0eeae38a72481ce2e19d0872d3f8f81189fDaisuke Miyakawa     * {@link com.android.vcard.VCardConfig#VCARD_TYPE_V21_JAPANESE}.
7874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     * since vCard 2.1 specifies the charset of each line if it contains non-Ascii.
7884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa     */
7894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese1_Type_Japanese_Utf8() {
7904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        testV21Japanese1Common(
7914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                R.raw.v21_japanese_1, VCardConfig.VCARD_TYPE_V21_JAPANESE, true);
7924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
7934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
7944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese2_Parsing() {
7954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_japanese_2);
7964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
7974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4;\u30ED\u30A4\u30C9\u0031;;;",
7984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4", "\u30ED\u30A4\u30C9\u0031",
7994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "", "", ""),
8004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9\u0020\u0031",
8024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis, null, null)
8034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73;\uFF9B\uFF72\uFF84\uFF9E\u0031;;;",
8054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ADR",
8084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        ";\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC\u0036" +
8114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u968E;;;;150-8512;",
8124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("",
8134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC" +
8164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                                "\u0036\u968E", "", "", "", "150-8512", ""),
8174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForQPAndSJis, new TypeSet("HOME"), null)
8184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("NOTE", "\u30E1\u30E2", null, null,
8194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        mContentValuesForQPAndSJis, null, null);
8204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21Japanese2_Type_Generic_Utf8() {
8234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_japanese_2);
8244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
8254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
8264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4")
8274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u30ED\u30A4\u30C9\u0031")
8284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME,
8294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9\u0020\u0031")
8304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // ContactStruct should correctly split "SOUND" property into several elements,
8314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                // even though VCardParser side does not care it.
8324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\uFF71\uFF9D\uFF84\uFF9E\uFF73")
8334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME, "\uFF9B\uFF72\uFF84\uFF9E\u0031");
8344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
8354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.POSTCODE, "150-8512")
8364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.STREET,
8374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC" +
8404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u0036\u968E")
8414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.FORMATTED_ADDRESS,
8424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u6771\u4EAC\u90FD\u6E0B\u8C37\u533A\u685C" +
8434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u4E18\u753A\u0032\u0036\u002D\u0031\u30BB" +
8444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u30EB\u30EA\u30A2\u30F3\u30BF\u30EF\u30FC" +
8454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\u0036\u968E 150-8512")
8464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);
8474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
8484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE, "\u30E1\u30E2");
8494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21MultipleEntryCase_Parse() {
8524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_multiple_entry);
8534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9\u0033;;;;",
8554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9\u0033", "", "", "", ""),
8564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0033;;;;",
8594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "9", new TypeSet("X-NEC-SECRET"))
8624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "10", new TypeSet("X-NEC-HOTEL"))
8634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "11", new TypeSet("X-NEC-SCHOOL"))
8644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "12", new TypeSet("FAX", "HOME"));
8654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9\u0034;;;;",
8674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9\u0034", "", "", "", ""),
8684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0034;;;;",
8714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "13", new TypeSet("MODEM"))
8744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "14", new TypeSet("PAGER"))
8754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "15", new TypeSet("X-NEC-FAMILY"))
8764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "16", new TypeSet("X-NEC-GIRL"));
8774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
8784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", "\u5B89\u85E4\u30ED\u30A4\u30C9\u0035;;;;",
8794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4\u30ED\u30A4\u30C9\u0035", "", "", "", ""),
8804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, mContentValuesForSJis, null, null)
8814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("SOUND",
8824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0035;;;;",
8834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        null, null, mContentValuesForSJis,
8844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("X-IRMC-N"), null)
8854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "17", new TypeSet("X-NEC-BOY"))
8864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "18", new TypeSet("X-NEC-FRIEND"))
8874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "19", new TypeSet("X-NEC-PHS"))
8884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "20", new TypeSet("X-NEC-RESTAURANT"));
8894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
8904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
8914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testV21MultipleEntryCase() {
8924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(VCardConfig.VCARD_TYPE_V21_JAPANESE, R.raw.v21_multiple_entry);
8934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
8944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
8954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0033")
8964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0033")
8974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
8984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0033");
8994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-SECRET")
9024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "9");
9034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-HOTEL")
9064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "10");
9074199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-SCHOOL")
9104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "11");
9114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_FAX_HOME)
9134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "12");
9144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem = mVerifier.addContentValuesVerifierElem();
9164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0034")
9184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0034")
9194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
9204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0034");
9214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "MODEM")
9244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "13");
9254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_PAGER)
9274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "14");
9284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-FAMILY")
9314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "15");
9324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-GIRL")
9354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "16");
9364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem = mVerifier.addContentValuesVerifierElem();
9384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0035")
9404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u30ED\u30A4\u30C9\u0035")
9414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
9424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        "\uFF71\uFF9D\uFF84\uFF9E\uFF73\uFF9B\uFF72\uFF84\uFF9E\u0035");
9434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-BOY")
9464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "17");
9474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-FRIEND")
9504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "18");
9514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-PHS")
9544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "19");
9554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
9564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
9574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.LABEL, "NEC-RESTAURANT")
9584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "20");
9594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testIgnoreAgentV21_Parse() {
9624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_winmo_65);
9634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValues contentValuesForValue = new ContentValues();
9644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        contentValuesForValue.put("VALUE", "DATE");
9654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
9664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("Example", "", "", "", ""))
9674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "Example")
9684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("ANNIVERSARY", "20091010", contentValuesForValue)
9694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("AGENT", "")
9704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-CLASS", "PUBLIC")
9714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-REDUCTION", "")
9724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("X-NO", "");
9734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testIgnoreAgentV21() {
9764199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_winmo_65);
9774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifier verifier = new ContentValuesVerifier();
9784199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
9794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9804199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "Example")
9814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Example");
98242f5f84d9d501893bc14702276f0300ca8230bb5Daisuke Miyakawa        elem.addExpected(Event.CONTENT_ITEM_TYPE)
98342f5f84d9d501893bc14702276f0300ca8230bb5Daisuke Miyakawa                .put(Event.TYPE, Event.TYPE_ANNIVERSARY)
98442f5f84d9d501893bc14702276f0300ca8230bb5Daisuke Miyakawa                .put(Event.START_DATE, "20091010");
9854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9864199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9874199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testTolerateInvalidCommentLikeLineV21() {
9884199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.initForImportTest(V21, R.raw.v21_invalid_comment_line);
9894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
9904199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
9914199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "Conference Call")
9924199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "Conference Call");
9934199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Note.CONTENT_ITEM_TYPE)
9944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Note.NOTE, "This is an (sharp ->#<- sharp) example. "
9954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        + "This message must NOT be ignored.");
9964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
9974199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
9984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testPagerV30_Parse() {
999d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_pager);
10004199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
10014199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("F", "G", "M", "", ""))
10024199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "6101231234@pagersample.com",
10034199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                        new TypeSet("WORK", "MSG", "PAGER"));
10044199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
10054199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
10064199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void testPagerV30() {
1007d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_pager);
10084199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10094199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "F")
10114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "M")
10124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "G")
10134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "G M F");
10144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
10154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_PAGER)
10164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa                .put(Phone.NUMBER, "6101231234@pagersample.com");
10174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
1018d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa
10192bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    public void testMultiBytePropV30_Parse() {
10202bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_multibyte_param);
10212bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
10222bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .addExpectedNodeWithOrder("N", Arrays.asList("F", "G", "M", "", ""))
10232bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .addExpectedNodeWithOrder("TEL", "1", new TypeSet("\u8D39"));
10242bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    }
10252bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa
10262bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    public void testMultiBytePropV30() {
10272bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        mVerifier.initForImportTest(V30, R.raw.v30_multibyte_param);
10282bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10292bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10302bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "F")
10312bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.MIDDLE_NAME, "M")
10322bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "G")
10332bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "G M F");
10342bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa        elem.addExpected(Phone.CONTENT_ITEM_TYPE)
10352bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(Phone.TYPE, Phone.TYPE_CUSTOM)
10362bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(Phone.LABEL, "\u8D39")
10372bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa                .put(Phone.NUMBER, "1");
10382bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa    }
10392bf85a1a15a3175119ab8415fc590fd5fe3d0752Daisuke Miyakawa
10404560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa    public void testSortAsV40_Parse() {
10414560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        mVerifier.initForImportTest(V40, R.raw.v40_sort_as);
10424560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa
10434560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        final ContentValues contentValuesForSortAsN = new ContentValues();
10444560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        contentValuesForSortAsN.put("SORT-AS",
10454560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                "\u3042\u3093\u3069\u3046;\u308D\u3044\u3069");
10464560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        final ContentValues contentValuesForSortAsOrg = new ContentValues();
10474560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        contentValuesForSortAsOrg.put("SORT-AS",
10484560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                "\u3050\u30FC\u3050\u308B;\u3051\u3093\u3055\u304F\u3076\u3082\u3093");
10494560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa
1050d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa        mVerifier.addPropertyNodesVerifierElem()
10514560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .addExpectedNodeWithOrder("FN", "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9")
10524560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .addExpectedNodeWithOrder("N",
10534560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        Arrays.asList("\u5B89\u85E4", "\u30ED\u30A4\u30C9", "", "", ""),
10544560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        contentValuesForSortAsN)
10554560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .addExpectedNodeWithOrder("ORG",
10564560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        Arrays.asList("\u30B0\u30FC\u30B0\u30EB", "\u691C\u7D22\u90E8\u9580"),
10574560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        contentValuesForSortAsOrg, new TypeSet("WORK"));
10584560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa    }
10594560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa
10604560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa    public void testSortAsV40() {
10614560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        mVerifier.initForImportTest(V40, R.raw.v40_sort_as);
10624560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        final ContentValuesVerifierElem elem = mVerifier.addContentValuesVerifierElem();
10634560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        elem.addExpected(StructuredName.CONTENT_ITEM_TYPE)
10644560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.FAMILY_NAME, "\u5B89\u85E4")
10654560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.GIVEN_NAME, "\u30ED\u30A4\u30C9")
10664560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.DISPLAY_NAME, "\u5B89\u85E4\u0020\u30ED\u30A4\u30C9")
10674560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.PHONETIC_FAMILY_NAME, "\u3042\u3093\u3069\u3046")
10684560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(StructuredName.PHONETIC_GIVEN_NAME,
10694560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        "\u308D\u3044\u3069");
10704560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa        elem.addExpected(Organization.CONTENT_ITEM_TYPE)
10714560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.TYPE, Organization.TYPE_WORK)
10724560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.COMPANY, "\u30B0\u30FC\u30B0\u30EB")
10734560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.DEPARTMENT, "\u691C\u7D22\u90E8\u9580")
10744560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                .put(Organization.PHONETIC_NAME,
10754560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa                        "\u3050\u30FC\u3050\u308B\u3051\u3093\u3055\u304F\u3076\u3082\u3093");
1076d5a8fc2a35c69fc34df35fd545ccf83d548ba50cDaisuke Miyakawa    }
10774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa}
1078