diff options
author | Catherine Liang <cathliang@google.com> | 2023-11-01 22:35:21 +0800 |
---|---|---|
committer | Catherine Liang <cathliang@google.com> | 2023-11-02 12:11:44 +0800 |
commit | e1fbbed151bbc6f789b5dbe3d9abbf412158cd12 (patch) | |
tree | f9e218a35170219615ad36b1c2d44c5d0a883168 /tests | |
parent | 0768fb09137a8068b3326d24521563e93cd9230a (diff) | |
download | ThemePicker-e1fbbed151bbc6f789b5dbe3d9abbf412158cd12.tar.gz |
[WPP logging] Wire logThemeColorApplied
Test: manually verified
Bug: 305752530
Flag: NONE
Change-Id: I40d8c156848d6f43b08c0962603a0f443d1e86bf
Diffstat (limited to 'tests')
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) |