diff options
author | Brandon Maxwell <maxwelb@google.com> | 2015-10-20 14:49:47 -0700 |
---|---|---|
committer | Brandon Maxwell <maxwelb@google.com> | 2015-10-23 11:21:02 -0700 |
commit | 327fb5bb609a6bee44a62888d671c951b19782fd (patch) | |
tree | 47834abcbe66ec4b9faed28349479dd758947d22 /tests | |
parent | 7844b1d11b6f8715ff2782cd3d01a3d1c397f052 (diff) |
Call log respects display name order preferences
- Updated ContactInfoHelper to retrieve DISPLAY_NAME_ALTERNATIVE (name
in last name first order)
- Stored alternative name in ContactInfo object
- Updated CallLogAdapter to choose between first name first and last
name first when showing contact name
- Added tests for ContactInfoHelper.lookupContactFromUri (changed to
public method)
- Fixed bug with ContactsPreferences so ChangeListener works
Bug:19364093
Change-Id: I188d8fc2eccb87edbe56625c9a7537b3d5f0e19e
Diffstat (limited to 'tests')
-rw-r--r-- | tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java b/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java new file mode 100644 index 000000000..6d3e86042 --- /dev/null +++ b/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2015 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.dialer.calllog; + +import android.net.Uri; +import android.provider.ContactsContract.Contacts; +import android.provider.ContactsContract.PhoneLookup; +import android.test.AndroidTestCase; +import android.test.suitebuilder.annotation.MediumTest; + +import com.android.contacts.common.test.mocks.ContactsMockContext; +import com.android.contacts.common.test.mocks.MockContentProvider.Query; + +import junit.framework.Assert; + +@MediumTest +public class ContactInfoHelperTest extends AndroidTestCase { + + private static final String TEST_COUNTRY_ISO = "US"; + private static final String TEST_DISPLAY_NAME = "Display Name"; + private static final String TEST_DISPLAY_NAME_ALTERNATIVE = "Name, Display"; + private static final String[] TEST_DISPLAY_NAME_ALTERNATIVE_ROW = new String[]{null, + TEST_DISPLAY_NAME_ALTERNATIVE}; + private static final String TEST_LOOKUP_KEY = "lookupKey"; + private static final String[] TEST_LOOKUP_ROW = new String[]{null, TEST_DISPLAY_NAME, + null, null, null, null, null, TEST_LOOKUP_KEY, null}; + + private Uri displayNameAlternativeUri; + private ContactsMockContext mContext; + private ContactInfo mContactInfo; + private ContactInfoHelper mContactInfoHelper; + + @Override + public void setUp() throws Exception { + super.setUp(); + + displayNameAlternativeUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, + TEST_LOOKUP_KEY); + mContext = new ContactsMockContext(getContext()); + mContactInfo = new ContactInfo(); + mContactInfo.name = TEST_DISPLAY_NAME; + mContactInfo.nameAlternative = TEST_DISPLAY_NAME_ALTERNATIVE; + mContactInfoHelper = new ContactInfoHelper(mContext, TEST_COUNTRY_ISO); + } + + public void testLookupContactFromUriNullUri() { + Assert.assertNull(mContactInfoHelper.lookupContactFromUri(null)); + } + + public void testLookupContactFromUriNoResults() { + setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, + PhoneQuery.PHONE_LOOKUP_PROJECTION); + + Assert.assertEquals(ContactInfo.EMPTY, mContactInfoHelper.lookupContactFromUri( + PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI)); + mContext.verify(); + } + + public void testLookupContactFromUriNoDisplayNameAlternative() { + setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, + PhoneQuery.PHONE_LOOKUP_PROJECTION, TEST_LOOKUP_ROW); + setUpQueryExpectations(displayNameAlternativeUri, + PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION); + + ContactInfo contactInfo = mContactInfoHelper.lookupContactFromUri( + PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI); + Assert.assertEquals(TEST_DISPLAY_NAME, contactInfo.name); + Assert.assertNull(contactInfo.nameAlternative); + mContext.verify(); + } + + public void testLookupContactFromUriWithDisplayNameAlternative() { + setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, + PhoneQuery.PHONE_LOOKUP_PROJECTION, TEST_LOOKUP_ROW); + setUpQueryExpectations(displayNameAlternativeUri, + PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION, TEST_DISPLAY_NAME_ALTERNATIVE_ROW); + + ContactInfo contactInfo = mContactInfoHelper.lookupContactFromUri( + PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI); + Assert.assertEquals(TEST_DISPLAY_NAME, contactInfo.name); + Assert.assertEquals(TEST_DISPLAY_NAME_ALTERNATIVE, contactInfo.nameAlternative); + mContext.verify(); + } + + /* + * Sets up query expectations to return the given row for all queries for the given + * uri and projection. If row is null, an empty cursor is returned for query calls + */ + private void setUpQueryExpectations(Uri uri, String[] projection, String...row) { + Query query = mContext.getContactsProvider().expectQuery(uri) + .withProjection(projection).withAnySelection().withAnySortOrder(); + if (row == null || row.length == 0) { + query.returnEmptyCursor(); + return; + } + query.returnRow(row); + } +} |