Skip to content

Commit d70b542

Browse files
committed
add tests for language preference change handling with application locales
1 parent afbf046 commit d70b542

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

app/src/test/kotlin/com/vrem/wifianalyzer/MainActivityTest.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import android.content.SharedPreferences
2121
import android.os.Build
2222
import android.view.Menu
2323
import android.view.MenuItem
24+
import androidx.appcompat.app.AppCompatDelegate
2425
import androidx.test.ext.junit.runners.AndroidJUnit4
2526
import com.google.android.material.navigation.NavigationView
2627
import com.vrem.util.EMPTY
@@ -239,6 +240,32 @@ class MainActivityTest {
239240
verify(scannerService).update()
240241
}
241242

243+
@Test
244+
fun onSharedPreferenceChangedWithLanguageKeyShouldSetApplicationLocales() {
245+
// setup
246+
val sharedPreferences: SharedPreferences = mock()
247+
val languageKey = fixture.getString(R.string.language_key)
248+
val languageTag = "en"
249+
whenever(sharedPreferences.getString(languageKey, "")).thenReturn(languageTag)
250+
// execute
251+
fixture.onSharedPreferenceChanged(sharedPreferences, languageKey)
252+
// validate
253+
assertThat(AppCompatDelegate.getApplicationLocales().toLanguageTags()).isEqualTo(languageTag)
254+
}
255+
256+
@Test
257+
fun onSharedPreferenceChangedWithLanguageKeyAndEmptyTagShouldSetEmptyLocales() {
258+
// setup
259+
val sharedPreferences: SharedPreferences = mock()
260+
val languageKey = fixture.getString(R.string.language_key)
261+
val languageTag = ""
262+
whenever(sharedPreferences.getString(languageKey, "")).thenReturn(languageTag)
263+
// execute
264+
fixture.onSharedPreferenceChanged(sharedPreferences, languageKey)
265+
// validate
266+
assertThat(AppCompatDelegate.getApplicationLocales().isEmpty).isTrue()
267+
}
268+
242269
@Test
243270
fun optionMenu() {
244271
// execute

0 commit comments

Comments
 (0)