tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 02679476ca2ac52172cca6b336cf87fbcce76bf3
parent 2e4fd6c92d3b3ce04f1b7e86ce49070d7f0da011
Author: mcarare <48995920+mcarare@users.noreply.github.com>
Date:   Mon,  3 Nov 2025 14:15:01 +0000

Bug 1997888 - Use real LocaleManager in tests. r=android-reviewers,giorga

This patch refactors `LocaleManagerExtensionTest` to use a real `LocaleManager` instance instead of mocks. This provides more realistic test coverage.

Differential Revision: https://phabricator.services.mozilla.com/D271059

Diffstat:
Mmobile/android/android-components/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleManager.kt | 12++++++++++--
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/advanced/LocaleManagerExtensionTest.kt | 22+++++++++++-----------
2 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/mobile/android/android-components/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleManager.kt b/mobile/android/android-components/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleManager.kt @@ -9,9 +9,11 @@ import android.content.Context import android.content.SharedPreferences import android.content.res.Configuration import android.content.res.Resources -import androidx.appcompat.app.AppCompatActivity +import androidx.annotation.VisibleForTesting import androidx.core.content.edit import androidx.core.os.ConfigurationCompat +import mozilla.components.support.locale.LocaleManager.getCurrentLocale +import mozilla.components.support.locale.LocaleManager.setNewLocale import java.util.Locale import mozilla.components.support.base.R as supportBaseR @@ -106,7 +108,13 @@ object LocaleManager { Locale.setDefault(locale) } - internal fun clear(context: Context) { + /** + * Clears the stored locale preference. + * + * @param context The [Context] used to access SharedPreferences. + */ + @VisibleForTesting + fun clear(context: Context) { Storage.clear(context) } diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/advanced/LocaleManagerExtensionTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/advanced/LocaleManagerExtensionTest.kt @@ -5,10 +5,9 @@ package org.mozilla.fenix.settings.advanced import android.content.Context -import io.mockk.every -import io.mockk.mockk -import io.mockk.mockkObject import mozilla.components.support.locale.LocaleManager +import mozilla.components.support.test.robolectric.testContext +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue @@ -27,8 +26,13 @@ class LocaleManagerExtensionTest { @Before fun setup() { - context = mockk() - mockkObject(LocaleManager) + context = testContext + LocaleManager.clear(context) + } + + @After + fun tearDown() { + LocaleManager.clear(context) } @Test @@ -46,8 +50,6 @@ class LocaleManagerExtensionTest { @Test @Config(qualifiers = "en-rUS") fun `default locale selected`() { - every { LocaleManager.getCurrentLocale(context) } returns null - assertTrue(LocaleManager.isDefaultLocaleSelected(context)) } @@ -55,7 +57,7 @@ class LocaleManagerExtensionTest { @Config(qualifiers = "en-rUS") fun `custom locale selected`() { val selectedLocale = Locale.Builder().setLanguage("en").setRegion("UK").build() - every { LocaleManager.getCurrentLocale(context) } returns selectedLocale + LocaleManager.setNewLocale(context, locale = selectedLocale) assertFalse(LocaleManager.isDefaultLocaleSelected(context)) } @@ -67,7 +69,7 @@ class LocaleManagerExtensionTest { val selectedLocale = Locale.Builder().setLanguage("en").setRegion("UK").build() val localeList = listOf(otherLocale, selectedLocale) - every { LocaleManager.getCurrentLocale(context) } returns selectedLocale + LocaleManager.setNewLocale(context, locale = selectedLocale) assertEquals(selectedLocale, LocaleManager.getSelectedLocale(context, localeList)) } @@ -79,8 +81,6 @@ class LocaleManagerExtensionTest { val secondLocale = Locale.Builder().setLanguage("en").setRegion("UK").build() val localeList = listOf(firstLocale, secondLocale) - every { LocaleManager.getCurrentLocale(context) } returns null - assertEquals("en-US", LocaleManager.getSelectedLocale(context, localeList).toLanguageTag()) } }