For #7559 - added unit test for same locale selected
parent
2a876d5e0f
commit
7b9f74138c
|
@ -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() }
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue