1 package com.android.tv.settings.system.locale 2 3 import android.os.Bundle 4 import androidx.lifecycle.ViewModelProvider 5 import com.android.internal.app.LocaleStore 6 import com.android.tv.settings.testutils.SettingsShadowActivityManager 7 import com.google.common.truth.Truth.assertThat 8 import org.junit.Test 9 import org.junit.runner.RunWith 10 import org.robolectric.RobolectricTestRunner 11 import org.robolectric.annotation.Config 12 import org.robolectric.shadows.androidx.fragment.FragmentController 13 import java.util.Locale 14 15 @RunWith(RobolectricTestRunner::class) 16 @Config(shadows = [SettingsShadowActivityManager::class]) 17 class CountryPickerFragmentTest { 18 companion object { 19 val EXTRA_PARENT_LOCALE = "PARENT_LOCALE" 20 val parentLocale = LocaleStore.fromLocale(Locale.ENGLISH) 21 } 22 23 @Test testCountrySortingnull24 fun testCountrySorting() { 25 val fragment = createCountryPickerFragment() 26 val preferenceScreen = fragment.preferenceScreen 27 assertThat(preferenceScreen.preferenceCount).isEqualTo(3) 28 assertThat(preferenceScreen.getPreference(0).title) 29 .isEqualTo(LocaleStore.fromLocale(Locale.CANADA).fullCountryNameNative) 30 assertThat(preferenceScreen.getPreference(1).title) 31 .isEqualTo(LocaleStore.fromLocale(Locale.UK).fullCountryNameNative) 32 assertThat(preferenceScreen.getPreference(2).title) 33 .isEqualTo(LocaleStore.fromLocale(Locale.US).fullCountryNameNative) 34 } 35 createCountryPickerFragmentnull36 private fun createCountryPickerFragment(): CountryPickerFragment { 37 val fragment = TestCountryPickerFragment() 38 fragment.arguments = Bundle().apply { 39 putSerializable(EXTRA_PARENT_LOCALE, parentLocale) 40 } 41 42 return FragmentController.of(fragment).create().start().get() 43 } 44 45 class TestCountryPickerFragment : CountryPickerFragment() { onCreatePreferencesnull46 override fun onCreatePreferences(savedInstanceState: Bundle?, s: String?) { 47 val viewModel = ViewModelProvider(requireActivity())[LocaleDataViewModel::class.java] 48 viewModel.mLocaleMap[parentLocale] = listOf(LocaleStore.fromLocale(Locale.UK), 49 LocaleStore.fromLocale(Locale.CANADA), LocaleStore.fromLocale(Locale.US)) 50 super.onCreatePreferences(savedInstanceState, s) 51 } 52 } 53 }