From 64545a8ced5aa350e917ab1824a1c06a14a96532 Mon Sep 17 00:00:00 2001 From: Daisuke Miyakawa Date: Fri, 14 May 2010 11:17:46 -0700 Subject: [PATCH] Make vCard code a separated static library. - Move the library to a separate directory in framewokr/base, and rename its package from android.pim.vcard to com.android.vcard. - Move all tests for the library under the directory. - Confirm all tests for vCard are successful. It would be better for us to have this directory somewhere else (like external/). But I'll submit this here now and move it to the right place as soon as possible. From the view of build mechanism, we can do that immediately. BUG: 2689523 Change-Id: I435e10571b7160bfcc029bed7c37aaac1c6fd69a --- .../android/pim/vcard/exception/package.html | 5 --- core/java/android/pim/vcard/package.html | 5 --- vcard/Android.mk | 28 +++++++++++++ .../com/android}/vcard/JapaneseUtils.java | 2 +- .../java/com/android}/vcard/VCardBuilder.java | 8 ++-- .../com/android}/vcard/VCardComposer.java | 6 ++- .../java/com/android}/vcard/VCardConfig.java | 5 +-- .../com/android}/vcard/VCardConstants.java | 2 +- .../java/com/android}/vcard/VCardEntry.java | 4 +- .../android}/vcard/VCardEntryCommitter.java | 2 +- .../android}/vcard/VCardEntryConstructor.java | 12 ++++-- .../com/android}/vcard/VCardEntryCounter.java | 2 +- .../com/android}/vcard/VCardEntryHandler.java | 2 +- .../com/android}/vcard/VCardInterpreter.java | 2 +- .../vcard/VCardInterpreterCollection.java | 2 +- .../java/com/android}/vcard/VCardParser.java | 4 +- .../android}/vcard/VCardParserImpl_V21.java | 15 +++---- .../android}/vcard/VCardParserImpl_V30.java | 9 ++-- .../com/android}/vcard/VCardParser_V21.java | 4 +- .../com/android}/vcard/VCardParser_V30.java | 4 +- .../android}/vcard/VCardSourceDetector.java | 2 +- .../java/com/android}/vcard/VCardUtils.java | 41 +++++++++++-------- .../VCardAgentNotSupportedException.java | 2 +- .../vcard/exception/VCardException.java | 2 +- .../VCardInvalidCommentLineException.java | 2 +- .../exception/VCardInvalidLineException.java | 3 +- .../vcard/exception/VCardNestedException.java | 2 +- .../exception/VCardNotSupportedException.java | 2 +- .../exception/VCardVersionException.java | 3 +- vcard/tests/Android.mk | 25 +++++++++++ vcard/tests/AndroidManifest.xml | 30 ++++++++++++++ .../tests}/res/raw/v21_backslash.vcf | 0 .../tests}/res/raw/v21_complicated.vcf | 0 .../res/raw/v21_invalid_comment_line.vcf | 0 .../tests}/res/raw/v21_japanese_1.vcf | 0 .../tests}/res/raw/v21_japanese_2.vcf | 0 .../tests}/res/raw/v21_multiple_entry.vcf | 0 .../tests}/res/raw/v21_org_before_title.vcf | 0 .../tests}/res/raw/v21_pref_handling.vcf | 0 .../tests}/res/raw/v21_simple_1.vcf | 0 .../tests}/res/raw/v21_simple_2.vcf | 0 .../tests}/res/raw/v21_simple_3.vcf | 0 .../tests}/res/raw/v21_title_before_org.vcf | 0 .../tests}/res/raw/v21_winmo_65.vcf | 0 .../tests}/res/raw/v30_comma_separated.vcf | 0 .../tests}/res/raw/v30_simple.vcf | 0 .../vcard/tests}/VCardExporterTests.java | 10 +++-- .../vcard/tests}/VCardImporterTests.java | 10 ++--- .../vcard/tests}/VCardJapanizationTests.java | 13 +++--- .../android/vcard/tests}/VCardTestsBase.java | 7 ++-- .../android/vcard/tests}/VCardUtilsTests.java | 5 +-- .../vcard/tests}/test_utils/ContactEntry.java | 2 +- .../test_utils/ContentValuesBuilder.java | 2 +- .../test_utils/ContentValuesVerifier.java | 19 +++++---- .../test_utils/ContentValuesVerifierElem.java | 21 +++++----- .../tests}/test_utils/ExportTestProvider.java | 5 ++- .../tests}/test_utils/ExportTestResolver.java | 5 ++- .../tests}/test_utils/ImportTestProvider.java | 10 ++++- .../tests}/test_utils/ImportTestResolver.java | 2 +- .../vcard/tests}/test_utils/LineVerifier.java | 5 ++- .../tests}/test_utils/LineVerifierElem.java | 5 ++- .../vcard/tests}/test_utils/PropertyNode.java | 5 ++- .../test_utils/PropertyNodesVerifier.java | 13 +++--- .../test_utils/PropertyNodesVerifierElem.java | 2 +- .../tests}/test_utils/VCardVerifier.java | 21 +++++----- .../vcard/tests}/test_utils/VNode.java | 2 +- .../vcard/tests}/test_utils/VNodeBuilder.java | 13 +++--- 67 files changed, 256 insertions(+), 158 deletions(-) delete mode 100644 core/java/android/pim/vcard/exception/package.html delete mode 100644 core/java/android/pim/vcard/package.html create mode 100644 vcard/Android.mk rename {core/java/android/pim => vcard/java/com/android}/vcard/JapaneseUtils.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardBuilder.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardComposer.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardConfig.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardConstants.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardEntry.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardEntryCommitter.java (98%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardEntryConstructor.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardEntryCounter.java (98%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardEntryHandler.java (97%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardInterpreter.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardInterpreterCollection.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardParser.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardParserImpl_V21.java (98%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardParserImpl_V30.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardParser_V21.java (98%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardParser_V30.java (97%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardSourceDetector.java (99%) rename {core/java/android/pim => vcard/java/com/android}/vcard/VCardUtils.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardAgentNotSupportedException.java (95%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardException.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardInvalidCommentLineException.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardInvalidLineException.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardNestedException.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardNotSupportedException.java (96%) rename {core/java/android/pim => vcard/java/com/android}/vcard/exception/VCardVersionException.java (95%) create mode 100644 vcard/tests/Android.mk create mode 100644 vcard/tests/AndroidManifest.xml rename {core/tests/coretests => vcard/tests}/res/raw/v21_backslash.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_complicated.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_invalid_comment_line.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_japanese_1.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_japanese_2.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_multiple_entry.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_org_before_title.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_pref_handling.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_simple_1.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_simple_2.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_simple_3.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_title_before_org.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v21_winmo_65.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v30_comma_separated.vcf (100%) rename {core/tests/coretests => vcard/tests}/res/raw/v30_simple.vcf (100%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/VCardExporterTests.java (99%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/VCardImporterTests.java (99%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/VCardJapanizationTests.java (98%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/VCardTestsBase.java (96%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/VCardUtilsTests.java (98%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ContactEntry.java (96%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ContentValuesBuilder.java (98%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ContentValuesVerifier.java (89%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ContentValuesVerifierElem.java (86%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ExportTestProvider.java (98%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ExportTestResolver.java (93%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ImportTestProvider.java (96%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/ImportTestResolver.java (97%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/LineVerifier.java (95%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/LineVerifierElem.java (97%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/PropertyNode.java (98%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/PropertyNodesVerifier.java (92%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/PropertyNodesVerifierElem.java (99%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/VCardVerifier.java (96%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/VNode.java (95%) rename {core/tests/coretests/src/android/pim/vcard => vcard/tests/src/com/android/vcard/tests}/test_utils/VNodeBuilder.java (96%) diff --git a/core/java/android/pim/vcard/exception/package.html b/core/java/android/pim/vcard/exception/package.html deleted file mode 100644 index 26b8a328b1321..0000000000000 --- a/core/java/android/pim/vcard/exception/package.html +++ /dev/null @@ -1,5 +0,0 @@ - - -{@hide} - - \ No newline at end of file diff --git a/core/java/android/pim/vcard/package.html b/core/java/android/pim/vcard/package.html deleted file mode 100644 index 26b8a328b1321..0000000000000 --- a/core/java/android/pim/vcard/package.html +++ /dev/null @@ -1,5 +0,0 @@ - - -{@hide} - - \ No newline at end of file diff --git a/vcard/Android.mk b/vcard/Android.mk new file mode 100644 index 0000000000000..2bc17aa8c928c --- /dev/null +++ b/vcard/Android.mk @@ -0,0 +1,28 @@ +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE := com.android.vcard +LOCAL_SRC_FILES := $(call all-java-files-under, java) + +# Use google-common instead of android-common for using hidden code in telephony library. +# Use ext for using Quoted-Printable codec. +LOCAL_JAVA_LIBRARIES := google-common ext + +include $(BUILD_STATIC_JAVA_LIBRARY) + +# Build the test package. +include $(call all-makefiles-under, $(LOCAL_PATH)) diff --git a/core/java/android/pim/vcard/JapaneseUtils.java b/vcard/java/com/android/vcard/JapaneseUtils.java similarity index 99% rename from core/java/android/pim/vcard/JapaneseUtils.java rename to vcard/java/com/android/vcard/JapaneseUtils.java index dcfe980bfcaf3..5b44944696002 100644 --- a/core/java/android/pim/vcard/JapaneseUtils.java +++ b/vcard/java/com/android/vcard/JapaneseUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import java.util.HashMap; import java.util.Map; diff --git a/core/java/android/pim/vcard/VCardBuilder.java b/vcard/java/com/android/vcard/VCardBuilder.java similarity index 99% rename from core/java/android/pim/vcard/VCardBuilder.java rename to vcard/java/com/android/vcard/VCardBuilder.java index 789b5f8904628..6ef9adad94b37 100644 --- a/core/java/android/pim/vcard/VCardBuilder.java +++ b/vcard/java/com/android/vcard/VCardBuilder.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard; +package com.android.vcard; import android.content.ContentValues; import android.provider.ContactsContract.CommonDataKinds.Email; @@ -30,11 +30,10 @@ import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; +import android.util.Base64; import android.util.CharsetUtils; import android.util.Log; -import org.apache.commons.codec.binary.Base64; - import java.io.UnsupportedEncodingException; import java.nio.charset.UnsupportedCharsetException; import java.util.ArrayList; @@ -1166,7 +1165,8 @@ public class VCardBuilder { Log.d(LOG_TAG, "Unknown photo type. Ignored."); continue; } - final String photoString = new String(Base64.encodeBase64(data)); + // TODO: check this works fine. + final String photoString = new String(Base64.encode(data, Base64.NO_WRAP)); if (!TextUtils.isEmpty(photoString)) { appendPhotoLine(photoString, photoType); } diff --git a/core/java/android/pim/vcard/VCardComposer.java b/vcard/java/com/android/vcard/VCardComposer.java similarity index 99% rename from core/java/android/pim/vcard/VCardComposer.java rename to vcard/java/com/android/vcard/VCardComposer.java index 170d6fafdccd0..70389557582e7 100644 --- a/core/java/android/pim/vcard/VCardComposer.java +++ b/vcard/java/com/android/vcard/VCardComposer.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard; +package com.android.vcard; import android.content.ContentResolver; import android.content.ContentValues; @@ -24,7 +24,6 @@ import android.content.Entity.NamedContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteException; import android.net.Uri; -import android.pim.vcard.exception.VCardException; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; @@ -45,6 +44,8 @@ import android.text.TextUtils; import android.util.CharsetUtils; import android.util.Log; +import com.android.vcard.exception.VCardException; + import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; @@ -526,6 +527,7 @@ public class VCardComposer { EntityIterator entityIterator = null; try { final Uri uri = RawContactsEntity.CONTENT_URI.buildUpon() + // .appendQueryParameter("for_export_only", "1") .appendQueryParameter(Data.FOR_EXPORT_ONLY, "1") .build(); final String selection = Data.CONTACT_ID + "=?"; diff --git a/core/java/android/pim/vcard/VCardConfig.java b/vcard/java/com/android/vcard/VCardConfig.java similarity index 99% rename from core/java/android/pim/vcard/VCardConfig.java rename to vcard/java/com/android/vcard/VCardConfig.java index 80709f30ae92a..fc95922d9e257 100644 --- a/core/java/android/pim/vcard/VCardConfig.java +++ b/vcard/java/com/android/vcard/VCardConfig.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import android.telephony.PhoneNumberUtils; import android.util.Log; @@ -53,7 +53,6 @@ public class VCardConfig { * and it has 1 to 1 mapping in all 8bit characters. * If the assumption is not correct, this setting will cause some bug. *

