[Regional Preference] Append unicode tags to new system language.

-When the user adds a new system language, this new language can not
 have the current unicode tags. Hence, it shall append current unicode tags to the new system language.

Bug: b/268025290
Test: Manual test passed.
Test: make RunSettingsRoboTests ROBOTEST_FILTER=LocaleListEditorTest
Change-Id: I76671908ad01dcb8b04714aa3ca44d3614a0428b
This commit is contained in:
tom hsu
2023-02-06 22:24:16 +08:00
committed by Tom Hsu
parent 5a2088e232
commit d68e04ff04
2 changed files with 39 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import com.android.internal.app.LocaleStore;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
@@ -44,6 +45,8 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowAlertDialogCompat.class)
public class LocaleListEditorTest {
@@ -160,4 +163,15 @@ public class LocaleListEditorTest {
assertThat(shadowDialog.getMessage()).isNull();
}
@Test
public void mayAppendUnicodeTags_appendUnicodeTags_success() {
LocaleStore.LocaleInfo localeInfo = LocaleStore.fromLocale(Locale.forLanguageTag("en-US"));
LocaleStore.LocaleInfo result =
LocaleListEditor.mayAppendUnicodeTags(localeInfo, "und-u-fw-wed-mu-celsius");
assertThat(result.getLocale().getUnicodeLocaleType("fw")).isEqualTo("wed");
assertThat(result.getLocale().getUnicodeLocaleType("mu")).isEqualTo("celsius");
}
}