1 /* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License 15 */ 16 17 package com.android.contacts.util; 18 19 import static android.provider.ContactsContract.CommonDataKinds.Phone; 20 21 import android.test.AndroidTestCase; 22 23 import androidx.test.filters.SmallTest; 24 25 import com.android.contacts.R; 26 import com.android.contacts.preference.ContactsPreferences; 27 28 import org.mockito.Mock; 29 import org.mockito.Mockito; 30 import org.mockito.MockitoAnnotations; 31 32 /** 33 * Unit tests for (@link ContactDisplayUtils} 34 */ 35 @SmallTest 36 public class ContactDisplayUtilTests extends AndroidTestCase { 37 38 private static final String NAME_PRIMARY = "Name Primary"; 39 private static final String NAME_ALTERNATIVE = "Name Alternative"; 40 41 @Mock private ContactsPreferences mContactsPreferences; 42 43 @Override setUp()44 public void setUp() throws Exception { 45 super.setUp(); 46 MockitoAnnotations.initMocks(this); 47 } 48 testIsCustomPhoneTypeReturnsTrue()49 public void testIsCustomPhoneTypeReturnsTrue() { 50 assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_CUSTOM)); 51 assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_ASSISTANT)); 52 } 53 testIsCustomPhoneTypeReturnsFalse()54 public void testIsCustomPhoneTypeReturnsFalse() { 55 assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_HOME)); 56 assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_FAX_WORK)); 57 assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_MOBILE)); 58 assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_OTHER)); 59 } 60 testGetPhoneLabelResourceIdReturnsOther()61 public void testGetPhoneLabelResourceIdReturnsOther() { 62 assertEquals(R.string.call_other, ContactDisplayUtils.getPhoneLabelResourceId(null)); 63 } 64 testGetPhoneLabelResourceIdReturnsMatchHome()65 public void testGetPhoneLabelResourceIdReturnsMatchHome() { 66 assertEquals(R.string.call_home, ContactDisplayUtils.getPhoneLabelResourceId( 67 Phone.TYPE_HOME)); 68 } 69 testGetSmsLabelResourceIdReturnsOther()70 public void testGetSmsLabelResourceIdReturnsOther() { 71 assertEquals(R.string.sms_other, ContactDisplayUtils.getSmsLabelResourceId(null)); 72 } 73 testGetSmsLabelResourceIdReturnsMatchHome()74 public void testGetSmsLabelResourceIdReturnsMatchHome() { 75 assertEquals(R.string.sms_home, ContactDisplayUtils.getSmsLabelResourceId(Phone.TYPE_HOME)); 76 } 77 testGetPreferredDisplayName_NullContactsPreferences()78 public void testGetPreferredDisplayName_NullContactsPreferences() { 79 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, 80 NAME_ALTERNATIVE, null)); 81 } 82 testGetPreferredDisplayName_NullContactsPreferences_NullAlternative()83 public void testGetPreferredDisplayName_NullContactsPreferences_NullAlternative() { 84 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, null, 85 null)); 86 } 87 testGetPreferredDisplayName_NullContactsPreferences_NullPrimary()88 public void testGetPreferredDisplayName_NullContactsPreferences_NullPrimary() { 89 assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredDisplayName(null, 90 NAME_ALTERNATIVE, null)); 91 } 92 testGetPreferredDisplayName_NullContactsPreferences_BothNull()93 public void testGetPreferredDisplayName_NullContactsPreferences_BothNull() { 94 assertNull(ContactDisplayUtils.getPreferredDisplayName(null, null, null)); 95 } 96 testGetPreferredDisplayName_EmptyAlternative()97 public void testGetPreferredDisplayName_EmptyAlternative() { 98 Mockito.when(mContactsPreferences.getDisplayOrder()) 99 .thenReturn(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE); 100 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, "", 101 mContactsPreferences)); 102 } 103 testGetPreferredDisplayName_InvalidPreference()104 public void testGetPreferredDisplayName_InvalidPreference() { 105 Mockito.when(mContactsPreferences.getDisplayOrder()).thenReturn(-1); 106 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, 107 NAME_ALTERNATIVE, mContactsPreferences)); 108 } 109 testGetPreferredDisplayName_Primary()110 public void testGetPreferredDisplayName_Primary() { 111 Mockito.when(mContactsPreferences.getDisplayOrder()) 112 .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY); 113 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, 114 NAME_ALTERNATIVE, mContactsPreferences)); 115 } 116 testGetPreferredDisplayName_Alternative()117 public void testGetPreferredDisplayName_Alternative() { 118 Mockito.when(mContactsPreferences.getDisplayOrder()) 119 .thenReturn(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE); 120 assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, 121 NAME_ALTERNATIVE, mContactsPreferences)); 122 } 123 testGetPreferredSortName_NullContactsPreferences()124 public void testGetPreferredSortName_NullContactsPreferences() { 125 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, 126 NAME_ALTERNATIVE, null)); 127 } 128 testGetPreferredSortName_NullContactsPreferences_NullAlternative()129 public void testGetPreferredSortName_NullContactsPreferences_NullAlternative() { 130 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, null, 131 null)); 132 } 133 testGetPreferredSortName_NullContactsPreferences_NullPrimary()134 public void testGetPreferredSortName_NullContactsPreferences_NullPrimary() { 135 assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredSortName(null, 136 NAME_ALTERNATIVE, null)); 137 } 138 testGetPreferredSortName_NullContactsPreferences_BothNull()139 public void testGetPreferredSortName_NullContactsPreferences_BothNull() { 140 assertNull(ContactDisplayUtils.getPreferredSortName(null, null, null)); 141 } 142 testGetPreferredSortName_EmptyAlternative()143 public void testGetPreferredSortName_EmptyAlternative() { 144 Mockito.when(mContactsPreferences.getSortOrder()) 145 .thenReturn(ContactsPreferences.SORT_ORDER_ALTERNATIVE); 146 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, "", 147 mContactsPreferences)); 148 } 149 testGetPreferredSortName_InvalidPreference()150 public void testGetPreferredSortName_InvalidPreference() { 151 Mockito.when(mContactsPreferences.getSortOrder()).thenReturn(-1); 152 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, 153 NAME_ALTERNATIVE, mContactsPreferences)); 154 } 155 testGetPreferredSortName_Primary()156 public void testGetPreferredSortName_Primary() { 157 Mockito.when(mContactsPreferences.getSortOrder()) 158 .thenReturn(ContactsPreferences.SORT_ORDER_PRIMARY); 159 assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, 160 NAME_ALTERNATIVE, mContactsPreferences)); 161 } 162 testGetPreferredSortName_Alternative()163 public void testGetPreferredSortName_Alternative() { 164 Mockito.when(mContactsPreferences.getSortOrder()) 165 .thenReturn(ContactsPreferences.SORT_ORDER_ALTERNATIVE); 166 assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, 167 NAME_ALTERNATIVE, mContactsPreferences)); 168 } 169 } 170