diff options
author | Ta-wei Yen <twyen@google.com> | 2016-03-07 23:56:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-03-07 23:56:51 +0000 |
commit | 5d635baea2d0510c5edc9df26681d802bc91c443 (patch) | |
tree | a76ad9cbdee19b31494be5836065e4b080c022d7 /tests | |
parent | d72b50f5d5d75309c21e7cc093222db5684aa433 (diff) | |
parent | bcb15f99dff4e01343bb7470135f5392a65a01f4 (diff) |
Merge "Add contact photo for missed call notifications" into nyc-dev
Diffstat (limited to 'tests')
-rw-r--r-- | tests/src/com/android/dialer/contactinfo/ContactPhotoLoaderTest.java | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/src/com/android/dialer/contactinfo/ContactPhotoLoaderTest.java b/tests/src/com/android/dialer/contactinfo/ContactPhotoLoaderTest.java new file mode 100644 index 000000000..42a5ae966 --- /dev/null +++ b/tests/src/com/android/dialer/contactinfo/ContactPhotoLoaderTest.java @@ -0,0 +1,106 @@ +/* + * 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.dialer.contactinfo; + +import android.app.Instrumentation; +import android.content.ContentResolver; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.support.test.InstrumentationRegistry; +import android.support.v4.graphics.drawable.RoundedBitmapDrawable; +import android.test.AndroidTestCase; +import android.test.InstrumentationTestCase; +import android.text.TextUtils; + +import com.android.contacts.common.GeoUtil; +import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.dialer.calllog.ContactInfo; +import com.android.dialer.calllog.ContactInfoHelper; +import com.android.dialer.tests.R; + +public class ContactPhotoLoaderTest extends InstrumentationTestCase { + + private Context mContext; + + @Override + public void setUp() { + mContext = getInstrumentation().getTargetContext(); + } + + public void testConstructor() { + ContactPhotoLoader loader = new ContactPhotoLoader(mContext, new ContactInfo()); + } + + public void testConstructor_NullContext() { + try { + ContactPhotoLoader loader = new ContactPhotoLoader(null, new ContactInfo()); + fail(); + } catch (NullPointerException e) { + //expected + } + } + + public void testConstructor_NullContactInfo() { + try { + ContactPhotoLoader loader = new ContactPhotoLoader(mContext, null); + fail(); + } catch (NullPointerException e) { + //expected + } + } + + public void testGetIcon_Photo() { + ContactInfo info = getTestContactInfo(); + info.photoUri = getResourceUri(R.drawable.phone_icon); + ContactPhotoLoader loader = new ContactPhotoLoader(mContext, info); + assertTrue(loader.getIcon() instanceof RoundedBitmapDrawable); + } + + public void testGetIcon_Photo_Invalid() { + ContactInfo info = getTestContactInfo(); + info.photoUri = Uri.parse("file://invalid/uri"); + ContactPhotoLoader loader = new ContactPhotoLoader(mContext, info); + //Should fall back to LetterTileDrawable + assertTrue(loader.getIcon() instanceof LetterTileDrawable); + } + + public void testGetIcon_LetterTile() { + ContactInfo info = getTestContactInfo(); + ContactPhotoLoader loader = new ContactPhotoLoader(mContext, info); + assertTrue(loader.getIcon() instanceof LetterTileDrawable); + } + + private Uri getResourceUri(int resId) { + Context testContext = getInstrumentation().getContext(); + Resources resources = testContext.getResources(); + + assertNotNull(resources.getDrawable(resId)); + return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + + testContext.getPackageName() + + '/' + resId); + } + + private ContactInfo getTestContactInfo() { + ContactInfo info = new ContactInfo(); + info.name = "foo"; + info.lookupKey = "bar"; + return info; + } +}
\ No newline at end of file |