summaryrefslogtreecommitdiff
path: root/InCallUI/tests
diff options
context:
space:
mode:
Diffstat (limited to 'InCallUI/tests')
-rw-r--r--InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java121
-rw-r--r--InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java51
-rw-r--r--InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java98
3 files changed, 270 insertions, 0 deletions
diff --git a/InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java b/InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java
new file mode 100644
index 000000000..79545ce4b
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/CallCardPresenterTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2016 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.incallui;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@MediumTest
+public class CallCardPresenterTest extends AndroidTestCase {
+
+ private static final String NAME_PRIMARY = "Full Name";
+ private static final String NAME_ALTERNATIVE = "Name, Full";
+ private static final String LOCATION = "US";
+ private static final String NUMBER = "8006459001";
+
+ @Mock private ContactsPreferences mContactsPreferences;
+ private ContactCacheEntry mUnlockedContactInfo;
+ private ContactCacheEntry mLockedContactInfo;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ MockitoAnnotations.initMocks(this);
+
+ Mockito.when(mContactsPreferences.getDisplayOrder())
+ .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+ // Unlocked all contact info is available
+ mUnlockedContactInfo = new ContactCacheEntry();
+ mUnlockedContactInfo.namePrimary = NAME_PRIMARY;
+ mUnlockedContactInfo.nameAlternative = NAME_ALTERNATIVE;
+ mUnlockedContactInfo.location = LOCATION;
+ mUnlockedContactInfo.number = NUMBER;
+
+ // Locked only number and location are available
+ mLockedContactInfo = new ContactCacheEntry();
+ mLockedContactInfo .location = LOCATION;
+ mLockedContactInfo .number = NUMBER;
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ ContactsPreferencesFactory.setTestInstance(null);
+ }
+
+ public void testGetNameForCall_Unlocked() {
+ ContactsPreferencesFactory.setTestInstance(mContactsPreferences);
+ CallCardPresenter presenter = new CallCardPresenter();
+ presenter.init(getContext(), null);
+
+ assertEquals(NAME_PRIMARY, presenter.getNameForCall(mUnlockedContactInfo));
+ }
+
+ public void testGetNameForCall_Locked() {
+ ContactsPreferencesFactory.setTestInstance(null);
+ CallCardPresenter presenter = new CallCardPresenter();
+ presenter.init(getContext(), null);
+
+ assertEquals(NUMBER, presenter.getNameForCall(mLockedContactInfo));
+ }
+
+ public void testGetNameForCall_EmptyPreferredName() {
+ ContactCacheEntry contactInfo = new ContactCacheEntry();
+ contactInfo.number = NUMBER;
+
+ ContactsPreferencesFactory.setTestInstance(null);
+ CallCardPresenter presenter = new CallCardPresenter();
+ presenter.init(getContext(), null);
+
+ assertEquals(NUMBER, presenter.getNameForCall(contactInfo));
+ }
+
+ public void testGetNumberForCall_Unlocked() {
+ ContactsPreferencesFactory.setTestInstance(mContactsPreferences);
+ CallCardPresenter presenter = new CallCardPresenter();
+ presenter.init(getContext(), null);
+
+ assertEquals(NUMBER, presenter.getNumberForCall(mUnlockedContactInfo));
+ }
+
+ public void testGetNumberForCall_Locked() {
+ ContactsPreferencesFactory.setTestInstance(null);
+ CallCardPresenter presenter = new CallCardPresenter();
+ presenter.init(getContext(), null);
+
+ assertEquals(LOCATION, presenter.getNumberForCall(mLockedContactInfo));
+ }
+
+ public void testGetNumberForCall_EmptyPreferredName() {
+ ContactCacheEntry contactInfo = new ContactCacheEntry();
+ contactInfo.location = LOCATION;
+
+ ContactsPreferencesFactory.setTestInstance(null);
+ CallCardPresenter presenter = new CallCardPresenter();
+ presenter.init(getContext(), null);
+
+ assertEquals(LOCATION, presenter.getNumberForCall(contactInfo));
+ }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java b/InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java
new file mode 100644
index 000000000..bf915553b
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ContactsPreferencesFactoryTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2016 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.incallui;
+
+import com.android.dialer.compat.UserManagerCompat;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+
+import org.mockito.Mockito;
+
+@SmallTest
+public class ContactsPreferencesFactoryTest extends AndroidTestCase {
+
+ public void testNewContactsPreferences_Unlocked() {
+ if (!UserManagerCompat.isUserUnlocked(getContext())) {
+ return;
+ }
+ assertNotNull(ContactsPreferencesFactory.newContactsPreferences(getContext()));
+ }
+
+ public void testNewContactsPreferences_Locked() {
+ if (UserManagerCompat.isUserUnlocked(getContext())) {
+ return;
+ }
+ assertNull(ContactsPreferencesFactory.newContactsPreferences(getContext()));
+ }
+
+ public void testNewContactsPreferences_TestInstance() {
+ ContactsPreferences testInstance = Mockito.mock(ContactsPreferences.class);
+ ContactsPreferencesFactory.setTestInstance(testInstance);
+ // Assert that it returns the same object always
+ assertSame(testInstance, ContactsPreferencesFactory.newContactsPreferences(getContext()));
+ assertSame(testInstance, ContactsPreferencesFactory.newContactsPreferences(getContext()));
+ }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java b/InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java
new file mode 100644
index 000000000..4c55ddcc0
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/StatusBarNotifierTest.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2016 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.incallui;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@MediumTest
+public class StatusBarNotifierTest extends AndroidTestCase {
+
+ private static final String NAME_PRIMARY = "Full Name";
+ private static final String NAME_ALTERNATIVE = "Name, Full";
+ private static final String LOCATION = "US";
+ private static final String NUMBER = "8006459001";
+
+ @Mock private Call mCall;
+ @Mock private ContactsPreferences mContactsPreferences;
+ private ContactCacheEntry mUnlockedContactInfo;
+ private ContactCacheEntry mLockedContactInfo;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ MockitoAnnotations.initMocks(this);
+
+ Mockito.when(mContactsPreferences.getDisplayOrder())
+ .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+ // Unlocked all contact info is available
+ mUnlockedContactInfo = new ContactCacheEntry();
+ mUnlockedContactInfo.namePrimary = NAME_PRIMARY;
+ mUnlockedContactInfo.nameAlternative = NAME_ALTERNATIVE;
+ mUnlockedContactInfo.location = LOCATION;
+ mUnlockedContactInfo.number = NUMBER;
+
+ // Locked only number and location are available
+ mLockedContactInfo = new ContactCacheEntry();
+ mLockedContactInfo .location = LOCATION;
+ mLockedContactInfo .number = NUMBER;
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ ContactsPreferencesFactory.setTestInstance(null);
+ }
+
+ public void testGetContentTitle_ConferenceCall() {
+ ContactsPreferencesFactory.setTestInstance(null);
+ StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+
+ Mockito.when(mCall.isConferenceCall()).thenReturn(true);
+ Mockito.when(mCall.hasProperty(Mockito.anyInt())).thenReturn(false);
+
+ assertEquals(mContext.getResources().getString(R.string.card_title_conf_call),
+ statusBarNotifier.getContentTitle(null, mCall));
+ }
+
+ public void testGetContentTitle_Unlocked() {
+ ContactsPreferencesFactory.setTestInstance(mContactsPreferences);
+ StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+ assertEquals(NAME_PRIMARY, statusBarNotifier.getContentTitle(mUnlockedContactInfo, mCall));
+ }
+
+ public void testGetContentTitle_Locked() {
+ ContactsPreferencesFactory.setTestInstance(null);
+ StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+ assertEquals(NUMBER, statusBarNotifier.getContentTitle(mLockedContactInfo, mCall));
+ }
+
+ public void testGetContentTitle_EmptyPreferredName() {
+ ContactCacheEntry contactCacheEntry = new ContactCacheEntry();
+ contactCacheEntry.number = NUMBER;
+ StatusBarNotifier statusBarNotifier = new StatusBarNotifier(mContext, null);
+ assertEquals(NUMBER, statusBarNotifier.getContentTitle(contactCacheEntry, mCall));
+ }
+}