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
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.java.util;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Projectimport dalvik.annotation.KnownFailure;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.File;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.MalformedURLException;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URL;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URLClassLoader;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Locale;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.MissingResourceException;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ResourceBundle;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.StringTokenizer;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.java.util.support.B;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.resource.Support_Resources;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ResourceBundleTest extends junit.framework.TestCase {
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3687bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes    public void test_getCandidateLocales() throws Exception {
3787bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes        ResourceBundle.Control c = ResourceBundle.Control.getControl(ResourceBundle.Control.FORMAT_DEFAULT);
3887bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes        assertEquals("[en_US, en, ]", c.getCandidateLocales("base", Locale.US).toString());
3987bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes        assertEquals("[de_CH, de, ]", c.getCandidateLocales("base", new Locale("de", "CH")).toString());
4087bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes    }
4187bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
43229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.ResourceBundle#getBundle(java.lang.String,
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        java.util.Locale)
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getBundleLjava_lang_StringLjava_util_Locale() {
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle;
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = "tests.support.Support_TestResource";
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale defLocale = Locale.getDefault();
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("en", "US"));
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR"));
532c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle fr_FR_VAR", "frFRVARValue4", bundle.getString("parent4"));
542c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "v1"));
562c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle fr_FR_v1", "frFRValue4", bundle.getString("parent4"));
572c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "US", "VAR"));
592c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle fr_US_var", "frValue4", bundle.getString("parent4"));
602c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "VAR"));
622c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle de_FR_var", "enUSValue4", bundle.getString("parent4"));
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("fr", "FR", "VAR"));
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "v1"));
662c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle de_FR_var 2", "frFRVARValue4", bundle.getString("parent4"));
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("de", "US"));
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "var"));
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle.getString("parent4")
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                );
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
7487bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes            ResourceBundle.getBundle(null, Locale.US);
7587bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes            fail("NullPointerException expected");
7687bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes        } catch (NullPointerException ee) {
7787bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes            //expected
7887bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes        }
7987bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes        try {
8087bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes            ResourceBundle.getBundle("blah", (Locale) null);
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
8687bd57adc8c2a8db21b46a249df19ff8c919c0e6Elliott Hughes
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle("", new Locale("xx", "yy"));
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected");
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException ee) {
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
96229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.ResourceBundle#getBundle(java.lang.String,
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        java.util.Locale, java.lang.ClassLoader)
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
99ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project    @KnownFailure("It's not allowed to pass null as parent class loader to"
100ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project            + " a new ClassLoader anymore. Maybe we need to change"
101ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project            + " URLClassLoader to allow this? It's not specified.")
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getBundleLjava_lang_StringLjava_util_LocaleLjava_lang_ClassLoader() {
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String classPath = System.getProperty("java.class.path");
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringTokenizer tok = new StringTokenizer(classPath, File.pathSeparator);
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Vector<URL> urlVec = new Vector<URL>();
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String resPackage = Support_Resources.RESOURCE_PACKAGE;
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            while (tok.hasMoreTokens()) {
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String path = tok.nextToken();
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String url;
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (new File(path).isDirectory())
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    url = "file:" + path + resPackage + "subfolder/";
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                else
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    url = "jar:file:" + path + "!" + resPackage + "subfolder/";
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                urlVec.addElement(new URL(url));
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MalformedURLException e) {
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        URL[] urls = new URL[urlVec.size()];
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < urlVec.size(); i++)
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            urls[i] = urlVec.elementAt(i);
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        URLClassLoader loader = new URLClassLoader(urls, null);
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = Support_Resources.RESOURCE_PACKAGE_NAME
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + ".hyts_resource";
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle = ResourceBundle.getBundle(name, Locale
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getDefault());
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("Wrong value read", "parent", bundle.getString("property"));
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, Locale.getDefault(), loader);
130f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong cached value",
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "resource", bundle.getString("property"));
132f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle(null, Locale.getDefault(), loader);
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
139f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle(name, null, loader);
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
146f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
148565a85d06ab8bc321d39f12012468cdfb65f5cfeElliott Hughes            ResourceBundle.getBundle(name, Locale.getDefault(), (ClassLoader) null);
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle("", Locale.getDefault(), loader);
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected");
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException ee) {
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression test for Harmony-3823
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        B bb = new B();
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String s = bb.find("nonexistent");
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        s = bb.find("name");
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Wrong property got", "Name", s);
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
169229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.ResourceBundle#getString(java.lang.String)
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getStringLjava_lang_String() {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle;
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = "tests.support.Support_TestResource";
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("en", "US"));
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR"));
176f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent4",
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARValue4", bundle.getString("parent4"));
178f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent3",
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRValue3", bundle.getString("parent3"));
180f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent2",
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frValue2", bundle.getString("parent2"));
182f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent1",
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "parentValue1", bundle.getString("parent1"));
184f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value child3",
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARChildValue3", bundle.getString("child3"));
186f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value child2",
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARChildValue2", bundle.getString("child2"));
188f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value child1",
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARChildValue1", bundle.getString("child1"));
190f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getString(null);
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getString("");
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected");
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException ee) {
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getString("IntegerVal");
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("ClassCastException expected");
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException ee) {
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getBundle_getClassName() {
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression test for Harmony-1759
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale locale = Locale.GERMAN;
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String nonExistentBundle = "Non-ExistentBundle";
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle(nonExistentBundle, locale, this.getClass()
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getClassLoader());
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected!");
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException e) {
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(nonExistentBundle + "_" + locale, e.getClassName());
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
223f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle(nonExistentBundle, locale);
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected!");
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException e) {
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(nonExistentBundle + "_" + locale, e.getClassName());
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        locale = Locale.getDefault();
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle(nonExistentBundle);
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected!");
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException e) {
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(nonExistentBundle + "_" + locale, e.getClassName());
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
239f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class Mock_ResourceBundle extends ResourceBundle {
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Enumeration<String> getKeys() {
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected Object handleGetObject(String key) {
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
251f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_constructor() {
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull(new Mock_ResourceBundle());
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getLocale() {
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle;
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = "tests.support.Support_TestResource";
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale loc = Locale.getDefault();
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("en", "US"));
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR"));
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("fr_FR_VAR", bundle.getLocale().toString());
264f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "v1"));
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("fr_FR", bundle.getLocale().toString());
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "US", "VAR"));
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("fr", bundle.getLocale().toString());
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "VAR"));
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("en_US", bundle.getLocale().toString());
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "v1"));
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("en_US", bundle.getLocale().toString());
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "var"));
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("en_US", bundle.getLocale().toString());
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(loc);
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getObjectLjava_lang_String() {
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle;
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = "tests.support.Support_TestResource";
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("en", "US"));
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR"));
288f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent4",
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARValue4", (String)bundle.getObject("parent4"));
290f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent3",
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRValue3", (String)bundle.getObject("parent3"));
292f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent2",
2932c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson                "frValue2", (String) bundle.getObject("parent2"));
294f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value parent1",
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "parentValue1", (String)bundle.getObject("parent1"));
296f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value child3",
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARChildValue3", (String)bundle.getObject("child3"));
298f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value child2",
2992c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson                "frFRVARChildValue2", (String) bundle.getObject("child2"));
300f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value child1",
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "frFRVARChildValue1", (String)bundle.getObject("child1"));
302f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value IntegerVal",
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, bundle.getObject("IntegerVal"));
304f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getObject(null);
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getObject("");
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected");
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException ee) {
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getStringArrayLjava_lang_String() {
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle;
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = "tests.support.Support_TestResource";
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("en", "US"));
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR"));
325f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] array = bundle.getStringArray("StringArray");
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(int i = 0; i < array.length; i++) {
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("Str" + (i + 1), array[i]);
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
330f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getStringArray(null);
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getStringArray("");
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected");
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException ee) {
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bundle.getStringArray("IntegerVal");
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("ClassCastException expected");
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException ee) {
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getBundleLjava_lang_String() {
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ResourceBundle bundle;
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String name = "tests.support.Support_TestResource";
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale defLocale = Locale.getDefault();
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("en", "US"));
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name);
3602c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("enUSValue4", bundle.getString("parent4"));
3612c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("fr", "FR", "v1"));
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name);
3642c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle fr_FR_v1", "frFRValue4", bundle.getString("parent4"));
3652c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("fr", "US", "VAR"));
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name);
3682c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle fr_US_var", "frValue4", bundle.getString("parent4"));
3692c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("de", "FR", "VAR"));
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name);
3722c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle de_FR_var", "parentValue4", bundle.getString("parent4"));
3732c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("de", "FR", "v1"));
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name);
3762c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle.getString("parent4"));
3772c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(new Locale("de", "FR", "var"));
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bundle = ResourceBundle.getBundle(name);
3802c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle.getString("parent4"));
381f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle(null);
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException ee) {
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ResourceBundle.getBundle("");
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("MissingResourceException expected");
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (MissingResourceException ee) {
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3962c98427a50610d4991e9b0ada6cbc7aceb194580Jesse Wilson        Locale.setDefault(defLocale);
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
399