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