1 /* |
1 /* |
2 * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 |
23 |
24 /* |
24 /* |
25 * @test |
25 * @test |
26 * @bug 8040211 8191404 |
26 * @bug 8040211 8191404 8203872 |
27 * @summary Checks the IANA language subtag registry data updation |
27 * @summary Checks the IANA language subtag registry data update |
28 * (LSR Revision: 2017-08-15) with Locale and Locale.LanguageRange |
28 * (LSR Revision: 2018-04-23) 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; |
65 } |
65 } |
66 |
66 |
67 private static void test_parse() { |
67 private static void test_parse() { |
68 boolean error = false; |
68 boolean error = false; |
69 String str = "Accept-Language: aam, adp, aue, bcg, cqu, ema," |
69 String str = "Accept-Language: aam, adp, aue, bcg, cqu, ema," |
70 + " en-gb-oed, gti, koj, kwq, kxe, lii, lmm, mtm, ngv," |
70 + " en-gb-oed, gti, kdz, koj, kwq, kxe, lii, lmm, mtm, ngv," |
71 + " oyb, phr, pub, suj, taj;q=0.9, yug;q=0.5, gfx;q=0.4"; |
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<>(); |
72 ArrayList<LanguageRange> expected = new ArrayList<>(); |
73 expected.add(new LanguageRange("aam", 1.0)); |
73 expected.add(new LanguageRange("aam", 1.0)); |
74 expected.add(new LanguageRange("aas", 1.0)); |
74 expected.add(new LanguageRange("aas", 1.0)); |
75 expected.add(new LanguageRange("adp", 1.0)); |
75 expected.add(new LanguageRange("adp", 1.0)); |
76 expected.add(new LanguageRange("dz", 1.0)); |
76 expected.add(new LanguageRange("dz", 1.0)); |
84 expected.add(new LanguageRange("uok", 1.0)); |
84 expected.add(new LanguageRange("uok", 1.0)); |
85 expected.add(new LanguageRange("en-gb-oed", 1.0)); |
85 expected.add(new LanguageRange("en-gb-oed", 1.0)); |
86 expected.add(new LanguageRange("en-gb-oxendict", 1.0)); |
86 expected.add(new LanguageRange("en-gb-oxendict", 1.0)); |
87 expected.add(new LanguageRange("gti", 1.0)); |
87 expected.add(new LanguageRange("gti", 1.0)); |
88 expected.add(new LanguageRange("nyc", 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)); |
89 expected.add(new LanguageRange("koj", 1.0)); |
91 expected.add(new LanguageRange("koj", 1.0)); |
90 expected.add(new LanguageRange("kwv", 1.0)); |
92 expected.add(new LanguageRange("kwv", 1.0)); |
91 expected.add(new LanguageRange("kwq", 1.0)); |
93 expected.add(new LanguageRange("kwq", 1.0)); |
92 expected.add(new LanguageRange("yam", 1.0)); |
94 expected.add(new LanguageRange("yam", 1.0)); |
93 expected.add(new LanguageRange("kxe", 1.0)); |
95 expected.add(new LanguageRange("kxe", 1.0)); |
110 expected.add(new LanguageRange("puz", 1.0)); |
112 expected.add(new LanguageRange("puz", 1.0)); |
111 expected.add(new LanguageRange("suj", 1.0)); |
113 expected.add(new LanguageRange("suj", 1.0)); |
112 expected.add(new LanguageRange("xsj", 1.0)); |
114 expected.add(new LanguageRange("xsj", 1.0)); |
113 expected.add(new LanguageRange("taj", 0.9)); |
115 expected.add(new LanguageRange("taj", 0.9)); |
114 expected.add(new LanguageRange("tsf", 0.9)); |
116 expected.add(new LanguageRange("tsf", 0.9)); |
|
117 expected.add(new LanguageRange("ar-hyw", 0.8)); |
|
118 expected.add(new LanguageRange("ar-arevmda", 0.8)); |
115 expected.add(new LanguageRange("yug", 0.5)); |
119 expected.add(new LanguageRange("yug", 0.5)); |
116 expected.add(new LanguageRange("yuu", 0.5)); |
120 expected.add(new LanguageRange("yuu", 0.5)); |
117 expected.add(new LanguageRange("gfx", 0.4)); |
121 expected.add(new LanguageRange("gfx", 0.4)); |
118 expected.add(new LanguageRange("oun", 0.4)); |
122 expected.add(new LanguageRange("oun", 0.4)); |
119 expected.add(new LanguageRange("mwj", 0.4)); |
123 expected.add(new LanguageRange("mwj", 0.4)); |
174 } |
178 } |
175 |
179 |
176 private static void test_filter() { |
180 private static void test_filter() { |
177 boolean error = false; |
181 boolean error = false; |
178 |
182 |
179 String ranges = "mtm-RU, en-gb-oed, coy"; |
183 String ranges = "mtm-RU, en-gb-oed, coy, ar-HY"; |
180 String tags = "de-DE, en, mtm-RU, ymt-RU, en-gb-oxendict, ja-JP, pij, nts"; |
184 String tags = "de-DE, en, mtm-RU, ymt-RU, en-gb-oxendict, ja-JP, pij, nts, ar-arevela"; |
181 FilteringMode mode = EXTENDED_FILTERING; |
185 FilteringMode mode = EXTENDED_FILTERING; |
182 |
186 |
183 List<LanguageRange> priorityList = LanguageRange.parse(ranges); |
187 List<LanguageRange> priorityList = LanguageRange.parse(ranges); |
184 List<Locale> tagList = generateLocales(tags); |
188 List<Locale> tagList = generateLocales(tags); |
185 String actualLocales |
189 String actualLocales |
186 = showLocales(Locale.filter(priorityList, tagList, mode)); |
190 = showLocales(Locale.filter(priorityList, tagList, mode)); |
187 String expectedLocales = "mtm-RU, ymt-RU, en-GB-oxendict, nts, pij"; |
191 String expectedLocales = "mtm-RU, ymt-RU, en-GB-oxendict, nts, pij, ar-arevela"; |
188 |
192 |
189 if (!expectedLocales.equals(actualLocales)) { |
193 if (!expectedLocales.equals(actualLocales)) { |
190 error = true; |
194 error = true; |
191 showErrorMessage("#1 filter(" + mode + ")", |
195 showErrorMessage("#1 filter(" + mode + ")", |
192 ranges, tags, expectedLocales, actualLocales); |
196 ranges, tags, expectedLocales, actualLocales); |