@ -42,14 +42,14 @@ class WallpaperManagerTest {
val updatedName = " new name "
val updatedName = " new name "
val updatedWallpaper = Wallpaper . Local . Firefox ( updatedName , drawableId = 0 )
val updatedWallpaper = Wallpaper . Local . Firefox ( updatedName , drawableId = 0 )
val wallpaperManager = WallpaperManager ( mockSettings , mockk ( ) , mockFileManager , listOf ( ) )
val wallpaperManager = WallpaperManager ( mockSettings , mockk ( ) , mockFileManager , " en-US " , listOf ( ) )
wallpaperManager . currentWallpaper = updatedWallpaper
wallpaperManager . currentWallpaper = updatedWallpaper
assertEquals ( updatedWallpaper . name , currentCaptureSlot . captured )
assertEquals ( updatedWallpaper . name , currentCaptureSlot . captured )
}
}
@Test
@Test
fun `GIVEN no remote wallpapers expired WHEN downloading remote wallpapers THEN all downloaded`( ) = runBlockingTest {
fun `GIVEN no remote wallpapers expired and locale in promo WHEN downloading remote wallpapers THEN all downloaded`( ) = runBlockingTest {
every { mockSettings . currentWallpaper } returns " "
every { mockSettings . currentWallpaper } returns " "
val fakeRemoteWallpapers = listOf ( " first " , " second " , " third " ) . map { name ->
val fakeRemoteWallpapers = listOf ( " first " , " second " , " third " ) . map { name ->
makeFakeRemoteWallpaper ( TimeRelation . LATER , name )
makeFakeRemoteWallpaper ( TimeRelation . LATER , name )
@ -58,6 +58,7 @@ class WallpaperManagerTest {
mockSettings ,
mockSettings ,
mockDownloader ,
mockDownloader ,
mockFileManager ,
mockFileManager ,
" en-US " ,
allWallpapers = fakeRemoteWallpapers
allWallpapers = fakeRemoteWallpapers
)
)
wallpaperManager . downloadAllRemoteWallpapers ( )
wallpaperManager . downloadAllRemoteWallpapers ( )
@ -67,6 +68,51 @@ class WallpaperManagerTest {
}
}
}
}
@Test
fun `GIVEN no remote wallpapers expired and locale not in promo WHEN downloading remote wallpapers THEN none downloaded` ( ) = runBlockingTest {
every { mockSettings . currentWallpaper } returns " "
val fakeRemoteWallpapers = listOf ( " first " , " second " , " third " ) . map { name ->
makeFakeRemoteWallpaper ( TimeRelation . LATER , name )
}
val wallpaperManager = WallpaperManager (
mockSettings ,
mockDownloader ,
mockFileManager ,
" en-CA " ,
allWallpapers = fakeRemoteWallpapers
)
wallpaperManager . downloadAllRemoteWallpapers ( )
for ( fakeRemoteWallpaper in fakeRemoteWallpapers ) {
coVerify ( exactly = 0 ) { mockDownloader . downloadWallpaper ( fakeRemoteWallpaper ) }
}
}
@Test
fun `GIVEN no remote wallpapers expired and locale not in promo WHEN downloading remote wallpapers THEN non-promo wallpapers downloaded` ( ) = runBlockingTest {
every { mockSettings . currentWallpaper } returns " "
val fakePromoWallpapers = listOf ( " first " , " second " , " third " ) . map { name ->
makeFakeRemoteWallpaper ( TimeRelation . LATER , name )
}
val fakeNonPromoWallpapers = listOf ( makeFakeRemoteWallpaper ( TimeRelation . LATER , " fourth " , false ) )
val fakeRemoteWallpapers = fakePromoWallpapers + fakeNonPromoWallpapers
val wallpaperManager = WallpaperManager (
mockSettings ,
mockDownloader ,
mockFileManager ,
" en-CA " ,
allWallpapers = fakeRemoteWallpapers
)
wallpaperManager . downloadAllRemoteWallpapers ( )
for ( wallpaper in fakePromoWallpapers ) {
coVerify ( exactly = 0 ) { mockDownloader . downloadWallpaper ( wallpaper ) }
}
for ( wallpaper in fakeNonPromoWallpapers ) {
coVerify { mockDownloader . downloadWallpaper ( wallpaper ) }
}
}
@Test
@Test
fun `GIVEN some expired wallpapers WHEN initialized THEN wallpapers are not available` ( ) {
fun `GIVEN some expired wallpapers WHEN initialized THEN wallpapers are not available` ( ) {
every { mockSettings . currentWallpaper } returns " "
every { mockSettings . currentWallpaper } returns " "
@ -76,6 +122,7 @@ class WallpaperManagerTest {
mockSettings ,
mockSettings ,
mockDownloader ,
mockDownloader ,
mockFileManager ,
mockFileManager ,
" en-US " ,
allWallpapers = listOf ( expiredRemoteWallpaper , activeRemoteWallpaper )
allWallpapers = listOf ( expiredRemoteWallpaper , activeRemoteWallpaper )
)
)
@ -96,6 +143,7 @@ class WallpaperManagerTest {
mockSettings ,
mockSettings ,
mockDownloader ,
mockDownloader ,
mockFileManager ,
mockFileManager ,
" en-US " ,
allWallpapers = listOf ( expiredRemoteWallpaper )
allWallpapers = listOf ( expiredRemoteWallpaper )
)
)
@ -115,6 +163,7 @@ class WallpaperManagerTest {
mockSettings ,
mockSettings ,
mockDownloader ,
mockDownloader ,
mockFileManager ,
mockFileManager ,
" en-US " ,
allWallpapers = listOf ( )
allWallpapers = listOf ( )
)
)
@ -132,7 +181,8 @@ class WallpaperManagerTest {
* /
* /
private fun makeFakeRemoteWallpaper (
private fun makeFakeRemoteWallpaper (
timeRelation : TimeRelation ,
timeRelation : TimeRelation ,
name : String = " name "
name : String = " name " ,
isInPromo : Boolean = true
) : Wallpaper . Remote {
) : Wallpaper . Remote {
fakeCalendar . time = baseFakeDate
fakeCalendar . time = baseFakeDate
when ( timeRelation ) {
when ( timeRelation ) {
@ -141,6 +191,10 @@ class WallpaperManagerTest {
TimeRelation . LATER -> fakeCalendar . add ( Calendar . DATE , 5 )
TimeRelation . LATER -> fakeCalendar . add ( Calendar . DATE , 5 )
}
}
val relativeTime = fakeCalendar . time
val relativeTime = fakeCalendar . time
return Wallpaper . Remote . House ( name = name , expirationDate = relativeTime )
return if ( isInPromo ) {
Wallpaper . Remote . House ( name = name , expirationDate = relativeTime )
} else {
Wallpaper . Remote . Firefox ( name = name )
}
}
}
}
}