Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/util/Locale/bcp47u/CalendarTests.java
41153 views
1
/*
2
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
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
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
*
26
* @test
27
* @bug 8176841
28
* @summary Tests Calendar class deals with Unicode extensions
29
* correctly.
30
* @modules jdk.localedata
31
* @run testng/othervm CalendarTests
32
*/
33
34
import static org.testng.Assert.assertEquals;
35
36
import java.text.DateFormat;
37
import java.util.Calendar;
38
import java.util.Locale;
39
import java.util.TimeZone;
40
41
import org.testng.annotations.AfterTest;
42
import org.testng.annotations.BeforeTest;
43
import org.testng.annotations.DataProvider;
44
import org.testng.annotations.Test;
45
46
/**
47
* Test Calendar with BCP47 U extensions
48
*/
49
@Test
50
public class CalendarTests {
51
private static TimeZone defaultTZ;
52
53
private static final TimeZone ASIATOKYO = TimeZone.getTimeZone("Asia/Tokyo");
54
private static final TimeZone AMLA = TimeZone.getTimeZone("America/Los_Angeles");
55
56
private static final Locale JPTYO = Locale.forLanguageTag("en-u-tz-jptyo");
57
private static final Locale USLAX = Locale.forLanguageTag("en-u-tz-uslax");
58
59
private static final Locale FW_SUN = Locale.forLanguageTag("en-US-u-fw-sun");
60
private static final Locale FW_MON = Locale.forLanguageTag("en-US-u-fw-mon");
61
private static final Locale FW_TUE = Locale.forLanguageTag("en-US-u-fw-tue");
62
private static final Locale FW_WED = Locale.forLanguageTag("en-US-u-fw-wed");
63
private static final Locale FW_THU = Locale.forLanguageTag("en-US-u-fw-thu");
64
private static final Locale FW_FRI = Locale.forLanguageTag("en-US-u-fw-fri");
65
private static final Locale FW_SAT = Locale.forLanguageTag("en-US-u-fw-sat");
66
67
@BeforeTest
68
public void beforeTest() {
69
defaultTZ = TimeZone.getDefault();
70
TimeZone.setDefault(AMLA);
71
}
72
73
@AfterTest
74
public void afterTest() {
75
TimeZone.setDefault(defaultTZ);
76
}
77
78
@DataProvider(name="tz")
79
Object[][] tz() {
80
return new Object[][] {
81
// Locale, Expected Zone,
82
{JPTYO, ASIATOKYO},
83
{USLAX, AMLA},
84
85
// invalid
86
{Locale.forLanguageTag("en-US-u-tz-jpzzz"), AMLA}
87
};
88
}
89
90
@DataProvider(name="firstDayOfWeek")
91
Object[][] firstDayOfWeek () {
92
return new Object[][] {
93
// Locale, Expected DayOfWeek,
94
{Locale.US, Calendar.SUNDAY},
95
{FW_SUN, Calendar.SUNDAY},
96
{FW_MON, Calendar.MONDAY},
97
{FW_TUE, Calendar.TUESDAY},
98
{FW_WED, Calendar.WEDNESDAY},
99
{FW_THU, Calendar.THURSDAY},
100
{FW_FRI, Calendar.FRIDAY},
101
{FW_SAT, Calendar.SATURDAY},
102
103
// invalid case
104
{Locale.forLanguageTag("en-US-u-fw-xxx"), Calendar.SUNDAY},
105
106
// region override
107
{Locale.forLanguageTag("en-US-u-rg-gbzzzz"), Calendar.MONDAY},
108
{Locale.forLanguageTag("zh-CN-u-rg-eszzzz"), Calendar.MONDAY},
109
110
// "fw" and "rg".
111
{Locale.forLanguageTag("en-US-u-fw-wed-rg-gbzzzz"), Calendar.WEDNESDAY},
112
{Locale.forLanguageTag("en-US-u-fw-xxx-rg-gbzzzz"), Calendar.MONDAY},
113
{Locale.forLanguageTag("en-US-u-fw-xxx-rg-zzzz"), Calendar.SUNDAY},
114
};
115
}
116
117
@DataProvider(name="minDaysInFirstWeek")
118
Object[][] minDaysInFrstWeek () {
119
return new Object[][] {
120
// Locale, Expected minDay,
121
{Locale.US, 1},
122
123
// region override
124
{Locale.forLanguageTag("en-US-u-rg-gbzzzz"), 4},
125
{Locale.forLanguageTag("zh-CN-u-rg-eszzzz"), 4},
126
};
127
}
128
129
@Test(dataProvider="tz")
130
public void test_tz(Locale locale, TimeZone zoneExpected) {
131
DateFormat df = DateFormat.getTimeInstance(DateFormat.FULL, locale);
132
assertEquals(df.getTimeZone(), zoneExpected);
133
134
Calendar c = Calendar.getInstance(locale);
135
assertEquals(c.getTimeZone(), zoneExpected);
136
137
c = new Calendar.Builder().setLocale(locale).build();
138
assertEquals(c.getTimeZone(), zoneExpected);
139
}
140
141
@Test(dataProvider="firstDayOfWeek")
142
public void test_firstDayOfWeek(Locale locale, int dowExpected) {
143
Calendar c = Calendar.getInstance(locale);
144
assertEquals(c.getFirstDayOfWeek(), dowExpected);
145
146
c = new Calendar.Builder().setLocale(locale).build();
147
assertEquals(c.getFirstDayOfWeek(), dowExpected);
148
}
149
150
@Test(dataProvider="minDaysInFirstWeek")
151
public void test_minDaysInFirstWeek(Locale locale, int minDaysExpected) {
152
Calendar c = Calendar.getInstance(locale);
153
assertEquals(c.getMinimalDaysInFirstWeek(), minDaysExpected);
154
155
c = new Calendar.Builder().setLocale(locale).build();
156
assertEquals(c.getMinimalDaysInFirstWeek(), minDaysExpected);
157
}
158
}
159
160