Java tutorial
/* * 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; } }