1
0
Fork 0

For #7559 - added unit test for same locale selected

master
Mihai Branescu 2020-01-27 15:42:28 +02:00 committed by Jeff Boek
parent 2a876d5e0f
commit 7b9f74138c
1 changed files with 61 additions and 0 deletions

View File

@ -11,6 +11,7 @@ import io.mockk.every
import io.mockk.just
import io.mockk.mockk
import io.mockk.mockkObject
import io.mockk.mockkStatic
import io.mockk.verify
import mozilla.components.support.locale.LocaleManager
import mozilla.components.support.test.mock
@ -30,6 +31,33 @@ class LocaleSettingsControllerTest {
controller = DefaultLocaleSettingsController(context, localeSettingsStore)
}
@Test
fun `don't set locale if same locale is chosen`() {
val selectedLocale = Locale("en", "UK")
every { localeSettingsStore.state } returns LocaleSettingsState(
mockk(),
mockk(),
selectedLocale
)
mockkObject(LocaleManager)
mockkStatic("org.mozilla.fenix.settings.advanced.LocaleManagerExtensionKt")
every { LocaleManager.getCurrentLocale(context) } returns mockk()
every { LocaleManager.isDefaultLocaleSelected(context) } returns false
controller.handleLocaleSelected(selectedLocale)
verify(
inverse = true,
verifyBlock = { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) })
verify(
inverse = true,
verifyBlock = { LocaleManager.setNewLocale(context, selectedLocale.toLanguageTag()) })
verify(
inverse = true,
verifyBlock = { LocaleManager.updateBaseConfiguration(context, selectedLocale) })
verify(inverse = true, verifyBlock = { (context as Activity).recreate() })
}
@Test
fun `set a new locale from the list`() {
val selectedLocale = Locale("en", "UK")
@ -40,6 +68,8 @@ class LocaleSettingsControllerTest {
otherLocale
)
mockkObject(LocaleManager)
mockkStatic("org.mozilla.fenix.settings.advanced.LocaleManagerExtensionKt")
every { LocaleManager.updateBaseConfiguration(context, selectedLocale) } just Runs
every {
LocaleManager.setNewLocale(
context,
@ -51,9 +81,37 @@ class LocaleSettingsControllerTest {
verify { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) }
verify { LocaleManager.setNewLocale(context, selectedLocale.toLanguageTag()) }
verify { LocaleManager.updateBaseConfiguration(context, selectedLocale) }
verify { (context as Activity).recreate() }
}
@Test
fun `don't set default locale if default locale is already chosen`() {
val selectedLocale = Locale("en", "UK")
val localeList = ArrayList<Locale>()
localeList.add(selectedLocale)
every { localeSettingsStore.state } returns LocaleSettingsState(
localeList,
mockk(),
mockk()
)
mockkStatic("org.mozilla.fenix.settings.advanced.LocaleManagerExtensionKt")
every { LocaleManager.isDefaultLocaleSelected(context) } returns true
controller.handleDefaultLocaleSelected()
verify(
inverse = true,
verifyBlock = { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) })
verify(
inverse = true,
verifyBlock = { LocaleManager.resetToSystemDefault(context) })
verify(
inverse = true,
verifyBlock = { LocaleManager.updateBaseConfiguration(context, selectedLocale) })
verify(inverse = true, verifyBlock = { (context as Activity).recreate() })
}
@Test
fun `set the default locale as the new locale`() {
val selectedLocale = Locale("en", "UK")
@ -65,12 +123,15 @@ class LocaleSettingsControllerTest {
mockk()
)
mockkObject(LocaleManager)
mockkStatic("org.mozilla.fenix.settings.advanced.LocaleManagerExtensionKt")
every { LocaleManager.resetToSystemDefault(context) } just Runs
every { LocaleManager.updateBaseConfiguration(context, selectedLocale) } just Runs
controller.handleDefaultLocaleSelected()
verify { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) }
verify { LocaleManager.resetToSystemDefault(context) }
verify { LocaleManager.updateBaseConfiguration(context, selectedLocale) }
verify { (context as Activity).recreate() }
}