test/jdk/java/util/Locale/Bug8040211.java
changeset 58568 6c1f645bd601
parent 54636 515568d2e85c
equal deleted inserted replaced
58566:afbb7ec84228 58568:6c1f645bd601
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25  * @test
    25  * @test
    26  * @bug 8040211 8191404 8203872 8222980
    26  * @bug 8040211 8191404 8203872 8222980 8225435
    27  * @summary Checks the IANA language subtag registry data update
    27  * @summary Checks the IANA language subtag registry data update
    28  *          (LSR Revision: 2019-04-03) with Locale and Locale.LanguageRange
    28  *          (LSR Revision: 2019-09-16) with Locale and Locale.LanguageRange
    29  *          class methods.
    29  *          class methods.
    30  * @run main Bug8040211
    30  * @run main Bug8040211
    31  */
    31  */
    32 
    32 
    33 import java.util.ArrayList;
    33 import java.util.ArrayList;
    40 
    40 
    41 public class Bug8040211 {
    41 public class Bug8040211 {
    42 
    42 
    43     static boolean err = false;
    43     static boolean err = false;
    44 
    44 
       
    45     private static final String ACCEPT_LANGUAGE =
       
    46         "Accept-Language: aam, adp, aog, aue, bcg, cey, cqu, dif, ema,"
       
    47         + " en-gb-oed, gti, kdz, koj, kwq, kxe, lii, lmm, lsn, lsv, lvi, mtm,"
       
    48         + " ngv, nns, oyb, phr, pnd, pub, snz, suj, szy,taj, tjj, tjp, tvx,"
       
    49         + " uss, uth, wkr;q=0.9, ar-hyw;q=0.8, yug;q=0.5, gfx;q=0.4";
       
    50     private static final List<LanguageRange> EXPECTED_RANGE_LIST = List.of(
       
    51             new LanguageRange("aam", 1.0),
       
    52             new LanguageRange("aas", 1.0),
       
    53             new LanguageRange("adp", 1.0),
       
    54             new LanguageRange("dz", 1.0),
       
    55             new LanguageRange("aog", 1.0),
       
    56             new LanguageRange("myd", 1.0),
       
    57             new LanguageRange("aue", 1.0),
       
    58             new LanguageRange("ktz", 1.0),
       
    59             new LanguageRange("bcg", 1.0),
       
    60             new LanguageRange("bgm", 1.0),
       
    61             new LanguageRange("cey", 1.0),
       
    62             new LanguageRange("cqu", 1.0),
       
    63             new LanguageRange("quh", 1.0),
       
    64             new LanguageRange("dif", 1.0),
       
    65             new LanguageRange("dit", 1.0),
       
    66             new LanguageRange("ema", 1.0),
       
    67             new LanguageRange("uok", 1.0),
       
    68             new LanguageRange("en-gb-oed", 1.0),
       
    69             new LanguageRange("en-gb-oxendict", 1.0),
       
    70             new LanguageRange("gti", 1.0),
       
    71             new LanguageRange("nyc", 1.0),
       
    72             new LanguageRange("kdz", 1.0),
       
    73             new LanguageRange("ncp", 1.0),
       
    74             new LanguageRange("koj", 1.0),
       
    75             new LanguageRange("kwv", 1.0),
       
    76             new LanguageRange("kwq", 1.0),
       
    77             new LanguageRange("yam", 1.0),
       
    78             new LanguageRange("kxe", 1.0),
       
    79             new LanguageRange("tvd", 1.0),
       
    80             new LanguageRange("lii", 1.0),
       
    81             new LanguageRange("raq", 1.0),
       
    82             new LanguageRange("lmm", 1.0),
       
    83             new LanguageRange("rmx", 1.0),
       
    84             new LanguageRange("lsn", 1.0),
       
    85             new LanguageRange("lsv", 1.0),
       
    86             new LanguageRange("lvi", 1.0),
       
    87             new LanguageRange("mtm", 1.0),
       
    88             new LanguageRange("ymt", 1.0),
       
    89             new LanguageRange("ngv", 1.0),
       
    90             new LanguageRange("nnx", 1.0),
       
    91             new LanguageRange("nns", 1.0),
       
    92             new LanguageRange("nbr", 1.0),
       
    93             new LanguageRange("oyb", 1.0),
       
    94             new LanguageRange("thx", 1.0),
       
    95             new LanguageRange("skk", 1.0),
       
    96             new LanguageRange("jeg", 1.0),
       
    97             new LanguageRange("phr", 1.0),
       
    98             new LanguageRange("pmu", 1.0),
       
    99             new LanguageRange("pnd", 1.0),
       
   100             new LanguageRange("pub", 1.0),
       
   101             new LanguageRange("puz", 1.0),
       
   102             new LanguageRange("snz", 1.0),
       
   103             new LanguageRange("asd", 1.0),
       
   104             new LanguageRange("suj", 1.0),
       
   105             new LanguageRange("szy", 1.0),
       
   106             new LanguageRange("taj", 1.0),
       
   107             new LanguageRange("tsf", 1.0),
       
   108             new LanguageRange("tjj", 1.0),
       
   109             new LanguageRange("tjp", 1.0),
       
   110             new LanguageRange("tvx", 1.0),
       
   111             new LanguageRange("uss", 1.0),
       
   112             new LanguageRange("uth", 1.0),
       
   113             new LanguageRange("wkr", 0.9),
       
   114             new LanguageRange("ar-hyw", 0.8),
       
   115             new LanguageRange("yug", 0.5),
       
   116             new LanguageRange("yuu", 0.5),
       
   117             new LanguageRange("gfx", 0.4),
       
   118             new LanguageRange("oun", 0.4),
       
   119             new LanguageRange("mwj", 0.4),
       
   120             new LanguageRange("vaj", 0.4)
       
   121         );
       
   122 
    45     public static void main(String[] args) {
   123     public static void main(String[] args) {
    46         testLanguageRange();
   124         testLanguageRange();
    47         testLocale();
   125         testLocale();
    48 
   126 
    49         if (err) {
   127         if (err) {
    64         test_lookupTag();
   142         test_lookupTag();
    65     }
   143     }
    66 
   144 
    67     private static void test_parse() {
   145     private static void test_parse() {
    68         boolean error = false;
   146         boolean error = false;
    69         String str = "Accept-Language: aam, adp, aue, bcg, cqu, ema,"
   147         List<LanguageRange> got = LanguageRange.parse(ACCEPT_LANGUAGE);
    70                 + " en-gb-oed, gti, kdz, koj, kwq, kxe, lii, lmm, mtm, ngv,"
   148         if (!areEqual(EXPECTED_RANGE_LIST, got)) {
    71                 + " oyb, phr, pub, suj, taj;q=0.9, ar-hyw;q=0.8, yug;q=0.5, gfx;q=0.4";
       
    72         ArrayList<LanguageRange> expected = new ArrayList<>();
       
    73         expected.add(new LanguageRange("aam", 1.0));
       
    74         expected.add(new LanguageRange("aas", 1.0));
       
    75         expected.add(new LanguageRange("adp", 1.0));
       
    76         expected.add(new LanguageRange("dz", 1.0));
       
    77         expected.add(new LanguageRange("aue", 1.0));
       
    78         expected.add(new LanguageRange("ktz", 1.0));
       
    79         expected.add(new LanguageRange("bcg", 1.0));
       
    80         expected.add(new LanguageRange("bgm", 1.0));
       
    81         expected.add(new LanguageRange("cqu", 1.0));
       
    82         expected.add(new LanguageRange("quh", 1.0));
       
    83         expected.add(new LanguageRange("ema", 1.0));
       
    84         expected.add(new LanguageRange("uok", 1.0));
       
    85         expected.add(new LanguageRange("en-gb-oed", 1.0));
       
    86         expected.add(new LanguageRange("en-gb-oxendict", 1.0));
       
    87         expected.add(new LanguageRange("gti", 1.0));
       
    88         expected.add(new LanguageRange("nyc", 1.0));
       
    89         expected.add(new LanguageRange("kdz", 1.0));
       
    90         expected.add(new LanguageRange("ncp", 1.0));
       
    91         expected.add(new LanguageRange("koj", 1.0));
       
    92         expected.add(new LanguageRange("kwv", 1.0));
       
    93         expected.add(new LanguageRange("kwq", 1.0));
       
    94         expected.add(new LanguageRange("yam", 1.0));
       
    95         expected.add(new LanguageRange("kxe", 1.0));
       
    96         expected.add(new LanguageRange("tvd", 1.0));
       
    97         expected.add(new LanguageRange("lii", 1.0));
       
    98         expected.add(new LanguageRange("raq", 1.0));
       
    99         expected.add(new LanguageRange("lmm", 1.0));
       
   100         expected.add(new LanguageRange("rmx", 1.0));
       
   101         expected.add(new LanguageRange("mtm", 1.0));
       
   102         expected.add(new LanguageRange("ymt", 1.0));
       
   103         expected.add(new LanguageRange("ngv", 1.0));
       
   104         expected.add(new LanguageRange("nnx", 1.0));
       
   105         expected.add(new LanguageRange("oyb", 1.0));
       
   106         expected.add(new LanguageRange("thx", 1.0));
       
   107         expected.add(new LanguageRange("skk", 1.0));
       
   108         expected.add(new LanguageRange("jeg", 1.0));
       
   109         expected.add(new LanguageRange("phr", 1.0));
       
   110         expected.add(new LanguageRange("pmu", 1.0));
       
   111         expected.add(new LanguageRange("pub", 1.0));
       
   112         expected.add(new LanguageRange("puz", 1.0));
       
   113         expected.add(new LanguageRange("suj", 1.0));
       
   114         expected.add(new LanguageRange("xsj", 1.0));
       
   115         expected.add(new LanguageRange("taj", 0.9));
       
   116         expected.add(new LanguageRange("tsf", 0.9));
       
   117         expected.add(new LanguageRange("ar-hyw", 0.8));
       
   118         expected.add(new LanguageRange("yug", 0.5));
       
   119         expected.add(new LanguageRange("yuu", 0.5));
       
   120         expected.add(new LanguageRange("gfx", 0.4));
       
   121         expected.add(new LanguageRange("oun", 0.4));
       
   122         expected.add(new LanguageRange("mwj", 0.4));
       
   123         expected.add(new LanguageRange("vaj", 0.4));
       
   124         List<LanguageRange> got = LanguageRange.parse(str);
       
   125         if (!areEqual(expected, got)) {
       
   126             error = true;
   149             error = true;
   127             System.err.println("    language parse() test failed.");
   150             System.err.println("    language parse() test failed.");
   128         }
   151         }
   129 
   152 
   130         if (error) {
   153         if (error) {
   131             err = true;
   154             err = true;
   132             System.err.println("  test_parse() failed.");
   155             System.out.println("  test_parse() failed.");
   133         } else {
   156         } else {
   134             System.out.println("  test_parse() passed.");
   157             System.out.println("  test_parse() passed.");
   135         }
   158         }
   136 
   159 
   137     }
   160     }
   150             for (LanguageRange lr : expected) {
   173             for (LanguageRange lr : expected) {
   151                 System.err.println("    range=" + lr.getRange()
   174                 System.err.println("    range=" + lr.getRange()
   152                         + ", weight=" + lr.getWeight());
   175                         + ", weight=" + lr.getWeight());
   153             }
   176             }
   154 
   177 
   155             System.out.println("  Actual size=" + actualSize);
   178             System.err.println("  Actual size=" + actualSize);
   156             for (LanguageRange lr : got) {
   179             for (LanguageRange lr : got) {
   157                 System.err.println("    range=" + lr.getRange()
   180                 System.err.println("    range=" + lr.getRange()
   158                         + ", weight=" + lr.getWeight());
   181                         + ", weight=" + lr.getWeight());
   159             }
   182             }
   160         } else {
   183         } else {
   349     private static void showErrorMessage(String methodName,
   372     private static void showErrorMessage(String methodName,
   350             String priorityList,
   373             String priorityList,
   351             String tags,
   374             String tags,
   352             String expectedTags,
   375             String expectedTags,
   353             String actualTags) {
   376             String actualTags) {
   354         System.out.println("\nIncorrect " + methodName + " result.");
   377         System.err.println("\nIncorrect " + methodName + " result.");
   355         System.out.println("  Priority list  :  " + priorityList);
   378         System.err.println("  Priority list  :  " + priorityList);
   356         System.out.println("  Language tags  :  " + tags);
   379         System.err.println("  Language tags  :  " + tags);
   357         System.out.println("  Expected value : " + expectedTags);
   380         System.err.println("  Expected value : " + expectedTags);
   358         System.out.println("  Actual value   : " + actualTags);
   381         System.err.println("  Actual value   : " + actualTags);
   359     }
   382     }
   360 
   383 
   361 }
   384 }
   362 
   385