summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCatherine Liang <cathliang@google.com>2023-11-01 22:35:21 +0800
committerCatherine Liang <cathliang@google.com>2023-11-02 12:11:44 +0800
commite1fbbed151bbc6f789b5dbe3d9abbf412158cd12 (patch)
treef9e218a35170219615ad36b1c2d44c5d0a883168 /tests
parent0768fb09137a8068b3326d24521563e93cd9230a (diff)
downloadThemePicker-e1fbbed151bbc6f789b5dbe3d9abbf412158cd12.tar.gz
[WPP logging] Wire logThemeColorApplied
Test: manually verified Bug: 305752530 Flag: NONE Change-Id: I40d8c156848d6f43b08c0962603a0f443d1e86bf
Diffstat (limited to 'tests')
-rw-r--r--tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt13
-rw-r--r--tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt74
2 files changed, 85 insertions, 2 deletions
diff --git a/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt b/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt
index 10149f0c..bb49ff09 100644
--- a/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt
+++ b/tests/common/src/com/android/customization/module/logging/TestThemesUserEventLogger.kt
@@ -28,8 +28,19 @@ import javax.inject.Singleton
class TestThemesUserEventLogger @Inject constructor() :
TestUserEventLogger(), ThemesUserEventLogger {
@ClockSize private var clockSize: Int = StyleEnums.CLOCK_SIZE_UNSPECIFIED
+ @ColorSource
+ var themeColorSource: Int = StyleEnums.COLOR_SOURCE_UNSPECIFIED
+ private set
+ var themeColorVariant: Int = -1
+ private set
+ var themeSeedColor: Int = -1
+ private set
- override fun logThemeColorApplied(@ColorSource source: Int, variant: Int, seedColor: Int) {}
+ override fun logThemeColorApplied(@ColorSource source: Int, variant: Int, seedColor: Int) {
+ this.themeColorSource = source
+ this.themeColorVariant = variant
+ this.themeSeedColor = seedColor
+ }
override fun logGridApplied(grid: GridOption) {}
diff --git a/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt b/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
index 9968c5fa..c8412672 100644
--- a/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/color/ui/viewmodel/ColorPickerViewModelTest.kt
@@ -17,8 +17,12 @@
package com.android.customization.model.picker.color.ui.viewmodel
import android.content.Context
+import android.graphics.Color
+import android.stats.style.StyleEnums
import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry
+import com.android.customization.model.color.ColorOptionsProvider
+import com.android.customization.module.logging.TestThemesUserEventLogger
import com.android.customization.picker.color.data.repository.FakeColorPickerRepository
import com.android.customization.picker.color.domain.interactor.ColorPickerInteractor
import com.android.customization.picker.color.domain.interactor.ColorPickerSnapshotRestorer
@@ -26,6 +30,7 @@ import com.android.customization.picker.color.shared.model.ColorType
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorTypeTabViewModel
+import com.android.systemui.monet.Style
import com.android.wallpaper.picker.option.ui.viewmodel.OptionItemViewModel
import com.android.wallpaper.testing.FakeSnapshotStore
import com.android.wallpaper.testing.collectLastValue
@@ -36,6 +41,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceUntilIdle
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.setMain
@@ -49,6 +55,7 @@ import org.robolectric.RobolectricTestRunner
@SmallTest
@RunWith(RobolectricTestRunner::class)
class ColorPickerViewModelTest {
+ private val logger = TestThemesUserEventLogger()
private lateinit var underTest: ColorPickerViewModel
private lateinit var repository: FakeColorPickerRepository
private lateinit var interactor: ColorPickerInteractor
@@ -77,7 +84,11 @@ class ColorPickerViewModelTest {
)
underTest =
- ColorPickerViewModel.Factory(context = context, interactor = interactor)
+ ColorPickerViewModel.Factory(
+ context = context,
+ interactor = interactor,
+ logger = logger
+ )
.create(ColorPickerViewModel::class.java)
repository.setOptions(4, 4, ColorType.WALLPAPER_COLOR, 0)
@@ -112,6 +123,67 @@ class ColorPickerViewModelTest {
}
@Test
+ fun `Log selected wallpaper color`() =
+ testScope.runTest {
+ repository.setOptions(
+ listOf(
+ repository.buildWallpaperOption(
+ ColorOptionsProvider.COLOR_SOURCE_LOCK,
+ Style.EXPRESSIVE,
+ "#121212"
+ )
+ ),
+ listOf(repository.buildPresetOption(Style.FRUIT_SALAD, "#ABCDEF")),
+ ColorType.PRESET_COLOR,
+ 0
+ )
+
+ val colorTypes = collectLastValue(underTest.colorTypeTabs)
+ val colorOptions = collectLastValue(underTest.colorOptions)
+
+ // Select "Wallpaper colors" tab
+ colorTypes()?.get(ColorType.WALLPAPER_COLOR)?.onClick?.invoke()
+ // Select a color option
+ selectColorOption(colorOptions, 0)
+ advanceUntilIdle()
+
+ assertThat(logger.themeColorSource)
+ .isEqualTo(StyleEnums.COLOR_SOURCE_LOCK_SCREEN_WALLPAPER)
+ assertThat(logger.themeColorVariant).isEqualTo(Style.EXPRESSIVE.ordinal + 1)
+ assertThat(logger.themeSeedColor).isEqualTo(Color.parseColor("#121212"))
+ }
+
+ @Test
+ fun `Log selected preset color`() =
+ testScope.runTest {
+ repository.setOptions(
+ listOf(
+ repository.buildWallpaperOption(
+ ColorOptionsProvider.COLOR_SOURCE_LOCK,
+ Style.EXPRESSIVE,
+ "#121212"
+ )
+ ),
+ listOf(repository.buildPresetOption(Style.FRUIT_SALAD, "#ABCDEF")),
+ ColorType.WALLPAPER_COLOR,
+ 0
+ )
+
+ val colorTypes = collectLastValue(underTest.colorTypeTabs)
+ val colorOptions = collectLastValue(underTest.colorOptions)
+
+ // Select "Wallpaper colors" tab
+ colorTypes()?.get(ColorType.PRESET_COLOR)?.onClick?.invoke()
+ // Select a color option
+ selectColorOption(colorOptions, 0)
+ advanceUntilIdle()
+
+ assertThat(logger.themeColorSource).isEqualTo(StyleEnums.COLOR_SOURCE_PRESET_COLOR)
+ assertThat(logger.themeColorVariant).isEqualTo(Style.FRUIT_SALAD.ordinal + 1)
+ assertThat(logger.themeSeedColor).isEqualTo(Color.parseColor("#ABCDEF"))
+ }
+
+ @Test
fun `Select a preset color`() =
testScope.runTest {
val colorTypes = collectLastValue(underTest.colorTypeTabs)