ResourceBundleTest.java revision ab28398a565e5ce8a56cdfd50ac6226e5317cf66
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 dalvik.annotation.TestTargetNew; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetClass; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.File; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.MalformedURLException; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URL; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URLClassLoader; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Permission; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Locale; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.MissingResourceException; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ResourceBundle; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.StringTokenizer; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.java.util.support.B; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.resource.Support_Resources; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@TestTargetClass(ResourceBundle.class) 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ResourceBundleTest extends junit.framework.TestCase { 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SecurityManager sm = new SecurityManager() { 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void checkPermission(Permission perm) { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests java.util.ResourceBundle#getBundle(java.lang.String, 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.Locale) 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getBundle", 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class, java.util.Locale.class} 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getBundleLjava_lang_StringLjava_util_Locale() { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle; 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = "tests.support.Support_TestResource"; 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale defLocale = Locale.getDefault(); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR")); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle fr_FR_VAR", "frFRVARValue4", bundle.getString("parent4") 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "v1")); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle fr_FR_v1", 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRValue4", bundle.getString("parent4")); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "US", "VAR")); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle fr_US_var", "frValue4", bundle.getString("parent4") 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "VAR")); 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle de_FR_var", "enUSValue4", bundle.getString("parent4") 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("fr", "FR", "VAR")); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "v1")); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle de_FR_var 2", "frFRVARValue4", bundle.getString("parent4") 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("de", "US")); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "var")); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle.getString("parent4") 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test with a security manager 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SecurityManager oldSm = System.getSecurityManager(); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.setSecurityManager(sm); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "VAR")); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Security: Wrong bundle fr_FR_VAR", "frFRVARValue4", bundle.getString( 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "parent4")); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Locale("fr", "FR", "v1")); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Security: Wrong bundle fr_FR_v1", "frFRValue4", bundle.getString( 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "parent4")); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "US", 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "VAR")); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Security: Wrong bundle fr_US_var", "frValue4", bundle.getString( 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "parent4")); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "VAR")); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Security: Wrong bundle de_FR_var: " 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + bundle.getString("parent4"), bundle.getString("parent4") 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .equals("enUSValue4")); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } finally { 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.setSecurityManager(oldSm); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(null, Locale.getDefault()); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle("", new Locale("xx", "yy")); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected"); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException ee) { 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(defLocale); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests java.util.ResourceBundle#getBundle(java.lang.String, 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.util.Locale, java.lang.ClassLoader) 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getBundle", 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class, java.util.Locale.class, java.lang.ClassLoader.class} 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 142ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project @KnownFailure("It's not allowed to pass null as parent class loader to" 143ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project + " a new ClassLoader anymore. Maybe we need to change" 144ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project + " URLClassLoader to allow this? It's not specified.") 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getBundleLjava_lang_StringLjava_util_LocaleLjava_lang_ClassLoader() { 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String classPath = System.getProperty("java.class.path"); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringTokenizer tok = new StringTokenizer(classPath, File.pathSeparator); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Vector<URL> urlVec = new Vector<URL>(); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String resPackage = Support_Resources.RESOURCE_PACKAGE; 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (tok.hasMoreTokens()) { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String path = tok.nextToken(); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String url; 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (new File(path).isDirectory()) 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project url = "file:" + path + resPackage + "subfolder/"; 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project url = "jar:file:" + path + "!" + resPackage + "subfolder/"; 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project urlVec.addElement(new URL(url)); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MalformedURLException e) { 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project URL[] urls = new URL[urlVec.size()]; 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < urlVec.size(); i++) 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project urls[i] = urlVec.elementAt(i); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project URLClassLoader loader = new URLClassLoader(urls, null); 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = Support_Resources.RESOURCE_PACKAGE_NAME 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + ".hyts_resource"; 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle = ResourceBundle.getBundle(name, Locale 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getDefault()); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value read", "parent", bundle.getString("property")); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, Locale.getDefault(), loader); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong cached value", 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "resource", bundle.getString("property")); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(null, Locale.getDefault(), loader); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(name, null, loader); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(name, Locale.getDefault(), null); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle("", Locale.getDefault(), loader); 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected"); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException ee) { 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression test for Harmony-3823 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project B bb = new B(); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String s = bb.find("nonexistent"); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s = bb.find("name"); 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong property got", "Name", s); 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests java.util.ResourceBundle#getString(java.lang.String) 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getString", 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getStringLjava_lang_String() { 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle; 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = "tests.support.Support_TestResource"; 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR")); 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent4", 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARValue4", bundle.getString("parent4")); 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent3", 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRValue3", bundle.getString("parent3")); 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent2", 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frValue2", bundle.getString("parent2")); 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent1", 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "parentValue1", bundle.getString("parent1")); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value child3", 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARChildValue3", bundle.getString("child3")); 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value child2", 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARChildValue2", bundle.getString("child2")); 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value child1", 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARChildValue1", bundle.getString("child1")); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getString(null); 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getString(""); 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected"); 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException ee) { 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getString("IntegerVal"); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException ee) { 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "Regression test. Doesn't verify NullPointerException.", 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getBundle", 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getBundle_getClassName() { 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression test for Harmony-1759 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale locale = Locale.GERMAN; 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String nonExistentBundle = "Non-ExistentBundle"; 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(nonExistentBundle, locale, this.getClass() 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getClassLoader()); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected!"); 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException e) { 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(nonExistentBundle + "_" + locale, e.getClassName()); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(nonExistentBundle, locale); 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected!"); 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException e) { 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(nonExistentBundle + "_" + locale, e.getClassName()); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project locale = Locale.getDefault(); 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(nonExistentBundle); 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected!"); 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException e) { 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(nonExistentBundle + "_" + locale, e.getClassName()); 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_ResourceBundle extends ResourceBundle { 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Enumeration<String> getKeys() { 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected Object handleGetObject(String key) { 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "ResourceBundle", 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_constructor() { 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(new Mock_ResourceBundle()); 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getLocale", 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getLocale() { 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle; 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = "tests.support.Support_TestResource"; 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale loc = Locale.getDefault(); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR")); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("fr_FR_VAR", bundle.getLocale().toString()); 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "v1")); 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("fr_FR", bundle.getLocale().toString()); 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "US", "VAR")); 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("fr", bundle.getLocale().toString()); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "VAR")); 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("en_US", bundle.getLocale().toString()); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "v1")); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("en_US", bundle.getLocale().toString()); 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("de", "FR", "var")); 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("en_US", bundle.getLocale().toString()); 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(loc); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getObject", 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getObjectLjava_lang_String() { 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle; 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = "tests.support.Support_TestResource"; 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR")); 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent4", 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARValue4", (String)bundle.getObject("parent4")); 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent3", 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRValue3", (String)bundle.getObject("parent3")); 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent2", 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frValue2", (String)bundle.getObject("parent2")); 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value parent1", 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "parentValue1", (String)bundle.getObject("parent1")); 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value child3", 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARChildValue3", (String)bundle.getObject("child3")); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value child2", 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARChildValue2", (String)bundle.getObject("child2")); 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value child1", 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRVARChildValue1", (String)bundle.getObject("child1")); 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong value IntegerVal", 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1, bundle.getObject("IntegerVal")); 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getObject(null); 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getObject(""); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected"); 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException ee) { 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargets({ 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getStringArray", 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setParent", 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.util.ResourceBundle.class} 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }) 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getStringArrayLjava_lang_String() { 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle; 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = "tests.support.Support_TestResource"; 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR")); 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] array = bundle.getStringArray("StringArray"); 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < array.length; i++) { 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Str" + (i + 1), array[i]); 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getStringArray(null); 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getStringArray(""); 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected"); 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException ee) { 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle.getStringArray("IntegerVal"); 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException ee) { 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getBundle", 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getBundleLjava_lang_String() { 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle bundle; 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String name = "tests.support.Support_TestResource"; 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale defLocale = Locale.getDefault(); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("en", "US")); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name); 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("enUSValue4", bundle.getString("parent4") 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("fr", "FR", "v1")); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name); 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle fr_FR_v1", 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "frFRValue4", bundle.getString("parent4")); 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("fr", "US", "VAR")); 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name); 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle fr_US_var", "frValue4", bundle.getString("parent4") 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("de", "FR", "VAR")); 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name); 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle de_FR_var", "parentValue4", bundle.getString("parent4") 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("de", "FR", "v1")); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle.getString("parent4") 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locale.setDefault(new Locale("de", "FR", "var")); 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bundle = ResourceBundle.getBundle(name); 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle.getString("parent4") 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(null); 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ResourceBundle.getBundle(""); 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("MissingResourceException expected"); 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (MissingResourceException ee) { 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() { 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() { 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 497