summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/LocaleUtilsTest.java
blob: bc6dcc0ced2458efe77ebedd61eee5665661e78e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */

package org.mozilla.gecko.util;

import static org.junit.Assert.*;

import android.test.suitebuilder.annotation.SmallTest;
import java.util.Locale;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;

@RunWith(RobolectricTestRunner.class)
@SmallTest
public class LocaleUtilsTest {
  @Test
  public void languageTagForAcceptLanguage() {
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("zn-Hans-CN")), "zn-CN");
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("zn-Hant-TW")), "zn-TW");

    // If builder is Java 17+, Locale.getLanguage doesn't repelace with old language code.
    // But we should keep this to make things understandable.
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("id-ID")), "id-ID");
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("in-ID")), "id-ID");

    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("yi-US")), "yi-US");
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("ji-US")), "yi-US");

    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("he-IL")), "he-IL");
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(Locale.forLanguageTag("iw-IL")), "he-IL");

    // Android 14 may add extension (Bug 1873578)
    assertEquals(
        LocaleUtils.getLanguageTagForAcceptLanguage(
            Locale.forLanguageTag("en-US-u-fw-mon-mu-celsius")),
        "en-US");
  }
}