Loading core/tests/coretests/src/android/pim/vcard/ExportTestResolver.java +5 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.net.Uri; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.test.mock.MockContentProvider; import android.test.mock.MockContentResolver; import android.test.mock.MockCursor; Loading @@ -44,6 +45,10 @@ import java.util.List; public ContactEntry addInputContactEntry() { return mProvider.buildInputEntry(); } public ExportTestProvider getProvider() { return mProvider; } } /* package */ class MockEntityIterator implements EntityIterator { Loading core/tests/coretests/src/android/pim/vcard/ImportTestResolver.java +4 −3 Original line number Diff line number Diff line Loading @@ -19,8 +19,6 @@ import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentValues; import android.net.Uri; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.GroupMembership; Loading @@ -34,6 +32,9 @@ import android.provider.ContactsContract.CommonDataKinds.Relation; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.test.mock.MockContentProvider; import android.test.mock.MockContentResolver; import android.text.TextUtils; Loading @@ -45,10 +46,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import java.util.Map.Entry; /* package */ class ImportTestResolver extends MockContentResolver { final ImportTestProvider mProvider; Loading core/tests/coretests/src/android/pim/vcard/VCardExporterTests.java +20 −8 Original line number Diff line number Diff line Loading @@ -438,6 +438,17 @@ public class VCardExporterTests extends VCardTestsBase { .put(Phone.TYPE, Phone.TYPE_CUSTOM) .put(Phone.LABEL, "invalid"); PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName(); if (VCardConfig.isV30(vcardType)) { // vCard 3.0 accepts "invalid". Also stop using toUpper() elem.addExpectedNode("TEL", "1", new TypeSet("Modem")) .addExpectedNode("TEL", "2", new TypeSet("MSG")) .addExpectedNode("TEL", "3", new TypeSet("BBS")) .addExpectedNode("TEL", "4", new TypeSet("VIDEO")) .addExpectedNode("TEL", "5", new TypeSet("VOICE")) .addExpectedNode("TEL", "6", new TypeSet("CELL")) .addExpectedNode("TEL", "7", new TypeSet("CELL")) .addExpectedNode("TEL", "8", new TypeSet("invalid")); } else { elem.addExpectedNode("TEL", "1", new TypeSet("MODEM")) .addExpectedNode("TEL", "2", new TypeSet("MSG")) .addExpectedNode("TEL", "3", new TypeSet("BBS")) Loading @@ -447,6 +458,7 @@ public class VCardExporterTests extends VCardTestsBase { .addExpectedNode("TEL", "7", new TypeSet("CELL")) .addExpectedNode("TEL", "8", new TypeSet("X-invalid")); } } public void testPhoneTypeHandlingV21() { testMiscPhoneTypeHandling(V21); Loading core/tests/coretests/src/android/pim/vcard/VCardTestsBase.java +0 −87 Original line number Diff line number Diff line Loading @@ -16,95 +16,8 @@ package android.pim.vcard; import android.content.ContentProvider; import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentValues; import android.content.EntityIterator; import android.content.res.AssetFileDescriptor; import android.database.Cursor; import android.database.CursorWindow; import android.database.IBulkCursor; import android.database.IContentObserver; import android.net.Uri; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.pim.vcard.VCardConfig; import android.test.AndroidTestCase; import android.util.Log; import java.util.ArrayList; /** * Almost a dead copy of android.test.mock.MockContentProvider, but different in that this * class extends ContentProvider, not implementing IContentProvider, * so that MockContentResolver is able to accept this class :( */ class MockContentProvider extends ContentProvider { @Override public boolean onCreate() { return true; } @Override public int bulkInsert(Uri url, ContentValues[] initialValues) { throw new UnsupportedOperationException("unimplemented mock method"); } @SuppressWarnings("unused") public IBulkCursor bulkQuery(Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder, IContentObserver observer, CursorWindow window) throws RemoteException { throw new UnsupportedOperationException("unimplemented mock method"); } @Override @SuppressWarnings("unused") public int delete(Uri url, String selection, String[] selectionArgs) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public String getType(Uri url) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public Uri insert(Uri url, ContentValues initialValues) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public ParcelFileDescriptor openFile(Uri url, String mode) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public AssetFileDescriptor openAssetFile(Uri uri, String mode) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public int update(Uri url, ContentValues values, String selection, String[] selectionArgs) { throw new UnsupportedOperationException("unimplemented mock method"); } public IBinder asBinder() { throw new UnsupportedOperationException("unimplemented mock method"); } } /** * BaseClass for vCard unit tests with utility classes. Loading core/tests/coretests/src/android/pim/vcard/VCardVerifier.java +16 −9 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.pim.vcard.VCardParser_V30; import android.pim.vcard.exception.VCardException; import android.test.AndroidTestCase; import android.test.mock.MockContext; import android.util.Log; import java.io.ByteArrayInputStream; import java.io.IOException; Loading @@ -51,6 +52,8 @@ import java.util.Arrays; } /* package */ class VCardVerifier { private static final String LOG_TAG = "VCardVerifier"; private class VCardVerifierInternal implements VCardComposer.OneEntryHandler { public boolean onInit(Context context) { return true; Loading Loading @@ -267,12 +270,15 @@ import java.util.Arrays; final ContentResolver resolver, final Uri uri, final String selection, final String[] selectionArgs, final String sortOrder) { final ContentProvider provider = resolver.acquireContentProviderClient(uri).getLocalContentProvider(); return ((ExportTestProvider)provider).queryEntities( if (ExportTestResolver.class.equals(resolver.getClass())) { return ((ExportTestResolver)resolver).getProvider().queryEntities( uri, selection, selectionArgs, sortOrder); } Log.e(LOG_TAG, "Unexpected provider given."); return null; } private Method getMockGetEntityIteratorMethod() throws SecurityException, NoSuchMethodException { return this.getClass().getMethod("mockGetEntityIteratorMethod", Loading @@ -285,18 +291,19 @@ import java.util.Arrays; composer.addHandler(mLineVerifier); composer.addHandler(mVCardVerifierInternal); if (!composer.init(VCardComposer.CONTACTS_TEST_CONTENT_URI, null, null, null)) { mTestCase.fail("init() failed. Reason: " + composer.getErrorReason()); AndroidTestCase.fail("init() failed. Reason: " + composer.getErrorReason()); } mTestCase.assertFalse(composer.isAfterLast()); AndroidTestCase.assertFalse(composer.isAfterLast()); try { while (!composer.isAfterLast()) { try { final Method mockGetEntityIteratorMethod = getMockGetEntityIteratorMethod(); mTestCase.assertTrue( composer.createOneEntry(getMockGetEntityIteratorMethod())); AndroidTestCase.assertNotNull(mockGetEntityIteratorMethod); AndroidTestCase.assertTrue( composer.createOneEntry(mockGetEntityIteratorMethod)); } catch (Exception e) { e.printStackTrace(); mTestCase.fail(); AndroidTestCase.fail(); } } } finally { Loading Loading
core/tests/coretests/src/android/pim/vcard/ExportTestResolver.java +5 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.net.Uri; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.test.mock.MockContentProvider; import android.test.mock.MockContentResolver; import android.test.mock.MockCursor; Loading @@ -44,6 +45,10 @@ import java.util.List; public ContactEntry addInputContactEntry() { return mProvider.buildInputEntry(); } public ExportTestProvider getProvider() { return mProvider; } } /* package */ class MockEntityIterator implements EntityIterator { Loading
core/tests/coretests/src/android/pim/vcard/ImportTestResolver.java +4 −3 Original line number Diff line number Diff line Loading @@ -19,8 +19,6 @@ import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentValues; import android.net.Uri; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.GroupMembership; Loading @@ -34,6 +32,9 @@ import android.provider.ContactsContract.CommonDataKinds.Relation; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; import android.test.mock.MockContentProvider; import android.test.mock.MockContentResolver; import android.text.TextUtils; Loading @@ -45,10 +46,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import java.util.Map.Entry; /* package */ class ImportTestResolver extends MockContentResolver { final ImportTestProvider mProvider; Loading
core/tests/coretests/src/android/pim/vcard/VCardExporterTests.java +20 −8 Original line number Diff line number Diff line Loading @@ -438,6 +438,17 @@ public class VCardExporterTests extends VCardTestsBase { .put(Phone.TYPE, Phone.TYPE_CUSTOM) .put(Phone.LABEL, "invalid"); PropertyNodesVerifierElem elem = mVerifier.addPropertyNodesVerifierElemWithEmptyName(); if (VCardConfig.isV30(vcardType)) { // vCard 3.0 accepts "invalid". Also stop using toUpper() elem.addExpectedNode("TEL", "1", new TypeSet("Modem")) .addExpectedNode("TEL", "2", new TypeSet("MSG")) .addExpectedNode("TEL", "3", new TypeSet("BBS")) .addExpectedNode("TEL", "4", new TypeSet("VIDEO")) .addExpectedNode("TEL", "5", new TypeSet("VOICE")) .addExpectedNode("TEL", "6", new TypeSet("CELL")) .addExpectedNode("TEL", "7", new TypeSet("CELL")) .addExpectedNode("TEL", "8", new TypeSet("invalid")); } else { elem.addExpectedNode("TEL", "1", new TypeSet("MODEM")) .addExpectedNode("TEL", "2", new TypeSet("MSG")) .addExpectedNode("TEL", "3", new TypeSet("BBS")) Loading @@ -447,6 +458,7 @@ public class VCardExporterTests extends VCardTestsBase { .addExpectedNode("TEL", "7", new TypeSet("CELL")) .addExpectedNode("TEL", "8", new TypeSet("X-invalid")); } } public void testPhoneTypeHandlingV21() { testMiscPhoneTypeHandling(V21); Loading
core/tests/coretests/src/android/pim/vcard/VCardTestsBase.java +0 −87 Original line number Diff line number Diff line Loading @@ -16,95 +16,8 @@ package android.pim.vcard; import android.content.ContentProvider; import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentValues; import android.content.EntityIterator; import android.content.res.AssetFileDescriptor; import android.database.Cursor; import android.database.CursorWindow; import android.database.IBulkCursor; import android.database.IContentObserver; import android.net.Uri; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.pim.vcard.VCardConfig; import android.test.AndroidTestCase; import android.util.Log; import java.util.ArrayList; /** * Almost a dead copy of android.test.mock.MockContentProvider, but different in that this * class extends ContentProvider, not implementing IContentProvider, * so that MockContentResolver is able to accept this class :( */ class MockContentProvider extends ContentProvider { @Override public boolean onCreate() { return true; } @Override public int bulkInsert(Uri url, ContentValues[] initialValues) { throw new UnsupportedOperationException("unimplemented mock method"); } @SuppressWarnings("unused") public IBulkCursor bulkQuery(Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder, IContentObserver observer, CursorWindow window) throws RemoteException { throw new UnsupportedOperationException("unimplemented mock method"); } @Override @SuppressWarnings("unused") public int delete(Uri url, String selection, String[] selectionArgs) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public String getType(Uri url) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public Uri insert(Uri url, ContentValues initialValues) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public ParcelFileDescriptor openFile(Uri url, String mode) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public AssetFileDescriptor openAssetFile(Uri uri, String mode) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder) { throw new UnsupportedOperationException("unimplemented mock method"); } @Override public int update(Uri url, ContentValues values, String selection, String[] selectionArgs) { throw new UnsupportedOperationException("unimplemented mock method"); } public IBinder asBinder() { throw new UnsupportedOperationException("unimplemented mock method"); } } /** * BaseClass for vCard unit tests with utility classes. Loading
core/tests/coretests/src/android/pim/vcard/VCardVerifier.java +16 −9 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.pim.vcard.VCardParser_V30; import android.pim.vcard.exception.VCardException; import android.test.AndroidTestCase; import android.test.mock.MockContext; import android.util.Log; import java.io.ByteArrayInputStream; import java.io.IOException; Loading @@ -51,6 +52,8 @@ import java.util.Arrays; } /* package */ class VCardVerifier { private static final String LOG_TAG = "VCardVerifier"; private class VCardVerifierInternal implements VCardComposer.OneEntryHandler { public boolean onInit(Context context) { return true; Loading Loading @@ -267,12 +270,15 @@ import java.util.Arrays; final ContentResolver resolver, final Uri uri, final String selection, final String[] selectionArgs, final String sortOrder) { final ContentProvider provider = resolver.acquireContentProviderClient(uri).getLocalContentProvider(); return ((ExportTestProvider)provider).queryEntities( if (ExportTestResolver.class.equals(resolver.getClass())) { return ((ExportTestResolver)resolver).getProvider().queryEntities( uri, selection, selectionArgs, sortOrder); } Log.e(LOG_TAG, "Unexpected provider given."); return null; } private Method getMockGetEntityIteratorMethod() throws SecurityException, NoSuchMethodException { return this.getClass().getMethod("mockGetEntityIteratorMethod", Loading @@ -285,18 +291,19 @@ import java.util.Arrays; composer.addHandler(mLineVerifier); composer.addHandler(mVCardVerifierInternal); if (!composer.init(VCardComposer.CONTACTS_TEST_CONTENT_URI, null, null, null)) { mTestCase.fail("init() failed. Reason: " + composer.getErrorReason()); AndroidTestCase.fail("init() failed. Reason: " + composer.getErrorReason()); } mTestCase.assertFalse(composer.isAfterLast()); AndroidTestCase.assertFalse(composer.isAfterLast()); try { while (!composer.isAfterLast()) { try { final Method mockGetEntityIteratorMethod = getMockGetEntityIteratorMethod(); mTestCase.assertTrue( composer.createOneEntry(getMockGetEntityIteratorMethod())); AndroidTestCase.assertNotNull(mockGetEntityIteratorMethod); AndroidTestCase.assertTrue( composer.createOneEntry(mockGetEntityIteratorMethod)); } catch (Exception e) { e.printStackTrace(); mTestCase.fail(); AndroidTestCase.fail(); } } } finally { Loading