diff options
Diffstat (limited to 'tests/src/com/android/inputmethod/latin/ContactsManagerTest.java')
-rw-r--r-- | tests/src/com/android/inputmethod/latin/ContactsManagerTest.java | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java b/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java deleted file mode 100644 index d3d746df5..000000000 --- a/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (C) 2014 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 com.android.inputmethod.latin; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import android.content.ContentResolver; -import android.content.Context; -import android.database.Cursor; -import android.database.MatrixCursor; -import android.net.Uri; -import android.provider.ContactsContract; -import android.provider.ContactsContract.Contacts; -import android.test.RenamingDelegatingContext; -import android.test.mock.MockContentProvider; -import android.test.mock.MockContentResolver; - -import androidx.test.InstrumentationRegistry; -import androidx.test.filters.SmallTest; -import androidx.test.runner.AndroidJUnit4; - -import com.android.inputmethod.latin.ContactsDictionaryConstants; -import com.android.inputmethod.latin.ContactsManager; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.concurrent.TimeUnit; - -/** - * Tests for {@link ContactsManager} - */ -@SmallTest -@RunWith(AndroidJUnit4.class) -public class ContactsManagerTest { - - private ContactsManager mManager; - private FakeContactsContentProvider mFakeContactsContentProvider; - private MatrixCursor mMatrixCursor; - - private final static float EPSILON = 0.00001f; - - @Before - public void setUp() throws Exception { - // Fake content provider - mFakeContactsContentProvider = new FakeContactsContentProvider(); - mMatrixCursor = new MatrixCursor(ContactsDictionaryConstants.PROJECTION); - // Add the fake content provider to fake content resolver. - final MockContentResolver contentResolver = new MockContentResolver(); - contentResolver.addProvider(ContactsContract.AUTHORITY, mFakeContactsContentProvider); - // Add the fake content resolver to a fake context. - final ContextWithMockContentResolver context = - new ContextWithMockContentResolver(InstrumentationRegistry.getTargetContext()); - context.setContentResolver(contentResolver); - - mManager = new ContactsManager(context); - } - - @Test - public void testGetValidNames() { - final String contactName1 = "firstname last-name"; - final String contactName2 = "larry"; - mMatrixCursor.addRow(new Object[] { 1, contactName1, 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 2, null /* null name */, 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 3, contactName2, 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 4, "floopy@example.com" /* invalid name */, 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 5, "news-group" /* invalid name */, 0, 0, 0 }); - mFakeContactsContentProvider.addQueryResult(Contacts.CONTENT_URI, mMatrixCursor); - - final ArrayList<String> validNames = mManager.getValidNames(Contacts.CONTENT_URI); - assertEquals(2, validNames.size()); - assertEquals(contactName1, validNames.get(0)); - assertEquals(contactName2, validNames.get(1)); - } - - @Test - public void testGetValidNamesAffinity() { - final long now = System.currentTimeMillis(); - final long month_ago = now - TimeUnit.MILLISECONDS.convert(31, TimeUnit.DAYS); - for (int i = 0; i < ContactsManager.MAX_CONTACT_NAMES + 10; ++i) { - mMatrixCursor.addRow(new Object[] { i, "name" + i, i, now, 1 }); - } - mFakeContactsContentProvider.addQueryResult(Contacts.CONTENT_URI, mMatrixCursor); - - final ArrayList<String> validNames = mManager.getValidNames(Contacts.CONTENT_URI); - assertEquals(ContactsManager.MAX_CONTACT_NAMES, validNames.size()); - for (int i = 0; i < 10; ++i) { - assertFalse(validNames.contains("name" + i)); - } - for (int i = 10; i < ContactsManager.MAX_CONTACT_NAMES + 10; ++i) { - assertTrue(validNames.contains("name" + i)); - } - } - - @Test - public void testComputeAffinity() { - final long now = System.currentTimeMillis(); - final long month_ago = now - TimeUnit.MILLISECONDS.convert(31, TimeUnit.DAYS); - mMatrixCursor.addRow(new Object[] { 1, "name", 1, month_ago, 1 }); - mFakeContactsContentProvider.addQueryResult(Contacts.CONTENT_URI, mMatrixCursor); - - Cursor cursor = mFakeContactsContentProvider.query(Contacts.CONTENT_URI, - ContactsDictionaryConstants.PROJECTION_ID_ONLY, null, null, null); - cursor.moveToFirst(); - ContactsManager.RankedContact contact = new ContactsManager.RankedContact(cursor); - contact.computeAffinity(1, month_ago); - assertEquals(contact.getAffinity(), 1.0f, EPSILON); - contact.computeAffinity(2, now); - assertEquals(contact.getAffinity(), (2.0f/3.0f + (float)Math.pow(0.5, 3) + 1.0f) / 3, - EPSILON); - } - - @Test - public void testGetCount() { - mMatrixCursor.addRow(new Object[] { 1, "firstname", 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 2, null /* null name */, 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 3, "larry", 0, 0, 0 }); - mMatrixCursor.addRow(new Object[] { 4, "floopy@example.com" /* invalid name */, 0, 0, 0 }); - mFakeContactsContentProvider.addQueryResult(Contacts.CONTENT_URI, mMatrixCursor); - assertEquals(4, mManager.getContactCount()); - } - - - static class ContextWithMockContentResolver extends RenamingDelegatingContext { - private ContentResolver contentResolver; - - public void setContentResolver(final ContentResolver contentResolver) { - this.contentResolver = contentResolver; - } - - public ContextWithMockContentResolver(final Context targetContext) { - super(targetContext, "test"); - } - - @Override - public ContentResolver getContentResolver() { - return contentResolver; - } - } - - static class FakeContactsContentProvider extends MockContentProvider { - private final HashMap<String, MatrixCursor> mQueryCursorMapForTestExpectations = - new HashMap<>(); - - @Override - public Cursor query(final Uri uri, final String[] projection, final String selection, - final String[] selectionArgs, final String sortOrder) { - return mQueryCursorMapForTestExpectations.get(uri.toString()); - } - - public void reset() { - mQueryCursorMapForTestExpectations.clear(); - } - - public void addQueryResult(final Uri uri, final MatrixCursor cursor) { - mQueryCursorMapForTestExpectations.put(uri.toString(), cursor); - } - } -} |