You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
4.2 KiB
119 lines
4.2 KiB
package com.android.documentsui;
|
|
|
|
import static com.google.common.truth.Truth.assertThat;
|
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
import static org.mockito.ArgumentMatchers.anyInt;
|
|
import static org.mockito.ArgumentMatchers.anyString;
|
|
import static org.mockito.ArgumentMatchers.eq;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.never;
|
|
import static org.mockito.Mockito.verify;
|
|
import static org.mockito.Mockito.when;
|
|
|
|
import android.content.Context;
|
|
import android.content.pm.ApplicationInfo;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.ProviderInfo;
|
|
import android.graphics.drawable.Drawable;
|
|
|
|
import androidx.test.InstrumentationRegistry;
|
|
import androidx.test.filters.SmallTest;
|
|
|
|
import com.android.documentsui.testing.TestProvidersAccess;
|
|
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
|
|
@SmallTest
|
|
public class IconUtilsTest {
|
|
private static final String AUDIO_MIME_TYPE = "audio";
|
|
private static final String IMAGE_MIME_TYPE = "image";
|
|
private static final String TEXT_MIME_TYPE = "text";
|
|
private static final String VIDEO_MIME_TYPE = "video";
|
|
private static final String GENERIC_MIME_TYPE = "generic";
|
|
|
|
private Context mTargetContext;
|
|
|
|
@Before
|
|
public void setUp() throws Exception {
|
|
mTargetContext = InstrumentationRegistry.getTargetContext();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadMimeIcon_isAudioMimeType() {
|
|
assertThat(IconUtils.loadMimeIcon(mTargetContext, AUDIO_MIME_TYPE)).isNotNull();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadMimeIcon_isImageMimeType() {
|
|
assertThat(IconUtils.loadMimeIcon(mTargetContext, IMAGE_MIME_TYPE)).isNotNull();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadMimeIcon_isGenericMimeType() {
|
|
assertThat(IconUtils.loadMimeIcon(mTargetContext, GENERIC_MIME_TYPE)).isNotNull();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadMimeIcon_isVideoMimeType() {
|
|
assertThat(IconUtils.loadMimeIcon(mTargetContext, VIDEO_MIME_TYPE)).isNotNull();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadMimeIcon_isTextMimeType() {
|
|
assertThat(IconUtils.loadMimeIcon(mTargetContext, TEXT_MIME_TYPE)).isNotNull();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadMimeIcon_isMimeTypeNull_shouldReturnNull() {
|
|
assertThat(IconUtils.loadMimeIcon(mTargetContext, null)).isNull();
|
|
}
|
|
|
|
@Test
|
|
public void testLoadPackageIcon() throws PackageManager.NameNotFoundException {
|
|
final String authority = "a";
|
|
final int icon = 1234;
|
|
final ProviderInfo providerInfo = new ProviderInfo();
|
|
|
|
Context context = mock(Context.class);
|
|
PackageManager packageManager = mock(PackageManager.class);
|
|
Drawable drawable = mock(Drawable.class);
|
|
|
|
when(context.getPackageManager()).thenReturn(packageManager);
|
|
when(packageManager.resolveContentProvider(eq(authority), anyInt())).thenReturn(
|
|
providerInfo);
|
|
when(packageManager.getDrawable(anyString(), eq(icon), any(ApplicationInfo.class)))
|
|
.thenReturn(drawable);
|
|
|
|
IconUtils.loadPackageIcon(context, TestProvidersAccess.USER_ID, authority, icon,
|
|
/* maybeShowBadge= */false);
|
|
|
|
verify(packageManager).getDrawable(any(), eq(icon), any());
|
|
verify(packageManager, never()).getUserBadgedIcon(drawable,
|
|
TestProvidersAccess.USER_HANDLE);
|
|
}
|
|
|
|
@Test
|
|
public void testLoadPackageIcon_maybeShowBadge() throws PackageManager.NameNotFoundException {
|
|
final String authority = "a";
|
|
final int icon = 1234;
|
|
final ProviderInfo providerInfo = new ProviderInfo();
|
|
|
|
Context context = mock(Context.class);
|
|
PackageManager packageManager = mock(PackageManager.class);
|
|
Drawable drawable = mock(Drawable.class);
|
|
|
|
when(context.getPackageManager()).thenReturn(packageManager);
|
|
when(packageManager.resolveContentProvider(eq(authority), anyInt())).thenReturn(
|
|
providerInfo);
|
|
when(packageManager.getDrawable(any(), eq(icon), any())).thenReturn(drawable);
|
|
|
|
IconUtils.loadPackageIcon(context, TestProvidersAccess.USER_ID, authority, icon,
|
|
/* maybeShowBadge= */true);
|
|
|
|
verify(packageManager).getDrawable(any(), eq(icon), any());
|
|
verify(packageManager).getUserBadgedIcon(drawable, TestProvidersAccess.USER_HANDLE);
|
|
}
|
|
}
|