summaryrefslogtreecommitdiff
path: root/tests/src/com/android/customization/testing
diff options
context:
space:
mode:
authorChihhang Chuang <chihhangchuang@google.com>2019-12-20 16:40:38 +0800
committerChihhang Chuang <chihhangchuang@google.com>2019-12-23 11:56:24 +0800
commit5eccd03ece6b364b207ced9888dcb8c611f633b7 (patch)
tree5bf87faf87997b1a426c2dafc9fcc04a3b623969 /tests/src/com/android/customization/testing
parentae50661c59614d2c438f35da7f84026e6f17c265 (diff)
downloadThemePicker-5eccd03ece6b364b207ced9888dcb8c611f633b7.tar.gz
[1/2] Add Espresso test for CustomizationPickerActivity
Change-Id: I437eacd0abb7f153c94a826b35aa6c62837f0e29
Diffstat (limited to 'tests/src/com/android/customization/testing')
-rw-r--r--tests/src/com/android/customization/testing/TestCustomizationInjector.java74
-rw-r--r--tests/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java41
-rw-r--r--tests/src/com/android/customization/testing/TestDrawableLayerResolver.java16
-rw-r--r--tests/src/com/android/customization/testing/TestPackageStatusNotifier.java18
-rw-r--r--tests/src/com/android/customization/testing/TestThemeManager.java35
-rw-r--r--tests/src/com/android/customization/testing/TestThemesUserEventLogger.java43
6 files changed, 227 insertions, 0 deletions
diff --git a/tests/src/com/android/customization/testing/TestCustomizationInjector.java b/tests/src/com/android/customization/testing/TestCustomizationInjector.java
new file mode 100644
index 00000000..10b59343
--- /dev/null
+++ b/tests/src/com/android/customization/testing/TestCustomizationInjector.java
@@ -0,0 +1,74 @@
+package com.android.customization.testing;
+
+import android.content.Context;
+
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.customization.model.theme.OverlayManagerCompat;
+import com.android.customization.model.theme.ThemeBundleProvider;
+import com.android.customization.model.theme.ThemeManager;
+import com.android.customization.module.CustomizationInjector;
+import com.android.customization.module.CustomizationPreferences;
+import com.android.customization.module.ThemesUserEventLogger;
+import com.android.wallpaper.module.DrawableLayerResolver;
+import com.android.wallpaper.module.PackageStatusNotifier;
+import com.android.wallpaper.module.UserEventLogger;
+import com.android.wallpaper.module.WallpaperSetter;
+import com.android.wallpaper.testing.TestInjector;
+
+/**
+ * Test implementation of the dependency injector.
+ */
+public class TestCustomizationInjector extends TestInjector implements CustomizationInjector {
+ private CustomizationPreferences mCustomizationPreferences;
+ private ThemeManager mThemeManager;
+ private PackageStatusNotifier mPackageStatusNotifier;
+ private DrawableLayerResolver mDrawableLayerResolver;
+ private UserEventLogger mUserEventLogger;
+
+ @Override
+ public CustomizationPreferences getCustomizationPreferences(Context context) {
+ if (mCustomizationPreferences == null) {
+ mCustomizationPreferences = new TestDefaultCustomizationPreferences(context);
+ }
+ return mCustomizationPreferences;
+ }
+
+ @Override
+ public ThemeManager getThemeManager(
+ ThemeBundleProvider provider,
+ FragmentActivity activity,
+ WallpaperSetter wallpaperSetter,
+ OverlayManagerCompat overlayManagerCompat,
+ ThemesUserEventLogger logger) {
+ if (mThemeManager == null) {
+ mThemeManager = new TestThemeManager(provider, activity, wallpaperSetter,
+ overlayManagerCompat, logger);
+ }
+ return mThemeManager;
+ }
+
+ @Override
+ public PackageStatusNotifier getPackageStatusNotifier(Context context) {
+ if (mPackageStatusNotifier == null) {
+ mPackageStatusNotifier = new TestPackageStatusNotifier();
+ }
+ return mPackageStatusNotifier;
+ }
+
+ @Override
+ public DrawableLayerResolver getDrawableLayerResolver() {
+ if (mDrawableLayerResolver == null) {
+ mDrawableLayerResolver = new TestDrawableLayerResolver();
+ }
+ return mDrawableLayerResolver;
+ }
+
+ @Override
+ public UserEventLogger getUserEventLogger(Context unused) {
+ if (mUserEventLogger == null) {
+ mUserEventLogger = new TestThemesUserEventLogger();
+ }
+ return mUserEventLogger;
+ }
+}
diff --git a/tests/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java b/tests/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java
new file mode 100644
index 00000000..bcf5a5f4
--- /dev/null
+++ b/tests/src/com/android/customization/testing/TestDefaultCustomizationPreferences.java
@@ -0,0 +1,41 @@
+package com.android.customization.testing;
+
+import android.content.Context;
+
+import com.android.customization.module.DefaultCustomizationPreferences;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Test implementation of {@link DefaultCustomizationPreferences}.
+ */
+public class TestDefaultCustomizationPreferences extends DefaultCustomizationPreferences {
+
+ private String mCustomThemes;
+ private final Set<String> mTabVisited = new HashSet<>();
+
+ public TestDefaultCustomizationPreferences(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getSerializedCustomThemes() {
+ return mCustomThemes;
+ }
+
+ @Override
+ public void storeCustomThemes(String serializedCustomThemes) {
+ mCustomThemes = serializedCustomThemes;
+ }
+
+ @Override
+ public boolean getTabVisited(String id) {
+ return mTabVisited.contains(id);
+ }
+
+ @Override
+ public void setTabVisited(String id) {
+ mTabVisited.add(id);
+ }
+}
diff --git a/tests/src/com/android/customization/testing/TestDrawableLayerResolver.java b/tests/src/com/android/customization/testing/TestDrawableLayerResolver.java
new file mode 100644
index 00000000..e507221e
--- /dev/null
+++ b/tests/src/com/android/customization/testing/TestDrawableLayerResolver.java
@@ -0,0 +1,16 @@
+package com.android.customization.testing;
+
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
+
+import com.android.wallpaper.module.DrawableLayerResolver;
+
+/**
+ * Test implementation of {@link DrawableLayerResolver}.
+ */
+public class TestDrawableLayerResolver implements DrawableLayerResolver {
+ @Override
+ public Drawable resolveLayer(LayerDrawable layerDrawable) {
+ return layerDrawable.getDrawable(0);
+ }
+}
diff --git a/tests/src/com/android/customization/testing/TestPackageStatusNotifier.java b/tests/src/com/android/customization/testing/TestPackageStatusNotifier.java
new file mode 100644
index 00000000..1e6a1a27
--- /dev/null
+++ b/tests/src/com/android/customization/testing/TestPackageStatusNotifier.java
@@ -0,0 +1,18 @@
+package com.android.customization.testing;
+
+import com.android.wallpaper.module.PackageStatusNotifier;
+
+/**
+ * Test implementation of {@link PackageStatusNotifier}.
+ */
+public class TestPackageStatusNotifier implements PackageStatusNotifier {
+ @Override
+ public void addListener(Listener listener, String action) {
+ // Do nothing
+ }
+
+ @Override
+ public void removeListener(Listener listener) {
+ // Do nothing
+ }
+}
diff --git a/tests/src/com/android/customization/testing/TestThemeManager.java b/tests/src/com/android/customization/testing/TestThemeManager.java
new file mode 100644
index 00000000..cc8567f1
--- /dev/null
+++ b/tests/src/com/android/customization/testing/TestThemeManager.java
@@ -0,0 +1,35 @@
+package com.android.customization.testing;
+
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.customization.model.theme.OverlayManagerCompat;
+import com.android.customization.model.theme.ThemeBundleProvider;
+import com.android.customization.model.theme.ThemeManager;
+import com.android.customization.module.ThemesUserEventLogger;
+import com.android.wallpaper.module.WallpaperSetter;
+
+/**
+ * Test implementation of {@link ThemeManager}.
+ */
+public class TestThemeManager extends ThemeManager {
+
+ private static boolean sIsAvailable;
+
+ public TestThemeManager(
+ ThemeBundleProvider provider,
+ FragmentActivity activity,
+ WallpaperSetter wallpaperSetter,
+ OverlayManagerCompat overlayManagerCompat,
+ ThemesUserEventLogger logger) {
+ super(provider, activity, wallpaperSetter, overlayManagerCompat, logger);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return sIsAvailable;
+ }
+
+ public static void setAvailable(boolean available) {
+ sIsAvailable = available;
+ }
+}
diff --git a/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java b/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
new file mode 100644
index 00000000..36001920
--- /dev/null
+++ b/tests/src/com/android/customization/testing/TestThemesUserEventLogger.java
@@ -0,0 +1,43 @@
+package com.android.customization.testing;
+
+import com.android.customization.model.clock.Clockface;
+import com.android.customization.model.grid.GridOption;
+import com.android.customization.model.theme.ThemeBundle;
+import com.android.customization.module.ThemesUserEventLogger;
+import com.android.wallpaper.testing.TestUserEventLogger;
+
+/**
+ * Test implementation of {@link ThemesUserEventLogger}.
+ */
+public class TestThemesUserEventLogger extends TestUserEventLogger
+ implements ThemesUserEventLogger {
+ @Override
+ public void logThemeSelected(ThemeBundle theme, boolean isCustomTheme) {
+ // Do nothing.
+ }
+
+ @Override
+ public void logThemeApplied(ThemeBundle theme, boolean isCustomTheme) {
+ // Do nothing.
+ }
+
+ @Override
+ public void logClockSelected(Clockface clock) {
+ // Do nothing.
+ }
+
+ @Override
+ public void logClockApplied(Clockface clock) {
+ // Do nothing.
+ }
+
+ @Override
+ public void logGridSelected(GridOption grid) {
+ // Do nothing.
+ }
+
+ @Override
+ public void logGridApplied(GridOption grid) {
+ // Do nothing.
+ }
+}