test/jdk/java/util/Locale/bcp47u/DisplayNameTests.java
author naoto
Tue, 12 Dec 2017 10:21:58 -0800
changeset 48251 57148c79bd75
child 50576 374bd919d8fe
permissions -rw-r--r--
8176841: Additional Unicode Language-Tag Extensions 8189134: New system properties for the default Locale extensions 8190918: Retrieve the region specific data regardless of language in locale 8191349: Add a new method in j.t.f.DateTimeFormatter to reflect Unicode extensions Reviewed-by: scolebourne, lancea, rriggs, rgoel, nishjain
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48251
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     1
/*
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     2
 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     4
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     7
 * published by the Free Software Foundation.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     8
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    13
 * accompanied this code).
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    14
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    18
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    21
 * questions.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    22
 */
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    23
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    24
/*
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    25
 *
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    26
 * @test
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    27
 * @bug 8176841
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    28
 * @summary Tests the display names for BCP 47 U extensions
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    29
 * @modules jdk.localedata
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    30
 * @run testng/othervm -Djava.locale.providers=CLDR DisplayNameTests
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    31
 */
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    32
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    33
import static org.testng.Assert.assertEquals;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    34
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    35
import java.util.Locale;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    36
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    37
import org.testng.annotations.DataProvider;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    38
import org.testng.annotations.Test;
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    39
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    40
/**
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    41
 * Test Locale.getDisplayName() with BCP47 U extensions. Note that the
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    42
 * result may change depending on the CLDR releases.
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    43
 */
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    44
@Test
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    45
public class DisplayNameTests {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    46
    private static final Locale loc1 = Locale.forLanguageTag("en-Latn-US-u" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    47
                                                             "-ca-japanese" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    48
                                                             "-cf-account" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    49
                                                             "-co-pinyin" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    50
                                                             "-cu-jpy" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    51
                                                             "-em-emoji" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    52
                                                             "-fw-wed" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    53
                                                             "-hc-h23" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    54
                                                             "-lb-loose" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    55
                                                             "-lw-breakall" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    56
                                                             "-ms-uksystem" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    57
                                                             "-nu-roman" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    58
                                                             "-rg-gbzzzz" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    59
                                                             "-sd-gbsct" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    60
                                                             "-ss-standard" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    61
                                                             "-tz-jptyo" +
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    62
                                                             "-va-posix");
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    63
    private static final Locale loc2 = new Locale("ja", "JP", "JP");
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    64
    private static final Locale loc3 = new Locale.Builder()
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    65
                                            .setRegion("US")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    66
                                            .setScript("Latn")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    67
                                            .setUnicodeLocaleKeyword("ca", "japanese")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    68
                                            .build();
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    69
    private static final Locale loc4 = new Locale.Builder()
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    70
                                            .setRegion("US")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    71
                                            .setUnicodeLocaleKeyword("ca", "japanese")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    72
                                            .build();
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    73
    private static final Locale loc5 = new Locale.Builder()
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    74
                                            .setUnicodeLocaleKeyword("ca", "japanese")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    75
                                            .build();
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    76
    private static final Locale loc6 = Locale.forLanguageTag( "zh-CN-u-ca-dddd-nu-ddd-cu-ddd-fw-moq-tz-unknown-rg-twzz");
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    77
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    78
    @DataProvider(name="locales")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    79
    Object[][] tz() {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    80
        return new Object[][] {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    81
            // Locale for display, Test Locale, Expected output,
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    82
            {Locale.US, loc1,
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    83
            "English (Latin, United States, Japanese Calendar, Accounting Currency Format, Pinyin Sort Order, Currency: Japanese Yen, Prefer Emoji Presentation For Emoji Characters, First Day of Week Is Wednesday, 24 Hour System (0\u201323), Loose Line Break Style, Allow Line Breaks In All Words, Imperial Measurement System, Roman Numerals, Region For Supplemental Data: United Kingdom, Region Subdivision: gbsct, Suppress Sentence Breaks After Standard Abbreviations, Time Zone: Japan Time, POSIX Compliant Locale)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    84
            {Locale.JAPAN, loc1,
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    85
            "\u82f1\u8a9e (\u30e9\u30c6\u30f3\u6587\u5b57\u3001\u30a2\u30e1\u30ea\u30ab\u5408\u8846\u56fd\u3001\u548c\u66a6\u3001cf: account\u3001\u30d4\u30f3\u30a4\u30f3\u9806\u3001\u901a\u8ca8: \u65e5\u672c\u5186\u3001em: emoji\u3001fw: wed\u300124\u6642\u9593\u5236(0\u301c23)\u3001\u7981\u5247\u51e6\u7406(\u5f31)\u3001lw: breakall\u3001\u30e4\u30fc\u30c9\u30fb\u30dd\u30f3\u30c9\u6cd5\u3001\u30ed\u30fc\u30de\u6570\u5b57\u3001rg: \u30a4\u30ae\u30ea\u30b9\u3001sd: gbsct\u3001ss: standard\u3001\u30bf\u30a4\u30e0\u30be\u30fc\u30f3: \u65e5\u672c\u6642\u9593\u3001\u30ed\u30b1\u30fc\u30eb\u306e\u30d0\u30ea\u30a2\u30f3\u30c8: posix)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    86
            {Locale.forLanguageTag("hi-IN"), loc1,
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    87
            "\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 (\u0932\u0948\u091f\u093f\u0928, \u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f, \u091c\u093e\u092a\u093e\u0928\u0940 \u092a\u0902\u091a\u093e\u0902\u0917, cf: account, \u092a\u093f\u0928\u092f\u0940\u0928 \u0935\u0930\u094d\u0917\u0940\u0915\u0930\u0923, \u092e\u0941\u0926\u094d\u0930\u093e: \u091c\u093e\u092a\u093e\u0928\u0940 \u092f\u0947\u0928, em: emoji, fw: wed, 24 \u0918\u0902\u091f\u094b\u0902 \u0915\u0940 \u092a\u094d\u0930\u0923\u093e\u0932\u0940 (0\u201323), \u0922\u0940\u0932\u0940 \u092a\u0902\u0915\u094d\u0924\u093f \u0935\u093f\u091a\u094d\u091b\u0947\u0926 \u0936\u0948\u0932\u0940, lw: breakall, \u0907\u092e\u094d\u092a\u0940\u0930\u093f\u092f\u0932 \u092e\u093e\u092a\u0928 \u092a\u094d\u0930\u0923\u093e\u0932\u0940, \u0930\u094b\u092e\u0928 \u0938\u0902\u0916\u094d\u092f\u093e\u090f\u0901, rg: \u092f\u0942\u0928\u093e\u0907\u091f\u0947\u0921 \u0915\u093f\u0902\u0917\u0921\u092e, sd: gbsct, ss: standard, \u0938\u092e\u092f \u0915\u094d\u0937\u0947\u0924\u094d\u0930: \u091c\u093e\u092a\u093e\u0928 \u0938\u092e\u092f, \u0938\u094d\u0925\u093e\u0928\u0940\u092f \u092a\u094d\u0930\u0915\u093e\u0930: posix)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    88
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    89
            // cases where no localized types are available. fall back to "key: type"
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    90
            {Locale.US, Locale.forLanguageTag("en-u-ca-unknown"), "English (Calendar: unknown)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    91
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    92
            // cases with variant, w/o language, script
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    93
            {Locale.US, loc2, "Japanese (Japan, JP, Japanese Calendar)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    94
            {Locale.US, loc3, "Latin (United States, Japanese Calendar)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    95
            {Locale.US, loc4, "United States (Japanese Calendar)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    96
            {Locale.US, loc5, ""},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    97
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    98
            // invalid cases
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
    99
            {loc6, loc6, "\u4e2d\u6587 (\u4e2d\u56fd\u3001\u65e5\u5386\uff1adddd\u3001\u8d27\u5e01\uff1addd\u3001fw\uff1amoq\u3001\u6570\u5b57\uff1addd\u3001rg\uff1atwzz\u3001\u65f6\u533a\uff1aunknown)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   100
            {Locale.US, loc6, "Chinese (China, Calendar: dddd, Currency: ddd, First day of week: moq, Numbers: ddd, Region For Supplemental Data: twzz, Time Zone: unknown)"},
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   101
        };
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   102
    }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   103
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   104
    @Test(dataProvider="locales")
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   105
    public void test_locales(Locale inLocale, Locale testLocale, String expected) {
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   106
        String result = testLocale.getDisplayName(inLocale);
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   107
        assertEquals(result, expected);
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   108
    }
57148c79bd75 8176841: Additional Unicode Language-Tag Extensions
naoto
parents:
diff changeset
   109
}