126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng/*
226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * Copyright (C) 2012 The Android Open Source Project
326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng *
426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * Licensed under the Apache License, Version 2.0 (the "License");
526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * you may not use this file except in compliance with the License.
626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * You may obtain a copy of the License at
726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng *
826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng *      http://www.apache.org/licenses/LICENSE-2.0
926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng *
1026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * Unless required by applicable law or agreed to in writing, software
1126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * distributed under the License is distributed on an "AS IS" BASIS,
1226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * See the License for the specific language governing permissions and
1426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * limitations under the License
1526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng */
1626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
1726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Chengpackage com.android.contacts.common.util;
1826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
1926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Chengimport static android.provider.ContactsContract.CommonDataKinds.Phone;
2026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
2126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Chengimport android.test.AndroidTestCase;
2226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Chengimport android.test.suitebuilder.annotation.SmallTest;
2326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
2426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Chengimport com.android.contacts.common.R;
2526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
2626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng/**
2726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng * Unit tests for (@link ContactDisplayUtils}
2826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng */
2926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng@SmallTest
3026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Chengpublic class ContactDisplayUtilTests extends AndroidTestCase {
3126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
3226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testIsCustomPhoneTypeReturnsTrue() {
3326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_CUSTOM));
3426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_ASSISTANT));
3526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
3626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
3726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testIsCustomPhoneTypeReturnsFalse() {
3826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_HOME));
3926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_FAX_WORK));
4026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_MOBILE));
4126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_OTHER));
4226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
4326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
4426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetLabelForCallOrSmsReturnsCustomLabel() {
4526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        final CharSequence smsResult = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_CUSTOM,
4626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                "expected sms label", ContactDisplayUtils.INTERACTION_SMS, getContext());
4726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals("expected sms label", smsResult);
4826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
4926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        final CharSequence callResult = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_CUSTOM,
5026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                "expected call label", ContactDisplayUtils.INTERACTION_CALL, getContext());
5126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals("expected call label", callResult);
5226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
5326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
5426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetLabelForCallOrSmsReturnsCallLabels() {
5526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        CharSequence result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_HOME, "",
5626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                ContactDisplayUtils.INTERACTION_CALL, getContext());
5726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        CharSequence expected = getContext().getResources().getText(R.string.call_home);
5826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(expected, result);
5926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
6026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_MOBILE, "",
6126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                ContactDisplayUtils.INTERACTION_CALL, getContext());
6226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        expected = getContext().getResources().getText(R.string.call_mobile);
6326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(expected, result);
6426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
6526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
6626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetLabelForCallOrSmsReturnsSmsLabels() {
6726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        CharSequence result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_HOME, "",
6826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                ContactDisplayUtils.INTERACTION_SMS, getContext());
6926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        CharSequence expected = getContext().getResources().getText(R.string.sms_home);
7026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(expected, result);
7126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
7226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_MOBILE, "",
7326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                ContactDisplayUtils.INTERACTION_SMS, getContext());
7426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        expected = getContext().getResources().getText(R.string.sms_mobile);
7526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(expected, result);
7626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
7726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
7826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetPhoneLabelResourceIdReturnsOther() {
7926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(R.string.call_other, ContactDisplayUtils.getPhoneLabelResourceId(null));
8026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
8126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
8226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetPhoneLabelResourceIdReturnsMatchHome() {
8326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(R.string.call_home, ContactDisplayUtils.getPhoneLabelResourceId(
8426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng                Phone.TYPE_HOME));
8526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
8626ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
8726ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetSmsLabelResourceIdReturnsOther() {
8826ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(R.string.sms_other, ContactDisplayUtils.getSmsLabelResourceId(null));
8926ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
9026ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
9126ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    public void testGetSmsLabelResourceIdReturnsMatchHome() {
9226ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng        assertEquals(R.string.sms_home, ContactDisplayUtils.getSmsLabelResourceId(Phone.TYPE_HOME));
9326ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng    }
9426ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng
9526ae5e29d0b54a1888e9607689a31d996ce05691Chiao Cheng}
96