Loading tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java +64 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.documentsui.theme; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; Loading @@ -28,6 +29,8 @@ import android.content.Context; import android.content.Intent; import android.content.om.OverlayInfo; import android.content.om.OverlayManager; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.UserHandle; import androidx.core.util.Consumer; Loading Loading @@ -58,6 +61,9 @@ public class ThemeOverlayManagerTest { @Mock OverlayManager mOverlayManager; @Mock PackageManager mPackageManager; Consumer<Boolean> mCallback; Context mContext; CountDownLatch mLatch; Loading Loading @@ -183,6 +189,64 @@ public class ThemeOverlayManagerTest { } } @Test public void testGetValidOverlay_system_valid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/system/overlay/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), mUserHandle).iterator().next()); } @Test public void testGetValidOverlay_vendor_valid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/vendor/overlay/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), mUserHandle).iterator().next()); } @Test public void testGetValidOverlay_product_valid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/product/overlay/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), mUserHandle).iterator().next()); } @Test public void testGetValidOverlay_data_invalid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/data/app/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo(null); } private static OverlayInfo createOverlayInfo(String packageName, String targetPackageName, boolean enabled) { return new OverlayInfo(packageName, targetPackageName, null, null, "", Loading Loading
tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java +64 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.documentsui.theme; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; Loading @@ -28,6 +29,8 @@ import android.content.Context; import android.content.Intent; import android.content.om.OverlayInfo; import android.content.om.OverlayManager; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.UserHandle; import androidx.core.util.Consumer; Loading Loading @@ -58,6 +61,9 @@ public class ThemeOverlayManagerTest { @Mock OverlayManager mOverlayManager; @Mock PackageManager mPackageManager; Consumer<Boolean> mCallback; Context mContext; CountDownLatch mLatch; Loading Loading @@ -183,6 +189,64 @@ public class ThemeOverlayManagerTest { } } @Test public void testGetValidOverlay_system_valid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/system/overlay/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), mUserHandle).iterator().next()); } @Test public void testGetValidOverlay_vendor_valid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/vendor/overlay/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), mUserHandle).iterator().next()); } @Test public void testGetValidOverlay_product_valid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/product/overlay/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), mUserHandle).iterator().next()); } @Test public void testGetValidOverlay_data_invalid() throws Exception { mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, getEnabledTargetPackageId()); ApplicationInfo ai = mock(ApplicationInfo.class); String path = "/data/app/DocumentUIOverlay/DocumentUIOverlay.apk"; ai.sourceDir = path; when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo(null); } private static OverlayInfo createOverlayInfo(String packageName, String targetPackageName, boolean enabled) { return new OverlayInfo(packageName, targetPackageName, null, null, "", Loading