1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the License.  You may obtain a copy of the License at
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Locale;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class LocaleTest extends junit.framework.TestCase {
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    Locale testLocale;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    Locale l;
31f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    Locale defaultLocale;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
35229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#Locale(java.lang.String, java.lang.String)
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_lang_String() {
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Locale(java.lang.String)
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale x = new Locale("xx");
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Failed to create Locale", x.getVariant().equals(""));
41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new Locale(null);
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
51229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#Locale(java.lang.String, java.lang.String)
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_lang_StringLjava_lang_String() {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Locale(java.lang.String, java.lang.String)
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale x = new Locale("xx", "CV");
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Failed to create Locale", x.getCountry().equals("CV")
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                && x.getVariant().equals(""));
58f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new Locale("xx", null);
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
65f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new Locale(null, "CV");
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
75229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#Locale(java.lang.String, java.lang.String,
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        java.lang.String)
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_lang_StringLjava_lang_StringLjava_lang_String() {
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Locale(java.lang.String, java.lang.String,
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.String)
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale x = new Locale("xx", "CV", "ZZ");
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Failed to create Locale", x.getLanguage().equals("xx")
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                && (x.getCountry().equals("CV") && x.getVariant().equals("ZZ")));
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
85ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            new Locale(null, "CV", "ZZ");
86ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            fail("expected NullPointerException with 1st parameter == null");
87ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        } catch (NullPointerException e) {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
91ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            new Locale("xx", null, "ZZ");
92ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            fail("expected NullPointerException with 2nd parameter == null");
93ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        } catch (NullPointerException e) {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
97ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            new Locale("xx", "CV", null);
98ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            fail("expected NullPointerException with 3rd parameter == null");
99ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        } catch (NullPointerException e) {
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
104229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#clone()
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clone() {
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object java.util.Locale.clone()
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Clone failed", l.clone().equals(l));
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
112229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#equals(java.lang.Object)
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_equalsLjava_lang_Object() {
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.Locale.equals(java.lang.Object)
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale l2 = new Locale("en", "CA", "WIN32");
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Same object returned false", testLocale.equals(testLocale));
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Same values returned false", testLocale.equals(l2));
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Different locales returned true", !testLocale.equals(l));
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
124229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getAvailableLocales()
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getAvailableLocales() {
1275d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer// BEGIN Android-changed
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Locale []
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.Locale.getAvailableLocales()
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Assumes there will generally be about 10+ available locales...
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // even in minimal configurations for android
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Locale[] locales = Locale.getAvailableLocales();
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Wrong number of locales: " + locales.length, locales.length > 10);
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // regression test for HARMONY-1514
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // HashSet can filter duplicate locales
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Set<Locale> localesSet = new HashSet<Locale>(Arrays.asList(locales));
138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            assertEquals(localesSet.size(), locales.length);
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during test : " + e.getMessage());
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1425d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer// END Android-changed
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
146229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getCountry()
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getCountry() {
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Locale.getCountry()
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect country: " + testLocale.getCountry(),
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                testLocale.getCountry().equals("CA"));
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
155229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getDefault()
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDefault() {
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Locale java.util.Locale.getDefault()
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("returns copy", Locale.getDefault() == Locale.getDefault());
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale org = Locale.getDefault();
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(l);
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale x = Locale.getDefault();
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(org);
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Failed to get locale", "fr_CA_WIN32", x.toString());
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
168229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getDisplayCountry()
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayCountry() {
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Locale.getDisplayCountry()
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect country: "
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + testLocale.getDisplayCountry(), testLocale
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getDisplayCountry().equals("Canada"));
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayCountryLjava_util_Locale() {
178dd9b761d3b32bf02de354cb228f83cf7697032efElliott Hughes        assertEquals("Italie", Locale.ITALY.getDisplayCountry(new Locale("fr", "CA", "WIN32")));
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
182229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getDisplayLanguage()
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayLanguage() {
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.Locale.getDisplayLanguage()
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect language: "
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + testLocale.getDisplayLanguage(), testLocale
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getDisplayLanguage().equals("English"));
190f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression for Harmony-1146
192f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        Locale l_languageAE = new Locale("ae", "");
193f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Avestan", l_languageAE.getDisplayLanguage());
194ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
195ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        // Regression for HARMONY-4402
196ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        Locale defaultLocale = Locale.getDefault();
197ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        try {
198ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            Locale locale = new Locale("no", "NO");
199ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            Locale.setDefault(locale);
200ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            assertEquals("norsk", locale.getDisplayLanguage());
201ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        } finally {
202ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            Locale.setDefault(defaultLocale);
203ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        }
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayLanguageLjava_util_Locale() {
207dd9b761d3b32bf02de354cb228f83cf7697032efElliott Hughes        assertEquals("anglais", new Locale("en", "CA", "WIN32").getDisplayLanguage(l));
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayName() {
211dd9b761d3b32bf02de354cb228f83cf7697032efElliott Hughes        assertEquals("English (Canada,WIN32)", new Locale("en", "CA", "WIN32").getDisplayName());
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayNameLjava_util_Locale() {
215dd9b761d3b32bf02de354cb228f83cf7697032efElliott Hughes        assertEquals("anglais (Canada,WIN32)", new Locale("en", "CA", "WIN32").getDisplayName(l));
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
219229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getDisplayVariant()
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayVariant() {
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Locale.getDisplayVariant()
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect variant: "
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + testLocale.getDisplayVariant(), testLocale
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getDisplayVariant().equals("WIN32"));
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
229229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getDisplayVariant(java.util.Locale)
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDisplayVariantLjava_util_Locale() {
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.Locale.getDisplayVariant(java.util.Locale)
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect variant: "
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + testLocale.getDisplayVariant(l), testLocale
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getDisplayVariant(l).equals("WIN32"));
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
239ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    /**
240ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     * java.util.Locale#getISO3Country()
241ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     */
242ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    public void test_getISO3Country() {
243ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        // Test for method java.lang.String java.util.Locale.getISO3Country()
244ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertTrue("Returned incorrect ISO3 country: "
245ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                + testLocale.getISO3Country(), testLocale.getISO3Country()
246ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                .equals("CAN"));
247ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
248ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        Locale l = new Locale("", "CD");
249ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertEquals("COD", l.getISO3Country());
250ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    }
251ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
252ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    /**
253ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     * java.util.Locale#getISO3Language()
254ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     */
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getISO3Language() {
256ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        // Test for method java.lang.String java.util.Locale.getISO3Language()
257ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertTrue("Returned incorrect ISO3 language: "
258ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                + testLocale.getISO3Language(), testLocale.getISO3Language()
259ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                .equals("eng"));
260ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale l = new Locale("ae");
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("ave", l.getISO3Language());
263f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression for Harmony-1146
265f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        Locale l_CountryCS = new Locale("", "CS");
266f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("SCG", l_CountryCS.getISO3Country());
267f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression for Harmony-1129
269f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        l = new Locale("ak", "");
270f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("aka", l.getISO3Language());
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
274229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getISOCountries()
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getISOCountries() {
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String []
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.Locale.getISOCountries()
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Assumes all countries are 2 digits, and that there will always be
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // 230 countries on the list...
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] isoCountries = Locale.getISOCountries();
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int length = isoCountries.length;
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int familiarCount = 0;
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < length; i++) {
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (isoCountries[i].length() != 2) {
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Wrong format for ISOCountries.");
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (isoCountries[i].equals("CA") || isoCountries[i].equals("BB")
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    || isoCountries[i].equals("US")
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    || isoCountries[i].equals("KR"))
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                familiarCount++;
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("ISOCountries missing.", familiarCount == 4 && length > 230);
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
297229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getISOLanguages()
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getISOLanguages() {
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String []
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.Locale.getISOLanguages()
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Assumes always at least 131 ISOlanguages...
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] isoLang = Locale.getISOLanguages();
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int length = isoLang.length;
305e124afe6e959d2c24d4ee943007cb5317c64eab5Claire Ho
3065d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer        // BEGIN Android-changed
307f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        // Language codes are 2- and 3-letter, with preference given
308e124afe6e959d2c24d4ee943007cb5317c64eab5Claire Ho        // to 2-letter codes where possible. 3-letter codes are used
309e124afe6e959d2c24d4ee943007cb5317c64eab5Claire Ho        // when lack a 2-letter equivalent.
310f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Random element in wrong format.",
311e124afe6e959d2c24d4ee943007cb5317c64eab5Claire Ho                   (isoLang[length / 2].length() == 2 || isoLang[length / 2].length() == 3)
312e124afe6e959d2c24d4ee943007cb5317c64eab5Claire Ho                   && isoLang[length / 2].toLowerCase().equals(isoLang[length / 2]));
3135d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer        // END Android-changed
314e124afe6e959d2c24d4ee943007cb5317c64eab5Claire Ho
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong number of ISOLanguages.", length > 130);
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
319229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getLanguage()
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getLanguage() {
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Locale.getLanguage()
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect language: " + testLocale.getLanguage(),
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                testLocale.getLanguage().equals("en"));
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
328229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#getVariant()
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getVariant() {
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Locale.getVariant()
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect variant: " + testLocale.getVariant(),
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                testLocale.getVariant().equals("WIN32"));
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
337229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#setDefault(java.util.Locale)
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setDefaultLjava_util_Locale() {
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Locale.setDefault(java.util.Locale)
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale org = Locale.getDefault();
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(l);
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale x = Locale.getDefault();
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(org);
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Failed to set locale", "fr_CA_WIN32", x.toString());
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("tr", ""));
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String res1 = "\u0069".toUpperCase();
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String res2 = "\u0049".toLowerCase();
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(org);
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong toUppercase conversion", "\u0130", res1);
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong toLowercase conversion", "\u0131", res2);
354f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Locale.setDefault(null);
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
364229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Locale#toString()
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_toString() {
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Locale.toString()
368dd9b761d3b32bf02de354cb228f83cf7697032efElliott Hughes        assertEquals("en_CA_WIN32", new Locale("en", "CA", "WIN32").toString());
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale l = new Locale("en", "");
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 1", "en", l.toString());
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("", "CA");
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 2", "_CA", l.toString());
374ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
375ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        // Non-bug difference for HARMONY-5442
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("", "CA", "var");
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 2.5", "_CA_var", l.toString());
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("en", "", "WIN");
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 4", "en__WIN", l.toString());
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("en", "CA");
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 6", "en_CA", l.toString());
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("en", "CA", "VAR");
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 7", "en_CA_VAR", l.toString());
384f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("", "", "var");
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong representation 8", "", l.toString());
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
389f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_hashCode() {
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale l1 = new Locale("en", "US");
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale l2 = new Locale("fr", "CA");
393f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(l1.hashCode() != l2.hashCode());
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
396f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
397ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    /**
398ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     * {@value java.util.Locale#ROOT}
399ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     * @since 1.6
400ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     */
401ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    public void test_constantROOT() {
402ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        Locale root = Locale.ROOT;
403ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertEquals("", root.getLanguage());
404ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertEquals("", root.getCountry());
405ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertEquals("", root.getVariant());
406ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    }
407ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
4085d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer// BEGIN Android-removed
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// These locales are not part of the android reference impl
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    // Regression Test for HARMONY-2953
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    public void test_getISO() {
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        Locale locale = new Locale("an");
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        assertEquals("arg", locale.getISO3Language());
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        locale = new Locale("PS");
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        assertEquals("pus", locale.getISO3Language());
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        List<String> languages = Arrays.asList(Locale.getISOLanguages());
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        assertTrue(languages.contains("ak"));
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        List<String> countries = Arrays.asList(Locale.getISOCountries());
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        assertTrue(countries.contains("CS"));
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    }
4245d175dd4d7b128492ef7e3da6a77d80b8fd0aa22Tobias Thierer// END Android-removed
425f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is called before a test is executed.
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() {
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        defaultLocale = Locale.getDefault();
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(Locale.US);
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        testLocale = new Locale("en", "CA", "WIN32");
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        l = new Locale("fr", "CA", "WIN32");
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method is called after a test is executed.
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(defaultLocale);
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
445