1d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng/*
2d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * Copyright (C) 2012 The Android Open Source Project
3d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng *
4d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * Licensed under the Apache License, Version 2.0 (the "License");
5d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * you may not use this file except in compliance with the License.
6d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * You may obtain a copy of the License at
7d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng *
8d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng *      http://www.apache.org/licenses/LICENSE-2.0
9d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng *
10d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * Unless required by applicable law or agreed to in writing, software
11d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * distributed under the License is distributed on an "AS IS" BASIS,
12d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * See the License for the specific language governing permissions and
14d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * limitations under the License
15d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng */
16d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
17d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengpackage com.android.vcard.tests;
18d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
19d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport android.content.ContentValues;
20d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport android.provider.ContactsContract;
21d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
22d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport com.android.vcard.VCardBuilder;
23d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport com.android.vcard.VCardConfig;
24d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport com.google.android.collect.Lists;
25d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
26d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport junit.framework.TestCase;
27d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
28d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengimport java.util.ArrayList;
29d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
30d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng/**
31d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng * Unit test for VCardBuilder.
32d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng */
33d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Chengpublic class VCardBuilderTest extends TestCase {
34d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
35d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng    public void testVCardNameFieldFromDisplayName() {
36d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        final ArrayList<ContentValues> contentList = Lists.newArrayList();
37d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
38d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        final ContentValues values = new ContentValues();
39d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "ने");
40d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        contentList.add(values);
41d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
42d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        final VCardBuilder builder = new VCardBuilder(VCardConfig.VCARD_TYPE_DEFAULT);
43d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        builder.appendNameProperties(contentList);
44d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        final String actual = builder.toString();
45d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
46d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        final String expectedCommon = ";CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:" +
478aa2ab8a2f4284cdbc9392e8597ab6d4fd302c50Chiao Cheng                "=E0=A4=A8=E0=A5=87";
48d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
498aa2ab8a2f4284cdbc9392e8597ab6d4fd302c50Chiao Cheng        final String expectedName = "N" + expectedCommon + ";;;;";
50d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        final String expectedFullName = "FN" + expectedCommon;
51d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
52d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        assertTrue("Actual value:\n" + actual + " expected to contain\n" + expectedName +
53d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng                "\nbut does not.", actual.contains(expectedName));
54d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng        assertTrue("Actual value:\n" + actual + " expected to contain\n" + expectedFullName +
55d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng                "\nbut does not.", actual.contains(expectedFullName));
56d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng    }
57d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng}
58d5a731faf1f749ad7031c13ca5a8cdb516c79b72Chiao Cheng
59