1
0
Fork 0
fenix/app/src/test/java/org/mozilla/fenix/whatsnew/WhatsNewStorageTest.kt

67 lines
2.0 KiB
Kotlin

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.whatsnew
import androidx.test.ext.junit.runners.AndroidJUnit4
import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mozilla.fenix.TestApplication
import org.mozilla.fenix.ext.clearAndCommit
import org.mozilla.fenix.utils.Settings
import org.robolectric.annotation.Config
@RunWith(AndroidJUnit4::class)
@Config(application = TestApplication::class)
class WhatsNewStorageTest {
private lateinit var storage: SharedPreferenceWhatsNewStorage
private lateinit var settings: Settings
@Before
fun setUp() {
storage = SharedPreferenceWhatsNewStorage(testContext)
settings = Settings.getInstance(testContext)
.apply(Settings::clear)
}
@Test
fun testGettingAndSettingAVersion() {
val version = WhatsNewVersion("3.0")
storage.setVersion(version)
val storedVersion = storage.getVersion()
Assert.assertEquals(version, storedVersion)
}
@Test
fun testGettingAndSettingTheDateOfUpdate() {
val currentTime = System.currentTimeMillis()
val twoDaysAgo = (currentTime - DAY_IN_MILLIS * 2)
storage.setDateOfUpdate(twoDaysAgo)
val storedDate = storage.getDaysSinceUpdate()
Assert.assertEquals(2, storedDate)
}
@Test
fun testGettingAndSettingHasBeenCleared() {
val hasBeenCleared = true
storage.setWhatsNewHasBeenCleared(hasBeenCleared)
val storedHasBeenCleared = storage.getWhatsNewHasBeenCleared()
Assert.assertEquals(hasBeenCleared, storedHasBeenCleared)
}
companion object {
const val DAY_IN_MILLIS = 3600 * 1000 * 24
}
}
fun Settings.clear() {
preferences.clearAndCommit()
}