@ -18,6 +18,7 @@ import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Assert.fail
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@ -950,4 +951,48 @@ class SettingsTest {
settings . openLinksInExternalApp = " pref_key_open_links_in_apps_never "
assertEquals ( settings . getOpenLinksInAppsString ( ) , " Never " )
}
@Test
fun `GIVEN a written integer value for pref_key_search_widget_installed WHEN reading searchWidgetInstalled THEN do not throw a ClassCastException` ( ) {
val expectedInt = 5
val oldPrefKey = " pref_key_search_widget_installed "
settings . preferences . edit ( ) . putInt ( oldPrefKey , expectedInt ) . apply ( )
try {
assertEquals ( expectedInt , settings . preferences . getInt ( oldPrefKey , 0 ) )
assertFalse ( settings . searchWidgetInstalled )
} catch ( e : ClassCastException ) {
fail ( " Unexpected ClassCastException " )
}
}
@Test
fun `GIVEN previously stored pref_key_search_widget_installed value WHEN calling migrateSearchWidgetInstalledIfNeeded THEN migrate the value` ( ) {
val expectedInt = 5
val oldPrefKey = " pref_key_search_widget_installed "
settings . preferences . edit ( ) . putInt ( oldPrefKey , expectedInt ) . apply ( )
assertEquals ( expectedInt , settings . preferences . getInt ( oldPrefKey , 0 ) )
assertFalse ( settings . searchWidgetInstalled )
settings . migrateSearchWidgetInstalledPrefIfNeeded ( )
assertTrue ( settings . searchWidgetInstalled )
}
@Test
fun `GIVEN none previously stored pref_key_search_widget_installed value WHEN calling migrateSearchWidgetInstalledIfNeeded THEN migration should not happen` ( ) {
val oldPrefKey = " pref_key_search_widget_installed "
val expectedDefaultValue = 0
val storedValue = settings . preferences . getInt ( oldPrefKey , expectedDefaultValue )
assertEquals ( expectedDefaultValue , storedValue )
settings . migrateSearchWidgetInstalledPrefIfNeeded ( )
assertEquals ( expectedDefaultValue , settings . preferences . getInt ( oldPrefKey , expectedDefaultValue ) )
assertFalse ( settings . searchWidgetInstalled )
}
}