1 /*
2  * Copyright (c) 2007, 2016, 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  * @test
26  * @bug 4518811
27  * @modules jdk.localedata
28  * @summary Verifies the minimum days of the week for euro locales
29  */
30 
31 // this code is a bit brute-force, but I've been coding in nothing but Shell for the last year, so I'm rusty.
32 
33 import java.util.Locale;
34 import java.util.Calendar;
35 
36 public class Bug4518811 {
main(String [] args)37   public static void main(String [] args) {
38 
39       int totalErrors=0;
40 
41       // go through the locales
42       totalErrors += getDays("ca", "ES");
43       totalErrors += getDays("cs", "CZ");
44       totalErrors += getDays("da", "DK");
45       totalErrors += getDays("de", "AT");
46       totalErrors += getDays("el", "GR");
47       totalErrors += getDays("en", "GB");
48       totalErrors += getDays("en", "IE");
49       totalErrors += getDays("es", "ES");
50       totalErrors += getDays("et", "EE");
51       totalErrors += getDays("fi", "FI");
52       totalErrors += getDays("fr", "BE");
53       totalErrors += getDays("fr", "FR");
54       totalErrors += getDays("is", "IS");
55       totalErrors += getDays("lt", "LT");
56       totalErrors += getDays("nl", "BE");
57       totalErrors += getDays("pl", "PL");
58       totalErrors += getDays("pt", "PT");
59 
60       if (totalErrors > 0)
61           throw new RuntimeException();
62       //System.err.println("Minimal Days in First Week: "+c.getMinimalDaysInFirstWeek());
63   }
64 
getDays(String lang, String loc)65     static int getDays(String lang, String loc){
66         int errors=0;
67         Locale newlocale = new Locale(lang, loc);
68 
69         Calendar newCal = Calendar.getInstance(newlocale);
70 
71         int minDays = newCal.getMinimalDaysInFirstWeek();
72         System.out.println("The Min Days in First Week for "+ lang +"_" + loc + " is " + minDays);
73 
74         if (minDays != 4){
75             System.out.println("Warning! Should be 4, not " + minDays +"!");
76             errors++;
77         }
78         return errors;
79     }
80 }
81