ResourceBundleTest.java revision 561ee011997c6c2f1befbfaa9d5f0a99771c1d63
1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport static java.util.ResourceBundle.Control.FORMAT_CLASS; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport static java.util.ResourceBundle.Control.FORMAT_DEFAULT; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport static java.util.ResourceBundle.Control.FORMAT_PROPERTIES; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.File; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.net.MalformedURLException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.net.URL; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.net.URLClassLoader; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Enumeration; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashSet; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.List; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.MissingResourceException; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ResourceBundle; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.StringTokenizer; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Vector; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ResourceBundle.Control; 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.luni.tests.java.util.ControlTest.CanSetSM; 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.resource.Support_Resources; 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.luni.tests.support.B; 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test cases for java.util.ResourceBundle. 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ResourceBundleTest extends junit.framework.TestCase { 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String PROPERTIES_NAME = Support_Resources.RESOURCE_PACKAGE_NAME 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ".hyts_resource"; //$NON-NLS-1$ 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String SUBFOLDER_PROPERTIES_NAME = "tests.resources.subfolder.tests.resources.hyts_resource"; //$NON-NLS-1$ 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String SUBFOLDER_NOROOT_NAME = "tests.resources.subfolder.tests.norootresources.hyts_resource"; //$NON-NLS-1$ 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String CLASS_NAME = "tests.support.Support_TestResource"; //$NON-NLS-1$ 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String PROPERTIES_NAME_COPY = "hyts_resource_copy"; //$NON-NLS-1$ 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final ClassLoader URL_LOADER = getURLClassLoader(); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final ClassLoader SYSTEM_LOADER = ClassLoader 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getSystemClassLoader(); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Control CLASS_CONTROL = Control 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getControl(FORMAT_CLASS); 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Control PROPERTIES_CONTROL = Control 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getControl(FORMAT_PROPERTIES); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Control DEFAULT_CONTROL = Control 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getControl(FORMAT_DEFAULT); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.ResourceBundle#getString(java.lang.String) 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getStringLjava_lang_String() { 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle bundle; 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String name = "tests.support.Support_TestResource"; 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(new Locale("en", "US")); 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", "VAR")); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value parent4", "frFRVARValue4", bundle 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value parent3", "frFRValue3", bundle 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent3")); 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value parent2", "frValue2", bundle 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent2")); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value parent1", "parentValue1", bundle 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent1")); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value child3", "frFRVARChildValue3", bundle 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("child3")); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value child2", "frFRVARChildValue2", bundle 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("child2")); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value child1", "frFRVARChildValue1", bundle 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("child1")); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for Harmony-5698 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle("Does not exist"); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(e.getLocalizedMessage()); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Locale LOCALE_FRFR = new Locale("fr", "FR"); 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Locale LOCALE_FR = new Locale("fr"); 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Locale LOCALE_EN = new Locale("en"); 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final Locale LOCALE_ENUSVAR = new Locale("en", "US", "VAR"); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private ResourceBundle bundle; 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private Locale defLocale = null; 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.ResourceBundle#getBundle(java.lang.String, 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Locale) 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundleLjava_lang_StringLjava_util_Locale() { 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("fr", "FR", 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "VAR")); 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong bundle fr_FR_VAR", "frFRVARValue4", bundle 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("fr", "FR", 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "v1")); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong bundle fr_FR_v1", "frFRValue4", bundle 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("fr", "US", 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "VAR")); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong bundle fr_US_var", "frValue4", bundle 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("de", "FR", 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "VAR")); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong bundle de_FR_var", "enUSValue4", bundle 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(new Locale("fr", "FR", "VAR")); 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("de", "FR", 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "v1")); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong bundle de_FR_var 2", "frFRVARValue4", bundle 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(new Locale("de", "US")); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("de", "FR", 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "var")); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong bundle de_FR_var 2", "parentValue4", bundle 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for Harmony-5698 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle("Does not exist", Locale.getDefault()); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(e.getLocalizedMessage()); 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test with a security manager 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(new Locale("en", "US")); 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setSecurityManager(new SecurityManager()); 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("fr", 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "FR", "VAR")); 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Security: Wrong bundle fr_FR_VAR", "frFRVARValue4", 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle.getString("parent4")); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("fr", 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "FR", "v1")); 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Security: Wrong bundle fr_FR_v1", "frFRValue4", 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle.getString("parent4")); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("fr", 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "US", "VAR")); 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Security: Wrong bundle fr_US_var", "frValue4", bundle 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("parent4")); 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, new Locale("de", 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "FR", "VAR")); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Security: Wrong bundle de_FR_var: " 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + bundle.getString("parent4"), bundle.getString("parent4") 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals("enUSValue4")); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } finally { 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setSecurityManager(null); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.ResourceBundle#getBundle(java.lang.String, 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Locale, java.lang.ClassLoader) 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundleLjava_lang_StringLjava_util_LocaleLjava_lang_ClassLoader() { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_EN); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_EN, 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL_LOADER); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong cached value", "en_resource", bundle 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("property")); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String classPath = System.getProperty("java.class.path"); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes StringTokenizer tok = new StringTokenizer(classPath, File.pathSeparator); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Vector urlVec = new Vector(); 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String resPackage = Support_Resources.RESOURCE_PACKAGE; 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (tok.hasMoreTokens()) { 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String path = (String) tok.nextToken(); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String url; 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (new File(path).isDirectory()) 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes url = "file:" + path + resPackage + "subfolder/"; 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes else 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes url = "jar:file:" + path + "!" + resPackage + "subfolder/"; 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes urlVec.addElement(new URL(url)); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MalformedURLException e) { 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL[] urls = new URL[urlVec.size()]; 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < urlVec.size(); i++) 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes urls[i] = (URL) urlVec.elementAt(i); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URLClassLoader loader = new URLClassLoader(urls, null); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String name = Support_Resources.RESOURCE_PACKAGE_NAME 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ".hyts_resource"; 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle bundle = ResourceBundle.getBundle(name, Locale 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getDefault()); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong value read", "parent", bundle.getString("property")); 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(name, Locale.getDefault(), loader); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong cached value", "en_US_resource", bundle 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("property")); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for Harmony-3823 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes B bb = new B(); 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String s = bb.find("nonexistent"); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s = bb.find("name"); 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong property got", "Name", s); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for Harmony-5698 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle("Does not exist", Locale.getDefault(), 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loader); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(e.getLocalizedMessage()); 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static URLClassLoader getURLClassLoader() { 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String classPath = System.getProperty("java.class.path"); 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes StringTokenizer tok = new StringTokenizer(classPath, File.pathSeparator); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Vector<URL> urlVec = new Vector<URL>(); 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String resPackage = Support_Resources.RESOURCE_PACKAGE; 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (tok.hasMoreTokens()) { 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String path = tok.nextToken(); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String url; 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (new File(path).isDirectory()) { 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes url = "file:" + path + resPackage + "subfolder/"; 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes url = "jar:file:" + path + "!" + resPackage + "subfolder/"; 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes urlVec.addElement(new URL(url)); 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MalformedURLException e) { 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ignore 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // add temp path if possible 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String tmpdir = System.getProperty("java.io.tmpdir"); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (null != tmpdir) { 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes urlVec.add(new URL("file:" + tmpdir)); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MalformedURLException e) { 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ignore 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL[] urls = new URL[urlVec.size()]; 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < urlVec.size(); i++) { 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes urls[i] = urlVec.elementAt(i); 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URLClassLoader loader = new URLClassLoader(urls, null); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return loader; 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.ResourceBundle#getObject(java.lang.String) 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getObjectLjava_lang_String() { 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for Harmony-5698 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle bundle; 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String name = "tests.support.Support_TestResource"; 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(new Locale("en", "US")); 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(name, new Locale("fr", "FR", 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "VAR")); 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle.getObject("not exist"); 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(e.getLocalizedMessage()); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundle_getClassName() { 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for Harmony-1759 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale locale = Locale.GERMAN; 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String nonExistentBundle = "Non-ExistentBundle"; 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(nonExistentBundle, locale, this.getClass() 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getClassLoader()); 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("MissingResourceException expected!"); 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(nonExistentBundle + "_" + locale, e.getClassName()); 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(nonExistentBundle, locale); 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("MissingResourceException expected!"); 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(nonExistentBundle + "_" + locale, e.getClassName()); 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes locale = Locale.getDefault(); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(nonExistentBundle); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("MissingResourceException expected!"); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(nonExistentBundle + "_" + locale, e.getClassName()); 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Can cause {@link IllegalArgumentException} in getBundle method 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class NullCandidateLocalesControl extends Control { 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see java.util.ResourceBundle.Control#getCandidateLocales(java.lang.String, 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Locale) 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public List<Locale> getCandidateLocales(@SuppressWarnings("unused") 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String baseName, @SuppressWarnings("unused") 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale locale) { 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the class and constructor must be public so ResourceBundle has the 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * possibility to instantiate 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class GetBundleTest { 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public GetBundleTest() { 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Try to load a resource with the same name as the class. 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // getBundle() should not try to instantiate the class since 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // its not a ResourceBundle. If a .properties file exists it 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // would be loaded. 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getBundle("org.apache.harmony.luni.tests.java.util.ResourceBundleTest$GetBundleTest"); 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.ResourceBundle#getBundle(java.lang.String) 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundleLjava_lang_String() { 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* ResourceBundle.getBundle recursion loading class name */ 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new GetBundleTest(); 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The control with given formats. 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class GivenFormatsControl extends Control { 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List<String> formats; 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes GivenFormatsControl(List<String> theFormats) { 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(); 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes formats = theFormats; 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see java.util.ResourceBundle.Control#getFormats(java.lang.String) 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public List<String> getFormats(@SuppressWarnings("unused") 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String baseName) { 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return formats; 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The control with reverse formats with default Control and no fallback 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * locale. 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class ReverseNoFallbackLocaleControl extends Control { 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see java.util.ResourceBundle.Control#getFormats(java.lang.String) 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public List<String> getFormats(@SuppressWarnings("unused") 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String baseName) { 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return Arrays 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .asList(new String[] { "java.properties", "java.class" }); 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see java.util.ResourceBundle.Control#getFallbackLocale(java.lang.String, 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.Locale) 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Locale getFallbackLocale(@SuppressWarnings("unused") 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String baseName, @SuppressWarnings("unused") 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale locale) { 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#getBundle(String, java.util.ResourceBundle.Control)} 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundle_LStringLControl() { 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(LOCALE_FRFR); 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL); 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle("wrongName", DEFAULT_CONTROL); 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(null, DEFAULT_CONTROL); 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, (Control) null); 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // illegal control causes IllegalArgumentException 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Control otherControl = new NullCandidateLocalesControl(); 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, otherControl); 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#getBundle(String, Locale, java.util.ResourceBundle.Control)} 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundle_LStringLLocaleLControl() { 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, DEFAULT_CONTROL); 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle("wrongName", LOCALE_FRFR, DEFAULT_CONTROL); 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(null, LOCALE_FRFR, DEFAULT_CONTROL); 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, null, 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL); 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (Control) null); 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // illegal control causes IllegalArgumentException 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Control otherControl = new NullCandidateLocalesControl(); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes otherControl); 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#getBundle(String, Locale, ClassLoader, java.util.ResourceBundle.Control)} 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundle_LStringLLocaleLClassLoaderLControl() { 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes getBundleWithControlTester(); 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#getBundle(String, Locale, ClassLoader, java.util.ResourceBundle.Control)} 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBundle_LStringLLocaleLClassLoaderLControl_WithSecurityManager() { 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SecurityManager sm = System.getSecurityManager(); 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setSecurityManager(new CanSetSM()); 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes getBundleWithControlTester(); 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } finally { 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setSecurityManager(sm); 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void getBundleWithControlTester() { 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 1. cache feature: is tested in other methods 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 2. Formats/Locale 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the "reverse" control that take java.properties first 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Control reverseControl = new GivenFormatsControl(Arrays 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .asList(new String[] { "java.properties", "java.class" })); 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // locale that has both class file and properties file support. 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, DEFAULT_CONTROL); 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, CLASS_CONTROL); 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, PROPERTIES_CONTROL); 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subParent1")); 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, reverseControl); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subParent1")); 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // locale that has only properties file support. 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_EN, 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, bundle.keySet().size()); 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("en_resource", bundle.getString("property")); 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue4", bundle.getString("subParent4")); 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subChild1")); 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_EN, 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, CLASS_CONTROL); 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue2", bundle.getString("subParent2")); 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSValue3", bundle.getString("subParent3")); 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSValue4", bundle.getString("subParent4")); 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSChildValue1", bundle.getString("subChild1")); 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSChildValue2", bundle.getString("subChild2")); 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_EN, 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, PROPERTIES_CONTROL); 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("en_resource", bundle.getString("property")); 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_EN, 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, reverseControl); 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("en_resource", bundle.getString("property")); 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // locale that has only class file support. 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_ENUSVAR, SYSTEM_LOADER, DEFAULT_CONTROL); 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(8, bundle.keySet().size()); 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARChildValue3", bundle.getString("subChild3")); 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("en_resource", bundle.getString("property")); 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARValue4", bundle.getString("subParent4")); 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSValue3", bundle.getString("subParent3")); 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue2", bundle.getString("subParent2")); 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_ENUSVAR, SYSTEM_LOADER, CLASS_CONTROL); 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(7, bundle.keySet().size()); 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARChildValue3", bundle.getString("subChild3")); 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARValue4", bundle.getString("subParent4")); 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSValue3", bundle.getString("subParent3")); 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue2", bundle.getString("subParent2")); 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_ENUSVAR, SYSTEM_LOADER, PROPERTIES_CONTROL); 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("en_US_resource", bundle.getString("property")); 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_ENUSVAR, SYSTEM_LOADER, reverseControl); 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("en_US_resource", bundle.getString("property")); 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARChildValue1", bundle.getString("subChild1")); 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARChildValue2", bundle.getString("subChild2")); 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARChildValue3", bundle.getString("subChild3")); 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("enUSVARValue4", bundle.getString("subParent4")); 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // root locale 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ROOT, SYSTEM_LOADER, DEFAULT_CONTROL); 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue4", bundle.getString("subParent4")); 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subChild1")); 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ROOT, SYSTEM_LOADER, CLASS_CONTROL); 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue4", bundle.getString("subParent4")); 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subChild1")); 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ROOT, SYSTEM_LOADER, PROPERTIES_CONTROL); 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("resource", bundle.getString("property")); 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ROOT, SYSTEM_LOADER, reverseControl); 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("resource", bundle.getString("property")); 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 3.use the FallbackLocale 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(LOCALE_FRFR); 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // no resource for Locale.ITALY 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, DEFAULT_CONTROL); 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue1", bundle.getString("subChild1")); 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, CLASS_CONTROL); 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue1", bundle.getString("subChild1")); 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, PROPERTIES_CONTROL); 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, reverseControl); 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // with NoFallbackControl 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Control noFallbackControl = Control 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getNoFallbackControl(FORMAT_DEFAULT); 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, noFallbackControl); 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue4", bundle.getString("subParent4")); 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = Control.getNoFallbackControl(FORMAT_CLASS); 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, noFallbackControl); 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue4", bundle.getString("subParent4")); 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = Control.getNoFallbackControl(FORMAT_PROPERTIES); 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, noFallbackControl); 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("resource", bundle.getString("property")); 783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = new ReverseNoFallbackLocaleControl(); 785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, noFallbackControl); 788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, bundle.keySet().size()); 789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("resource", bundle.getString("property")); 792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // locale is equal to the default locale 794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(Locale.ITALY); 795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.ITALY, SYSTEM_LOADER, DEFAULT_CONTROL); 798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue4", bundle.getString("subParent4")); 801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subChild1")); 803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 4.test the resources without a root resource 805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // locale that has both class file and properties file support. 806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, LOCALE_FRFR, 808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, bundle.keySet().size()); 810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subParent1")); 814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, LOCALE_FRFR, 817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, CLASS_CONTROL); 818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, bundle.keySet().size()); 819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subParent1")); 823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, LOCALE_FRFR, 826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, PROPERTIES_CONTROL); 827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, bundle.keySet().size()); 828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, LOCALE_FRFR, 834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, reverseControl); 835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, bundle.keySet().size()); 836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // root locale 841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ROOT, 844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ROOT, 853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, CLASS_CONTROL); 854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ROOT, 862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, PROPERTIES_CONTROL); 863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ROOT, 871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, reverseControl); 872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // fall back locale 878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(LOCALE_FRFR); 879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // no resource for Locale.ITALY 880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, bundle.keySet().size()); 884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue1", bundle.getString("subChild1")); 885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frValue2", bundle.getString("subParent2")); 887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue3", bundle.getString("subParent3")); 889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, CLASS_CONTROL); 893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, bundle.keySet().size()); 894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue1", bundle.getString("subChild1")); 895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frValue2", bundle.getString("subParent2")); 897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue3", bundle.getString("subParent3")); 899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, PROPERTIES_CONTROL); 903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, bundle.keySet().size()); 904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, reverseControl); 911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, bundle.keySet().size()); 912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // with NoFallbackControl 917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = Control.getNoFallbackControl(FORMAT_DEFAULT); 918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, noFallbackControl); 922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = Control.getNoFallbackControl(FORMAT_CLASS); 928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, noFallbackControl); 932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = Control.getNoFallbackControl(FORMAT_PROPERTIES); 938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, noFallbackControl); 942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes noFallbackControl = new ReverseNoFallbackLocaleControl(); 948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, noFallbackControl); 952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // locale is equal to the default locale 958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(Locale.ITALY); 959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_NOROOT_NAME, Locale.ITALY, 962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, noFallbackControl); 963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 5.simple exceptions 969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle("wrongName", LOCALE_FRFR, SYSTEM_LOADER, 972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL); 973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL_LOADER, DEFAULT_CONTROL); 980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(null, LOCALE_FRFR, SYSTEM_LOADER, 986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL); 987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, null, 993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, DEFAULT_CONTROL); 1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, null); 1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 6. exceptions caused by control 1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // illegal control causes IllegalArgumentException 1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Control otherControl = new NullCandidateLocalesControl(); 1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, otherControl); 1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // illegal control with illegal format 1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes otherControl = new GivenFormatsControl(Arrays 1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .asList(new String[] { "java.test" })); 1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalFormatControlTester(otherControl); 1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // illegal control with other format 1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes otherControl = new GivenFormatsControl(Arrays 1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .asList(new String[] { "other.format" })); 1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalFormatControlTester(otherControl); 1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void illegalFormatControlTester(Control otherControl) { 1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // cache can ignore the illegal control 1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, otherControl); 1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, otherControl); 1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // cache can also ignore the legal control 1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FRFR, 1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw MissingResourceException"); 1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MissingResourceException e) { 1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, DEFAULT_CONTROL); 1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#clearCache()} 1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clearCache() { 1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, DEFAULT_CONTROL); 1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the cache used 1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, PROPERTIES_CONTROL); 1082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 1083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 1084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 1085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 1086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 1087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(URL_LOADER); 1089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // system loader's cache is still there 1090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 1091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, PROPERTIES_CONTROL); 1092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, bundle.keySet().size()); 1093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRChildValue2", bundle.getString("subChild2")); 1094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("subParentValue1", bundle.getString("subParent1")); 1095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("frFRValue4", bundle.getString("subParent4")); 1096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("property")); 1097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, 1100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, SYSTEM_LOADER, PROPERTIES_CONTROL); 1101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, bundle.keySet().size()); 1102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFRFR", bundle.getString("propertyInFRFR")); 1103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInURLParent", bundle 1104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getString("propertyInURLParent")); 1105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 1106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("valueInFR", bundle.getString("propertyInFR")); 1107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subParent1")); 1108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @throws IOException 1112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#clearCache(ClassLoader)} 1113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clearCacheLjava_lang_ClassLoader() throws IOException { 1117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // copy the file to test 1118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL srcFile = URL_LOADER.getResource(DEFAULT_CONTROL.toResourceName( 1119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL.toBundleName(PROPERTIES_NAME, LOCALE_FRFR), 1120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "properties")); 1121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes File copyFile = ControlTest.copyFile(srcFile); 1122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (null != URL_LOADER 1123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("hyts_resource_copy_fr_FR.properties")) { 1124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // load first time 1125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME_COPY, 1126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, URL_LOADER, DEFAULT_CONTROL); 1127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 1128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ControlTest.changeProperties(copyFile); 1129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME_COPY, 1130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, URL_LOADER, DEFAULT_CONTROL); 1131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // value from cache, unchanged 1132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 1133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME_COPY, 1135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, URL_LOADER, DEFAULT_CONTROL); 1136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // value from cache, unchanged 1137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("fr_FR_resource", bundle.getString("property")); 1138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(URL_LOADER); 1139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME_COPY, 1140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LOCALE_FRFR, URL_LOADER, DEFAULT_CONTROL); 1141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // value changed 1142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("changedValue", bundle.getString("property")); 1143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 1144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.err 1145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .println("Can not find the test file, some code of this test 'test_clearCacheLjava_lang_ClassLoader' did not run."); 1146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(null); 1150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 1151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#containsKey(String)} 1158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_containsKeyLjava_lang_String() { 1162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(URL_LOADER); 1163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_FRFR, 1164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL_LOADER, DEFAULT_CONTROL); 1165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("property")); 1166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("propertyInFRFR")); 1167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("propertyInURLParent")); 1168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("propertyInSystemParent")); 1169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("propertyInFR")); 1170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(URL_LOADER); 1172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_FR, 1173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL_LOADER, DEFAULT_CONTROL); 1174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("property")); 1175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("propertyInFRFR")); 1176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("propertyInFR")); 1177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("propertyInURLParent")); 1178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("propertyInSystemParent")); 1179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_FR, 1182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 1183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("property")); 1184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("propertyInURLParent")); 1185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("propertyInSystemParent")); 1186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, LOCALE_FR, SYSTEM_LOADER, 1189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL); 1190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("parent2")); 1191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("parent1")); 1192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("child1")); 1193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("child2")); 1194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FR, 1197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 1198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("subParent1")); 1199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("subParent2")); 1200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("subParent3")); 1201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("subParent4")); 1202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(bundle.containsKey("subChild1")); 1203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subChild2")); 1204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(bundle.containsKey("subChild3")); 1205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(bundle); 1207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle.containsKey(null); 1209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 1210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#keySet()} 1217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_keySet() { 1221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(URL_LOADER); 1222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_FRFR, 1223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL_LOADER, DEFAULT_CONTROL); 1224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<String> keys = bundle.keySet(); 1225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, keys.size()); 1226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotSame(keys, bundle.keySet()); 1227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys.add("wrongKey"); 1228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys = bundle.keySet(); 1229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, keys.size()); 1230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.getClass() == HashSet.class); 1231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("propertyInFRFR")); 1232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("propertyInURLParent")); 1233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("propertyInFR")); 1234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("property")); 1235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(URL_LOADER); 1237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_FR, 1238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes URL_LOADER, DEFAULT_CONTROL); 1239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys = bundle.keySet(); 1240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, keys.size()); 1241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("propertyInURLParent")); 1242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("propertyInFR")); 1243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("property")); 1244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(PROPERTIES_NAME, LOCALE_FR, 1247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 1248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys = bundle.keySet(); 1249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, keys.size()); 1250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("propertyInSystemParent")); 1251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("property")); 1252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(CLASS_NAME, LOCALE_FR, SYSTEM_LOADER, 1255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFAULT_CONTROL); 1256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys = bundle.keySet(); 1257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, keys.size()); 1258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("parent1")); 1259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("parent2")); 1260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("parent3")); 1261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("parent4")); 1262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("child1")); 1263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ResourceBundle.clearCache(); 1265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bundle = ResourceBundle.getBundle(SUBFOLDER_PROPERTIES_NAME, LOCALE_FR, 1266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SYSTEM_LOADER, DEFAULT_CONTROL); 1267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys = bundle.keySet(); 1268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(5, keys.size()); 1269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("subParent1")); 1270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("subParent2")); 1271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("subParent3")); 1272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("subParent4")); 1273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("subChild1")); 1274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.util.ResourceBundle#handleKeySet()} 1278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_handleKeySet() { 1282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes class SubBundle extends ResourceBundle { 1283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public SubBundle() { 1284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(); 1285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 1288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Set<String> handleKeySet() { 1289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return super.handleKeySet(); 1290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 1293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Enumeration<String> getKeys() { 1294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Vector<String> keys = new Vector<String>(); 1295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys.add("key1InThis"); 1296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys.add("key2InThis"); 1297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys.add("key1InParent"); 1298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keys.add("key2InParent"); 1299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return keys.elements(); 1300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 1303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected Object handleGetObject(String key) { 1304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (key.equals("key1InParent") || key.equals("key2InParent")) { 1305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 1306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return new Object(); 1308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SubBundle subBundle = new SubBundle(); 1311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<String> keys = subBundle.handleKeySet(); 1312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, keys.size()); 1313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("key1InThis")); 1314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(keys.contains("key2InThis")); 1315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see junit.framework.TestCase#setUp() 1319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("nls") 1321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 1322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 1323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defLocale = Locale.getDefault(); 1324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(new Locale("en", "US")); 1325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see junit.framework.TestCase#tearDown() 1329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 1331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() { 1332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(defLocale); 1333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 1335