|
|
|
@ -25,6 +25,7 @@ import org.mozilla.fenix.components.appstate.AppAction
|
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
|
|
import java.util.Calendar
|
|
|
|
|
import java.util.Date
|
|
|
|
|
import kotlin.random.Random
|
|
|
|
|
|
|
|
|
|
@RunWith(AndroidJUnit4::class)
|
|
|
|
|
class WallpapersUseCasesTest {
|
|
|
|
@ -515,10 +516,7 @@ class WallpapersUseCasesTest {
|
|
|
|
|
@Test
|
|
|
|
|
fun `WHEN legacy selected wallpaper usecase invoked THEN storage updated and store receives dispatch`() = runTest {
|
|
|
|
|
val selectedWallpaper = makeFakeRemoteWallpaper(TimeRelation.LATER, "selected")
|
|
|
|
|
val slot = slot<String>()
|
|
|
|
|
coEvery { mockFileManager.lookupExpiredWallpaper(any()) } returns null
|
|
|
|
|
every { mockSettings.currentWallpaperName } returns ""
|
|
|
|
|
every { mockSettings.currentWallpaperName = capture(slot) } just runs
|
|
|
|
|
every { mockSettings.currentWallpaperName = any() } just Runs
|
|
|
|
|
|
|
|
|
|
val wallpaperFileState = WallpapersUseCases.LegacySelectWallpaperUseCase(
|
|
|
|
|
mockSettings,
|
|
|
|
@ -526,7 +524,10 @@ class WallpapersUseCasesTest {
|
|
|
|
|
).invoke(selectedWallpaper)
|
|
|
|
|
|
|
|
|
|
appStore.waitUntilIdle()
|
|
|
|
|
assertEquals(selectedWallpaper.name, slot.captured)
|
|
|
|
|
|
|
|
|
|
verify { mockSettings.currentWallpaperName = selectedWallpaper.name }
|
|
|
|
|
verify { mockSettings.currentWallpaperTextColor = selectedWallpaper.textColor!! }
|
|
|
|
|
verify { mockSettings.currentWallpaperCardColor = selectedWallpaper.cardColor!! }
|
|
|
|
|
assertEquals(selectedWallpaper, appStore.state.wallpaperState.currentWallpaper)
|
|
|
|
|
assertEquals(wallpaperFileState, Wallpaper.ImageFileState.Downloaded)
|
|
|
|
|
}
|
|
|
|
@ -600,6 +601,50 @@ class WallpapersUseCasesTest {
|
|
|
|
|
assertEquals(wallpaperFileState, Wallpaper.ImageFileState.Error)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `GIVEN a wallpaper with no text color WHEN it is is selected THEN persist the wallpaper name and missing text color and dispatch the update`() {
|
|
|
|
|
every { mockSettings.currentWallpaperName = any() } just Runs
|
|
|
|
|
val store = mockk<AppStore>(relaxed = true)
|
|
|
|
|
val wallpaperFileState = WallpapersUseCases.DefaultSelectWallpaperUseCase(
|
|
|
|
|
settings = mockSettings,
|
|
|
|
|
store = store,
|
|
|
|
|
fileManager = mockk(),
|
|
|
|
|
downloader = mockk(),
|
|
|
|
|
)
|
|
|
|
|
val wallpaper: Wallpaper = mockk {
|
|
|
|
|
every { name } returns "Test"
|
|
|
|
|
every { textColor } returns null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
wallpaperFileState.selectWallpaper(wallpaper)
|
|
|
|
|
|
|
|
|
|
verify { mockSettings.currentWallpaperName = "Test" }
|
|
|
|
|
verify { mockSettings.currentWallpaperTextColor = 0L }
|
|
|
|
|
verify { store.dispatch(AppAction.WallpaperAction.UpdateCurrentWallpaper(wallpaper)) }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `GIVEN a wallpaper with available text color WHEN it is is selected THEN persist the wallpaper name and text color and dispatch the update`() {
|
|
|
|
|
every { mockSettings.currentWallpaperName = any() } just Runs
|
|
|
|
|
val store = mockk<AppStore>(relaxed = true)
|
|
|
|
|
val wallpaperFileState = WallpapersUseCases.DefaultSelectWallpaperUseCase(
|
|
|
|
|
settings = mockSettings,
|
|
|
|
|
store = store,
|
|
|
|
|
fileManager = mockk(),
|
|
|
|
|
downloader = mockk(),
|
|
|
|
|
)
|
|
|
|
|
val wallpaper: Wallpaper = mockk {
|
|
|
|
|
every { name } returns "Test"
|
|
|
|
|
every { textColor } returns 321L
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
wallpaperFileState.selectWallpaper(wallpaper)
|
|
|
|
|
|
|
|
|
|
verify { mockSettings.currentWallpaperName = "Test" }
|
|
|
|
|
verify { mockSettings.currentWallpaperTextColor = 321L }
|
|
|
|
|
verify { store.dispatch(AppAction.WallpaperAction.UpdateCurrentWallpaper(wallpaper)) }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private enum class TimeRelation {
|
|
|
|
|
BEFORE,
|
|
|
|
|
NOW,
|
|
|
|
@ -633,8 +678,8 @@ class WallpapersUseCasesTest {
|
|
|
|
|
endDate = relativeTime,
|
|
|
|
|
learnMoreUrl = null,
|
|
|
|
|
),
|
|
|
|
|
textColor = null,
|
|
|
|
|
cardColor = null,
|
|
|
|
|
textColor = Random.nextLong(),
|
|
|
|
|
cardColor = Random.nextLong(),
|
|
|
|
|
thumbnailFileState = Wallpaper.ImageFileState.Unavailable,
|
|
|
|
|
assetsFileState = Wallpaper.ImageFileState.Unavailable,
|
|
|
|
|
)
|
|
|
|
@ -650,8 +695,8 @@ class WallpapersUseCasesTest {
|
|
|
|
|
endDate = relativeTime,
|
|
|
|
|
learnMoreUrl = null,
|
|
|
|
|
),
|
|
|
|
|
textColor = null,
|
|
|
|
|
cardColor = null,
|
|
|
|
|
textColor = Random.nextLong(),
|
|
|
|
|
cardColor = Random.nextLong(),
|
|
|
|
|
thumbnailFileState = Wallpaper.ImageFileState.Unavailable,
|
|
|
|
|
assetsFileState = Wallpaper.ImageFileState.Unavailable,
|
|
|
|
|
)
|
|
|
|
|