- * @hide made public just for unit test */ public static final String DEFAULT_INTERMEDIATE_CHARSET = "ISO-8859-1"; @@ -476,4 +475,4 @@ public class VCardConfig { private VCardConfig() { } -} +} \ No newline at end of file diff --git a/core/java/android/pim/vcard/VCardConstants.java b/vcard/java/com/android/vcard/VCardConstants.java similarity index 99% rename from core/java/android/pim/vcard/VCardConstants.java rename to vcard/java/com/android/vcard/VCardConstants.java index e11b1fd2f95cc..862c9edcb5af3 100644 --- a/core/java/android/pim/vcard/VCardConstants.java +++ b/vcard/java/com/android/vcard/VCardConstants.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; /** * Constants used in both exporter and importer code. diff --git a/core/java/android/pim/vcard/VCardEntry.java b/vcard/java/com/android/vcard/VCardEntry.java similarity index 99% rename from core/java/android/pim/vcard/VCardEntry.java rename to vcard/java/com/android/vcard/VCardEntry.java index 5b9cf1728a1fd..624407a350dda 100644 --- a/core/java/android/pim/vcard/VCardEntry.java +++ b/vcard/java/com/android/vcard/VCardEntry.java @@ -13,20 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import android.accounts.Account; import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentResolver; import android.content.OperationApplicationException; -import android.database.Cursor; import android.net.Uri; import android.os.RemoteException; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; -import android.provider.ContactsContract.Groups; import android.provider.ContactsContract.RawContacts; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Event; diff --git a/core/java/android/pim/vcard/VCardEntryCommitter.java b/vcard/java/com/android/vcard/VCardEntryCommitter.java similarity index 98% rename from core/java/android/pim/vcard/VCardEntryCommitter.java rename to vcard/java/com/android/vcard/VCardEntryCommitter.java index a8c8057a58b64..7bd314eb304e5 100644 --- a/core/java/android/pim/vcard/VCardEntryCommitter.java +++ b/vcard/java/com/android/vcard/VCardEntryCommitter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import android.content.ContentResolver; import android.net.Uri; diff --git a/core/java/android/pim/vcard/VCardEntryConstructor.java b/vcard/java/com/android/vcard/VCardEntryConstructor.java similarity index 96% rename from core/java/android/pim/vcard/VCardEntryConstructor.java rename to vcard/java/com/android/vcard/VCardEntryConstructor.java index a0abae8c641d8..2679e238adcbe 100644 --- a/core/java/android/pim/vcard/VCardEntryConstructor.java +++ b/vcard/java/com/android/vcard/VCardEntryConstructor.java @@ -13,15 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import android.accounts.Account; import android.text.TextUtils; +import android.util.Base64; import android.util.CharsetUtils; import android.util.Log; -import org.apache.commons.codec.binary.Base64; - import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.charset.Charset; @@ -190,9 +189,14 @@ public class VCardEntryConstructor implements VCardInterpreter { private String handleOneValue(String value, String sourceCharset, String targetCharset, String encoding) { + if (value == null) { + Log.w(LOG_TAG, "Null is given."); + value = ""; + } + if (encoding != null) { if (encoding.equals("BASE64") || encoding.equals("B")) { - mCurrentProperty.setPropertyBytes(Base64.decodeBase64(value.getBytes())); + mCurrentProperty.setPropertyBytes(Base64.decode(value.getBytes(), Base64.DEFAULT)); return value; } else if (encoding.equals("QUOTED-PRINTABLE")) { return VCardUtils.parseQuotedPrintable( diff --git a/core/java/android/pim/vcard/VCardEntryCounter.java b/vcard/java/com/android/vcard/VCardEntryCounter.java similarity index 98% rename from core/java/android/pim/vcard/VCardEntryCounter.java rename to vcard/java/com/android/vcard/VCardEntryCounter.java index 7bab50dcdb591..7bfe9773fb473 100644 --- a/core/java/android/pim/vcard/VCardEntryCounter.java +++ b/vcard/java/com/android/vcard/VCardEntryCounter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import java.util.List; diff --git a/core/java/android/pim/vcard/VCardEntryHandler.java b/vcard/java/com/android/vcard/VCardEntryHandler.java similarity index 97% rename from core/java/android/pim/vcard/VCardEntryHandler.java rename to vcard/java/com/android/vcard/VCardEntryHandler.java index 56bf69d5d3717..ef35a20a20f64 100644 --- a/core/java/android/pim/vcard/VCardEntryHandler.java +++ b/vcard/java/com/android/vcard/VCardEntryHandler.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; /** *

diff --git a/core/java/android/pim/vcard/VCardInterpreter.java b/vcard/java/com/android/vcard/VCardInterpreter.java similarity index 99% rename from core/java/android/pim/vcard/VCardInterpreter.java rename to vcard/java/com/android/vcard/VCardInterpreter.java index 03704a22a962a..2d987644fe6fa 100644 --- a/core/java/android/pim/vcard/VCardInterpreter.java +++ b/vcard/java/com/android/vcard/VCardInterpreter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import java.util.List; diff --git a/core/java/android/pim/vcard/VCardInterpreterCollection.java b/vcard/java/com/android/vcard/VCardInterpreterCollection.java similarity index 99% rename from core/java/android/pim/vcard/VCardInterpreterCollection.java rename to vcard/java/com/android/vcard/VCardInterpreterCollection.java index 4952dc71c48ad..4a40d9312b217 100644 --- a/core/java/android/pim/vcard/VCardInterpreterCollection.java +++ b/vcard/java/com/android/vcard/VCardInterpreterCollection.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import java.util.Collection; import java.util.List; diff --git a/core/java/android/pim/vcard/VCardParser.java b/vcard/java/com/android/vcard/VCardParser.java similarity index 96% rename from core/java/android/pim/vcard/VCardParser.java rename to vcard/java/com/android/vcard/VCardParser.java index 31b9369231f52..b7b8291dd7cf7 100644 --- a/core/java/android/pim/vcard/VCardParser.java +++ b/vcard/java/com/android/vcard/VCardParser.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; -import android.pim.vcard.exception.VCardException; +import com.android.vcard.exception.VCardException; import java.io.IOException; import java.io.InputStream; diff --git a/core/java/android/pim/vcard/VCardParserImpl_V21.java b/vcard/java/com/android/vcard/VCardParserImpl_V21.java similarity index 98% rename from core/java/android/pim/vcard/VCardParserImpl_V21.java rename to vcard/java/com/android/vcard/VCardParserImpl_V21.java index 7d294cc456035..00ae6c91df2fd 100644 --- a/core/java/android/pim/vcard/VCardParserImpl_V21.java +++ b/vcard/java/com/android/vcard/VCardParserImpl_V21.java @@ -13,17 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; -import android.pim.vcard.exception.VCardAgentNotSupportedException; -import android.pim.vcard.exception.VCardException; -import android.pim.vcard.exception.VCardInvalidCommentLineException; -import android.pim.vcard.exception.VCardInvalidLineException; -import android.pim.vcard.exception.VCardNestedException; -import android.pim.vcard.exception.VCardVersionException; import android.text.TextUtils; import android.util.Log; +import com.android.vcard.exception.VCardAgentNotSupportedException; +import com.android.vcard.exception.VCardException; +import com.android.vcard.exception.VCardInvalidCommentLineException; +import com.android.vcard.exception.VCardInvalidLineException; +import com.android.vcard.exception.VCardNestedException; +import com.android.vcard.exception.VCardVersionException; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; diff --git a/core/java/android/pim/vcard/VCardParserImpl_V30.java b/vcard/java/com/android/vcard/VCardParserImpl_V30.java similarity index 99% rename from core/java/android/pim/vcard/VCardParserImpl_V30.java rename to vcard/java/com/android/vcard/VCardParserImpl_V30.java index a48a3b42ed5e6..61d0455983eb2 100644 --- a/core/java/android/pim/vcard/VCardParserImpl_V30.java +++ b/vcard/java/com/android/vcard/VCardParserImpl_V30.java @@ -13,14 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; + +import android.util.Log; + +import com.android.vcard.exception.VCardException; import java.io.IOException; import java.util.Set; -import android.pim.vcard.exception.VCardException; -import android.util.Log; - /** *

* Basic implementation achieving vCard 3.0 parsing. diff --git a/core/java/android/pim/vcard/VCardParser_V21.java b/vcard/java/com/android/vcard/VCardParser_V21.java similarity index 98% rename from core/java/android/pim/vcard/VCardParser_V21.java rename to vcard/java/com/android/vcard/VCardParser_V21.java index b625695d0f913..2a5e313266d25 100644 --- a/core/java/android/pim/vcard/VCardParser_V21.java +++ b/vcard/java/com/android/vcard/VCardParser_V21.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; -import android.pim.vcard.exception.VCardException; +import com.android.vcard.exception.VCardException; import java.io.IOException; import java.io.InputStream; diff --git a/core/java/android/pim/vcard/VCardParser_V30.java b/vcard/java/com/android/vcard/VCardParser_V30.java similarity index 97% rename from core/java/android/pim/vcard/VCardParser_V30.java rename to vcard/java/com/android/vcard/VCardParser_V30.java index 40792ab4bb7b1..179869b2163dd 100644 --- a/core/java/android/pim/vcard/VCardParser_V30.java +++ b/vcard/java/com/android/vcard/VCardParser_V30.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; -import android.pim.vcard.exception.VCardException; +import com.android.vcard.exception.VCardException; import java.io.IOException; import java.io.InputStream; diff --git a/core/java/android/pim/vcard/VCardSourceDetector.java b/vcard/java/com/android/vcard/VCardSourceDetector.java similarity index 99% rename from core/java/android/pim/vcard/VCardSourceDetector.java rename to vcard/java/com/android/vcard/VCardSourceDetector.java index 291deca9289cc..e70d4961cfaf8 100644 --- a/core/java/android/pim/vcard/VCardSourceDetector.java +++ b/vcard/java/com/android/vcard/VCardSourceDetector.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; import android.text.TextUtils; diff --git a/core/java/android/pim/vcard/VCardUtils.java b/vcard/java/com/android/vcard/VCardUtils.java similarity index 96% rename from core/java/android/pim/vcard/VCardUtils.java rename to vcard/java/com/android/vcard/VCardUtils.java index 680ef6fa0f067..fb0c2e7b625ba 100644 --- a/core/java/android/pim/vcard/VCardUtils.java +++ b/vcard/java/com/android/vcard/VCardUtils.java @@ -13,7 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.net.QuotedPrintableCodec; import android.content.ContentProviderOperation; import android.provider.ContactsContract.Data; @@ -24,9 +27,6 @@ import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; -import org.apache.commons.codec.DecoderException; -import org.apache.commons.codec.net.QuotedPrintableCodec; - import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Arrays; @@ -39,7 +39,6 @@ import java.util.Set; /** * Utilities for VCard handling codes. - * @hide */ public class VCardUtils { private static final String LOG_TAG = "VCardUtils"; @@ -193,8 +192,7 @@ public class VCardUtils { // For backward compatibility. // Detail: Until Donut, there isn't TYPE_MOBILE for email while there is now. // To support mobile type at that time, this custom label had been used. - return (android.provider.Contacts.ContactMethodsColumns.MOBILE_EMAIL_TYPE_NAME.equals(label) - || sMobilePhoneLabelSet.contains(label)); + return ("_AUTO_CELL".equals(label) || sMobilePhoneLabelSet.contains(label)); } public static boolean isValidInV21ButUnknownToContactsPhoteType(final String label) { @@ -625,26 +623,33 @@ public class VCardUtils { } builder.append(line); } - byte[] bytes; - try { - bytes = builder.toString().getBytes(sourceCharset); - } catch (UnsupportedEncodingException e1) { - Log.e(LOG_TAG, "Failed to encode: charset=" + targetCharset); - bytes = builder.toString().getBytes(); + + final String rawString = builder.toString(); + if (TextUtils.isEmpty(rawString)) { + Log.w(LOG_TAG, "Given raw string is empty."); } + byte[] rawBytes = null; try { - bytes = QuotedPrintableCodec.decodeQuotedPrintable(bytes); + rawBytes = rawString.getBytes(sourceCharset); + } catch (UnsupportedEncodingException e) { + Log.w(LOG_TAG, "Failed to decode: " + sourceCharset); + rawBytes = rawString.getBytes(); + } + + byte[] decodedBytes = null; + try { + decodedBytes = QuotedPrintableCodec.decodeQuotedPrintable(rawBytes); } catch (DecoderException e) { - Log.e(LOG_TAG, "Failed to decode quoted-printable: " + e); - return ""; + Log.e(LOG_TAG, "DecoderException is thrown."); + decodedBytes = rawBytes; } try { - return new String(bytes, targetCharset); + return new String(decodedBytes, targetCharset); } catch (UnsupportedEncodingException e) { Log.e(LOG_TAG, "Failed to encode: charset=" + targetCharset); - return new String(bytes); + return new String(decodedBytes); } } diff --git a/core/java/android/pim/vcard/exception/VCardAgentNotSupportedException.java b/vcard/java/com/android/vcard/exception/VCardAgentNotSupportedException.java similarity index 95% rename from core/java/android/pim/vcard/exception/VCardAgentNotSupportedException.java rename to vcard/java/com/android/vcard/exception/VCardAgentNotSupportedException.java index e72c7df3da51b..c408716e5bc88 100644 --- a/core/java/android/pim/vcard/exception/VCardAgentNotSupportedException.java +++ b/vcard/java/com/android/vcard/exception/VCardAgentNotSupportedException.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.exception; +package com.android.vcard.exception; public class VCardAgentNotSupportedException extends VCardNotSupportedException { public VCardAgentNotSupportedException() { diff --git a/core/java/android/pim/vcard/exception/VCardException.java b/vcard/java/com/android/vcard/exception/VCardException.java similarity index 96% rename from core/java/android/pim/vcard/exception/VCardException.java rename to vcard/java/com/android/vcard/exception/VCardException.java index e557219f235a4..3ad7fd38b6076 100644 --- a/core/java/android/pim/vcard/exception/VCardException.java +++ b/vcard/java/com/android/vcard/exception/VCardException.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.exception; +package com.android.vcard.exception; public class VCardException extends java.lang.Exception { /** diff --git a/core/java/android/pim/vcard/exception/VCardInvalidCommentLineException.java b/vcard/java/com/android/vcard/exception/VCardInvalidCommentLineException.java similarity index 96% rename from core/java/android/pim/vcard/exception/VCardInvalidCommentLineException.java rename to vcard/java/com/android/vcard/exception/VCardInvalidCommentLineException.java index 67db62ce86b51..342769ef58ecc 100644 --- a/core/java/android/pim/vcard/exception/VCardInvalidCommentLineException.java +++ b/vcard/java/com/android/vcard/exception/VCardInvalidCommentLineException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package android.pim.vcard.exception; +package com.android.vcard.exception; /** * Thrown when the vCard has some line starting with '#'. In the specification, diff --git a/core/java/android/pim/vcard/exception/VCardInvalidLineException.java b/vcard/java/com/android/vcard/exception/VCardInvalidLineException.java similarity index 96% rename from core/java/android/pim/vcard/exception/VCardInvalidLineException.java rename to vcard/java/com/android/vcard/exception/VCardInvalidLineException.java index 330153ec2638d..5c2250fc36a33 100644 --- a/core/java/android/pim/vcard/exception/VCardInvalidLineException.java +++ b/vcard/java/com/android/vcard/exception/VCardInvalidLineException.java @@ -13,8 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package android.pim.vcard.exception; +package com.android.vcard.exception; /** * Thrown when the vCard has some line starting with '#'. In the specification, diff --git a/core/java/android/pim/vcard/exception/VCardNestedException.java b/vcard/java/com/android/vcard/exception/VCardNestedException.java similarity index 96% rename from core/java/android/pim/vcard/exception/VCardNestedException.java rename to vcard/java/com/android/vcard/exception/VCardNestedException.java index 503c2fbcf536a..2b9b1acf53cd1 100644 --- a/core/java/android/pim/vcard/exception/VCardNestedException.java +++ b/vcard/java/com/android/vcard/exception/VCardNestedException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package android.pim.vcard.exception; +package com.android.vcard.exception; /** * VCardException thrown when VCard is nested without VCardParser's being notified. diff --git a/core/java/android/pim/vcard/exception/VCardNotSupportedException.java b/vcard/java/com/android/vcard/exception/VCardNotSupportedException.java similarity index 96% rename from core/java/android/pim/vcard/exception/VCardNotSupportedException.java rename to vcard/java/com/android/vcard/exception/VCardNotSupportedException.java index 616aa7763b0e1..61ff752c9f4ba 100644 --- a/core/java/android/pim/vcard/exception/VCardNotSupportedException.java +++ b/vcard/java/com/android/vcard/exception/VCardNotSupportedException.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.exception; +package com.android.vcard.exception; /** * The exception which tells that the input VCard is probably valid from the view of diff --git a/core/java/android/pim/vcard/exception/VCardVersionException.java b/vcard/java/com/android/vcard/exception/VCardVersionException.java similarity index 95% rename from core/java/android/pim/vcard/exception/VCardVersionException.java rename to vcard/java/com/android/vcard/exception/VCardVersionException.java index 9fe8b7f92af92..047c58053c044 100644 --- a/core/java/android/pim/vcard/exception/VCardVersionException.java +++ b/vcard/java/com/android/vcard/exception/VCardVersionException.java @@ -13,8 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package android.pim.vcard.exception; +package com.android.vcard.exception; /** * VCardException used only when the version of the vCard is different. diff --git a/vcard/tests/Android.mk b/vcard/tests/Android.mk new file mode 100644 index 0000000000000..853ee14514375 --- /dev/null +++ b/vcard/tests/Android.mk @@ -0,0 +1,25 @@ +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_CERTIFICATE := platform +LOCAL_MODULE_TAGS := tests +LOCAL_PACKAGE_NAME := AndroidVCardTests +LOCAL_SRC_FILES := $(call all-java-files-under, src) +LOCAL_JAVA_LIBRARIES := android.test.runner google-common +LOCAL_STATIC_JAVA_LIBRARIES := com.android.vcard + +include $(BUILD_PACKAGE) diff --git a/vcard/tests/AndroidManifest.xml b/vcard/tests/AndroidManifest.xml new file mode 100644 index 0000000000000..fcbf767213251 --- /dev/null +++ b/vcard/tests/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/core/tests/coretests/res/raw/v21_backslash.vcf b/vcard/tests/res/raw/v21_backslash.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_backslash.vcf rename to vcard/tests/res/raw/v21_backslash.vcf diff --git a/core/tests/coretests/res/raw/v21_complicated.vcf b/vcard/tests/res/raw/v21_complicated.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_complicated.vcf rename to vcard/tests/res/raw/v21_complicated.vcf diff --git a/core/tests/coretests/res/raw/v21_invalid_comment_line.vcf b/vcard/tests/res/raw/v21_invalid_comment_line.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_invalid_comment_line.vcf rename to vcard/tests/res/raw/v21_invalid_comment_line.vcf diff --git a/core/tests/coretests/res/raw/v21_japanese_1.vcf b/vcard/tests/res/raw/v21_japanese_1.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_japanese_1.vcf rename to vcard/tests/res/raw/v21_japanese_1.vcf diff --git a/core/tests/coretests/res/raw/v21_japanese_2.vcf b/vcard/tests/res/raw/v21_japanese_2.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_japanese_2.vcf rename to vcard/tests/res/raw/v21_japanese_2.vcf diff --git a/core/tests/coretests/res/raw/v21_multiple_entry.vcf b/vcard/tests/res/raw/v21_multiple_entry.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_multiple_entry.vcf rename to vcard/tests/res/raw/v21_multiple_entry.vcf diff --git a/core/tests/coretests/res/raw/v21_org_before_title.vcf b/vcard/tests/res/raw/v21_org_before_title.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_org_before_title.vcf rename to vcard/tests/res/raw/v21_org_before_title.vcf diff --git a/core/tests/coretests/res/raw/v21_pref_handling.vcf b/vcard/tests/res/raw/v21_pref_handling.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_pref_handling.vcf rename to vcard/tests/res/raw/v21_pref_handling.vcf diff --git a/core/tests/coretests/res/raw/v21_simple_1.vcf b/vcard/tests/res/raw/v21_simple_1.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_simple_1.vcf rename to vcard/tests/res/raw/v21_simple_1.vcf diff --git a/core/tests/coretests/res/raw/v21_simple_2.vcf b/vcard/tests/res/raw/v21_simple_2.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_simple_2.vcf rename to vcard/tests/res/raw/v21_simple_2.vcf diff --git a/core/tests/coretests/res/raw/v21_simple_3.vcf b/vcard/tests/res/raw/v21_simple_3.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_simple_3.vcf rename to vcard/tests/res/raw/v21_simple_3.vcf diff --git a/core/tests/coretests/res/raw/v21_title_before_org.vcf b/vcard/tests/res/raw/v21_title_before_org.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_title_before_org.vcf rename to vcard/tests/res/raw/v21_title_before_org.vcf diff --git a/core/tests/coretests/res/raw/v21_winmo_65.vcf b/vcard/tests/res/raw/v21_winmo_65.vcf similarity index 100% rename from core/tests/coretests/res/raw/v21_winmo_65.vcf rename to vcard/tests/res/raw/v21_winmo_65.vcf diff --git a/core/tests/coretests/res/raw/v30_comma_separated.vcf b/vcard/tests/res/raw/v30_comma_separated.vcf similarity index 100% rename from core/tests/coretests/res/raw/v30_comma_separated.vcf rename to vcard/tests/res/raw/v30_comma_separated.vcf diff --git a/core/tests/coretests/res/raw/v30_simple.vcf b/vcard/tests/res/raw/v30_simple.vcf similarity index 100% rename from core/tests/coretests/res/raw/v30_simple.vcf rename to vcard/tests/res/raw/v30_simple.vcf diff --git a/core/tests/coretests/src/android/pim/vcard/VCardExporterTests.java b/vcard/tests/src/com/android/vcard/tests/VCardExporterTests.java similarity index 99% rename from core/tests/coretests/src/android/pim/vcard/VCardExporterTests.java rename to vcard/tests/src/com/android/vcard/tests/VCardExporterTests.java index 0820a683af1d5..b6419c36f9e6a 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardExporterTests.java +++ b/vcard/tests/src/com/android/vcard/tests/VCardExporterTests.java @@ -14,12 +14,9 @@ * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard.tests; import android.content.ContentValues; -import android.pim.vcard.test_utils.ContactEntry; -import android.pim.vcard.test_utils.PropertyNodesVerifierElem; -import android.pim.vcard.test_utils.PropertyNodesVerifierElem.TypeSet; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.Im; @@ -33,6 +30,11 @@ import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; +import com.android.vcard.VCardConfig; +import com.android.vcard.tests.test_utils.ContactEntry; +import com.android.vcard.tests.test_utils.PropertyNodesVerifierElem; +import com.android.vcard.tests.test_utils.PropertyNodesVerifierElem.TypeSet; + import java.util.Arrays; /** diff --git a/core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java b/vcard/tests/src/com/android/vcard/tests/VCardImporterTests.java similarity index 99% rename from core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java rename to vcard/tests/src/com/android/vcard/tests/VCardImporterTests.java index ea2ac6ac03919..045c0d94ed03f 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardImporterTests.java +++ b/vcard/tests/src/com/android/vcard/tests/VCardImporterTests.java @@ -13,12 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard; +package com.android.vcard.tests; import android.content.ContentValues; -import android.pim.vcard.test_utils.ContentValuesVerifier; -import android.pim.vcard.test_utils.ContentValuesVerifierElem; -import android.pim.vcard.test_utils.PropertyNodesVerifierElem.TypeSet; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Event; @@ -30,7 +27,10 @@ import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; -import com.android.frameworks.coretests.R; +import com.android.vcard.VCardConfig; +import com.android.vcard.tests.test_utils.ContentValuesVerifier; +import com.android.vcard.tests.test_utils.ContentValuesVerifierElem; +import com.android.vcard.tests.test_utils.PropertyNodesVerifierElem.TypeSet; import java.util.Arrays; diff --git a/core/tests/coretests/src/android/pim/vcard/VCardJapanizationTests.java b/vcard/tests/src/com/android/vcard/tests/VCardJapanizationTests.java similarity index 98% rename from core/tests/coretests/src/android/pim/vcard/VCardJapanizationTests.java rename to vcard/tests/src/com/android/vcard/tests/VCardJapanizationTests.java index 17ee322cdd33c..0d0b9f10ae84d 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardJapanizationTests.java +++ b/vcard/tests/src/com/android/vcard/tests/VCardJapanizationTests.java @@ -13,20 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package android.pim.vcard; +package com.android.vcard.tests; import android.content.ContentValues; -import android.pim.vcard.test_utils.ContactEntry; -import android.pim.vcard.test_utils.ContentValuesBuilder; -import android.pim.vcard.test_utils.PropertyNodesVerifierElem; -import android.pim.vcard.test_utils.PropertyNodesVerifierElem.TypeSet; import android.provider.ContactsContract.CommonDataKinds.Nickname; import android.provider.ContactsContract.CommonDataKinds.Note; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; +import com.android.vcard.VCardConfig; +import com.android.vcard.tests.test_utils.ContactEntry; +import com.android.vcard.tests.test_utils.ContentValuesBuilder; +import com.android.vcard.tests.test_utils.PropertyNodesVerifierElem; +import com.android.vcard.tests.test_utils.PropertyNodesVerifierElem.TypeSet; + import java.util.Arrays; public class VCardJapanizationTests extends VCardTestsBase { diff --git a/core/tests/coretests/src/android/pim/vcard/VCardTestsBase.java b/vcard/tests/src/com/android/vcard/tests/VCardTestsBase.java similarity index 96% rename from core/tests/coretests/src/android/pim/vcard/VCardTestsBase.java rename to vcard/tests/src/com/android/vcard/tests/VCardTestsBase.java index 383a9af912d67..8998b3caf1afb 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardTestsBase.java +++ b/vcard/tests/src/com/android/vcard/tests/VCardTestsBase.java @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package android.pim.vcard; +package com.android.vcard.tests; import android.content.ContentValues; -import android.pim.vcard.test_utils.VCardVerifier; import android.test.AndroidTestCase; +import com.android.vcard.VCardConfig; +import com.android.vcard.tests.test_utils.VCardVerifier; + /** * BaseClass for vCard unit tests with utility classes. * Please do not add each unit test here. diff --git a/core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java b/vcard/tests/src/com/android/vcard/tests/VCardUtilsTests.java similarity index 98% rename from core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java rename to vcard/tests/src/com/android/vcard/tests/VCardUtilsTests.java index 59299f9dff35e..732009a36f635 100644 --- a/core/tests/coretests/src/android/pim/vcard/VCardUtilsTests.java +++ b/vcard/tests/src/com/android/vcard/tests/VCardUtilsTests.java @@ -13,10 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.android.vcard.tests; -package android.pim.vcard; - -import android.pim.vcard.VCardUtils; +import com.android.vcard.VCardUtils; import junit.framework.TestCase; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ContactEntry.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ContactEntry.java similarity index 96% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ContactEntry.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ContactEntry.java index 843750e789b3b..dff1f051067c5 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ContactEntry.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ContactEntry.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentValues; import android.provider.ContactsContract.Data; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesBuilder.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesBuilder.java similarity index 98% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesBuilder.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesBuilder.java index 5c24186a60142..fb53b8f9a561e 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesBuilder.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentValues; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesVerifier.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesVerifier.java similarity index 89% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesVerifier.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesVerifier.java index f2516edcf87f1..7d6db53f31e63 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesVerifier.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesVerifier.java @@ -13,18 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; -import android.pim.vcard.VCardConfig; -import android.pim.vcard.VCardEntry; -import android.pim.vcard.VCardEntryConstructor; -import android.pim.vcard.VCardEntryHandler; -import android.pim.vcard.VCardParser; -import android.pim.vcard.VCardParser_V21; -import android.pim.vcard.VCardParser_V30; -import android.pim.vcard.exception.VCardException; import android.test.AndroidTestCase; +import com.android.vcard.VCardConfig; +import com.android.vcard.VCardEntry; +import com.android.vcard.VCardEntryConstructor; +import com.android.vcard.VCardEntryHandler; +import com.android.vcard.VCardParser; +import com.android.vcard.VCardParser_V21; +import com.android.vcard.VCardParser_V30; +import com.android.vcard.exception.VCardException; + import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesVerifierElem.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesVerifierElem.java similarity index 86% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesVerifierElem.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesVerifierElem.java index 66d69b330d4cb..ecf4a2b69432d 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ContentValuesVerifierElem.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ContentValuesVerifierElem.java @@ -13,21 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentValues; -import android.pim.vcard.VCardConfig; -import android.pim.vcard.VCardEntry; -import android.pim.vcard.VCardEntryCommitter; -import android.pim.vcard.VCardEntryConstructor; -import android.pim.vcard.VCardEntryHandler; -import android.pim.vcard.VCardParser; -import android.pim.vcard.VCardParser_V21; -import android.pim.vcard.VCardParser_V30; -import android.pim.vcard.exception.VCardException; import android.provider.ContactsContract.Data; import android.test.AndroidTestCase; +import com.android.vcard.VCardConfig; +import com.android.vcard.VCardEntry; +import com.android.vcard.VCardEntryCommitter; +import com.android.vcard.VCardEntryConstructor; +import com.android.vcard.VCardEntryHandler; +import com.android.vcard.VCardParser; +import com.android.vcard.VCardParser_V21; +import com.android.vcard.VCardParser_V30; +import com.android.vcard.exception.VCardException; + import java.io.IOException; import java.io.InputStream; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ExportTestProvider.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ExportTestProvider.java similarity index 98% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ExportTestProvider.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ExportTestProvider.java index 0fbd9bb1d8eee..caedf9dcafcd7 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ExportTestProvider.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ExportTestProvider.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentResolver; import android.content.ContentValues; @@ -21,13 +21,14 @@ import android.content.Entity; import android.content.EntityIterator; import android.database.Cursor; import android.net.Uri; -import android.pim.vcard.VCardComposer; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.test.mock.MockContentProvider; import android.test.mock.MockCursor; +import com.android.vcard.VCardComposer; + import junit.framework.TestCase; import java.util.ArrayList; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ExportTestResolver.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ExportTestResolver.java similarity index 93% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ExportTestResolver.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ExportTestResolver.java index 97e1e38e36a57..3cd014ce40ad1 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ExportTestResolver.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ExportTestResolver.java @@ -13,12 +13,13 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; -import android.pim.vcard.VCardComposer; import android.provider.ContactsContract.RawContacts; import android.test.mock.MockContentResolver; +import com.android.vcard.VCardComposer; + import junit.framework.TestCase; /* package */ class ExportTestResolver extends MockContentResolver { diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ImportTestProvider.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ImportTestProvider.java similarity index 96% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ImportTestProvider.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ImportTestProvider.java index ffbf95d029ba5..3d7cb60a0f527 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ImportTestProvider.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ImportTestProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentProviderOperation; import android.content.ContentProviderResult; @@ -36,6 +36,7 @@ import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; import android.test.mock.MockContentProvider; import android.text.TextUtils; +import android.util.Log; import junit.framework.TestCase; @@ -257,10 +258,15 @@ import java.util.Map.Entry; if (value instanceof byte[]) { Object actualValue = actual.get(key); if (!Arrays.equals((byte[])value, (byte[])actualValue)) { + byte[] e = (byte[])value; + byte[] a = (byte[])actualValue; + Log.d("@@@", "expected (len: " + e.length + "): " + Arrays.toString(e)); + Log.d("@@@", "actual (len: " + a.length + "): " + Arrays.toString(a)); return false; } } else if (!value.equals(actual.get(key))) { - return false; + Log.d("@@@", "different."); + return false; } } return true; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/ImportTestResolver.java b/vcard/tests/src/com/android/vcard/tests/test_utils/ImportTestResolver.java similarity index 97% rename from core/tests/coretests/src/android/pim/vcard/test_utils/ImportTestResolver.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/ImportTestResolver.java index 29738c6a67af5..645e9dbeacca7 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/ImportTestResolver.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/ImportTestResolver.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentProviderOperation; import android.content.ContentProviderResult; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/LineVerifier.java b/vcard/tests/src/com/android/vcard/tests/test_utils/LineVerifier.java similarity index 95% rename from core/tests/coretests/src/android/pim/vcard/test_utils/LineVerifier.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/LineVerifier.java index 3edec67dafdf1..d8cfe5b488ba0 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/LineVerifier.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/LineVerifier.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; + +import com.android.vcard.VCardComposer; import android.content.Context; -import android.pim.vcard.VCardComposer; import junit.framework.TestCase; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/LineVerifierElem.java b/vcard/tests/src/com/android/vcard/tests/test_utils/LineVerifierElem.java similarity index 97% rename from core/tests/coretests/src/android/pim/vcard/test_utils/LineVerifierElem.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/LineVerifierElem.java index 4f7a9cfb404a1..3ec6ba39b54bb 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/LineVerifierElem.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/LineVerifierElem.java @@ -13,11 +13,12 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; -import android.pim.vcard.VCardConfig; import android.text.TextUtils; +import com.android.vcard.VCardConfig; + import junit.framework.TestCase; import java.util.ArrayList; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNode.java b/vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNode.java similarity index 98% rename from core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNode.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNode.java index de7ad8eaa64ed..14c8d6cb27da5 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNode.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNode.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentValues; -import android.pim.vcard.VCardEntry; + +import com.android.vcard.VCardEntry; import java.util.ArrayList; import java.util.Arrays; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNodesVerifier.java b/vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNodesVerifier.java similarity index 92% rename from core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNodesVerifier.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNodesVerifier.java index 5c8215f6059ad..de33a36a472c4 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNodesVerifier.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNodesVerifier.java @@ -13,15 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; -import android.pim.vcard.VCardConfig; -import android.pim.vcard.VCardParser; -import android.pim.vcard.VCardParser_V21; -import android.pim.vcard.VCardParser_V30; -import android.pim.vcard.exception.VCardException; import android.test.AndroidTestCase; +import com.android.vcard.VCardConfig; +import com.android.vcard.VCardParser; +import com.android.vcard.VCardParser_V21; +import com.android.vcard.VCardParser_V30; +import com.android.vcard.exception.VCardException; + import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNodesVerifierElem.java b/vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNodesVerifierElem.java similarity index 99% rename from core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNodesVerifierElem.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNodesVerifierElem.java index 8c6c734270f5b..6eb84983eaedd 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/PropertyNodesVerifierElem.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/PropertyNodesVerifierElem.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentValues; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/VCardVerifier.java b/vcard/tests/src/com/android/vcard/tests/test_utils/VCardVerifier.java similarity index 96% rename from core/tests/coretests/src/android/pim/vcard/test_utils/VCardVerifier.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/VCardVerifier.java index 5fb29426895c7..87d82d2020e9b 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/VCardVerifier.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/VCardVerifier.java @@ -13,26 +13,27 @@ * License for the specific language governing permissions and limitations under * the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentResolver; import android.content.Context; import android.content.EntityIterator; import android.net.Uri; -import android.pim.vcard.VCardComposer; -import android.pim.vcard.VCardConfig; -import android.pim.vcard.VCardEntryConstructor; -import android.pim.vcard.VCardInterpreter; -import android.pim.vcard.VCardInterpreterCollection; -import android.pim.vcard.VCardParser; -import android.pim.vcard.VCardParser_V21; -import android.pim.vcard.VCardParser_V30; -import android.pim.vcard.exception.VCardException; import android.test.AndroidTestCase; import android.test.mock.MockContext; import android.text.TextUtils; import android.util.Log; +import com.android.vcard.VCardComposer; +import com.android.vcard.VCardConfig; +import com.android.vcard.VCardEntryConstructor; +import com.android.vcard.VCardInterpreter; +import com.android.vcard.VCardInterpreterCollection; +import com.android.vcard.VCardParser; +import com.android.vcard.VCardParser_V21; +import com.android.vcard.VCardParser_V30; +import com.android.vcard.exception.VCardException; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/VNode.java b/vcard/tests/src/com/android/vcard/tests/test_utils/VNode.java similarity index 95% rename from core/tests/coretests/src/android/pim/vcard/test_utils/VNode.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/VNode.java index b890e2c2be606..2ca762b0abfb8 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/VNode.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/VNode.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import java.util.ArrayList; diff --git a/core/tests/coretests/src/android/pim/vcard/test_utils/VNodeBuilder.java b/vcard/tests/src/com/android/vcard/tests/test_utils/VNodeBuilder.java similarity index 96% rename from core/tests/coretests/src/android/pim/vcard/test_utils/VNodeBuilder.java rename to vcard/tests/src/com/android/vcard/tests/test_utils/VNodeBuilder.java index 25fb6acedd2b0..9b4fe8358a0c0 100644 --- a/core/tests/coretests/src/android/pim/vcard/test_utils/VNodeBuilder.java +++ b/vcard/tests/src/com/android/vcard/tests/test_utils/VNodeBuilder.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.pim.vcard.test_utils; +package com.android.vcard.tests.test_utils; import android.content.ContentValues; -import android.pim.vcard.VCardConfig; -import android.pim.vcard.VCardInterpreter; -import android.pim.vcard.VCardUtils; +import android.util.Base64; import android.util.CharsetUtils; import android.util.Log; -import org.apache.commons.codec.binary.Base64; +import com.android.vcard.VCardConfig; +import com.android.vcard.VCardInterpreter; +import com.android.vcard.VCardUtils; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; @@ -185,8 +185,7 @@ import java.util.List; encoding = encoding.toUpperCase(); if (encoding.equals("BASE64") || encoding.equals("B")) { // Assume BASE64 is used only when the number of values is 1. - mCurrentPropNode.propValue_bytes = - Base64.decodeBase64(value.getBytes()); + mCurrentPropNode.propValue_bytes = Base64.decode(value.getBytes(), Base64.NO_WRAP); return value; } else if (encoding.equals("QUOTED-PRINTABLE")) { return VCardUtils.parseQuotedPrintable(