| /* |
| * Copyright (C) 2009 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. |
| */ |
| |
| 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. |
| * Please do not add each unit test here. |
| */ |
| /* package */ class VCardTestsBase extends AndroidTestCase { |
| public static final int V21 = VCardConfig.VCARD_TYPE_V21_GENERIC_UTF8; |
| public static final int V30 = VCardConfig.VCARD_TYPE_V30_GENERIC_UTF8; |
| |
| // Do not modify these during tests. |
| protected final ContentValues mContentValuesForQP; |
| protected final ContentValues mContentValuesForSJis; |
| protected final ContentValues mContentValuesForUtf8; |
| protected final ContentValues mContentValuesForQPAndSJis; |
| protected final ContentValues mContentValuesForQPAndUtf8; |
| protected final ContentValues mContentValuesForBase64V21; |
| protected final ContentValues mContentValuesForBase64V30; |
| |
| protected VCardVerifier mVerifier; |
| private boolean mSkipVerification; |
| |
| public VCardTestsBase() { |
| super(); |
| mContentValuesForQP = new ContentValues(); |
| mContentValuesForQP.put("ENCODING", "QUOTED-PRINTABLE"); |
| mContentValuesForSJis = new ContentValues(); |
| mContentValuesForSJis.put("CHARSET", "SHIFT_JIS"); |
| mContentValuesForUtf8 = new ContentValues(); |
| mContentValuesForUtf8.put("CHARSET", "UTF-8"); |
| mContentValuesForQPAndSJis = new ContentValues(); |
| mContentValuesForQPAndSJis.put("ENCODING", "QUOTED-PRINTABLE"); |
| mContentValuesForQPAndSJis.put("CHARSET", "SHIFT_JIS"); |
| mContentValuesForQPAndUtf8 = new ContentValues(); |
| mContentValuesForQPAndUtf8.put("ENCODING", "QUOTED-PRINTABLE"); |
| mContentValuesForQPAndUtf8.put("CHARSET", "UTF-8"); |
| mContentValuesForBase64V21 = new ContentValues(); |
| mContentValuesForBase64V21.put("ENCODING", "BASE64"); |
| mContentValuesForBase64V30 = new ContentValues(); |
| mContentValuesForBase64V30.put("ENCODING", "b"); |
| } |
| |
| @Override |
| public void testAndroidTestCaseSetupProperly() { |
| super.testAndroidTestCaseSetupProperly(); |
| mSkipVerification = true; |
| } |
| |
| @Override |
| public void setUp() throws Exception{ |
| super.setUp(); |
| mVerifier = new VCardVerifier(this); |
| mSkipVerification = false; |
| } |
| |
| @Override |
| public void tearDown() throws Exception { |
| super.tearDown(); |
| if (!mSkipVerification) { |
| mVerifier.verify(); |
| } |
| } |
| } |