| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.harmony.tests.java.util; |
| |
| import junit.framework.TestCase; |
| import tests.support.resource.Support_Resources; |
| import java.io.File; |
| import java.io.FileNotFoundException; |
| import java.io.FileWriter; |
| import java.io.IOException; |
| import java.io.InputStreamReader; |
| import java.io.PrintWriter; |
| import java.io.Reader; |
| import java.io.Writer; |
| import java.net.URL; |
| import java.util.ArrayList; |
| import java.util.Collections; |
| import java.util.List; |
| import java.util.ListResourceBundle; |
| import java.util.Locale; |
| import java.util.PropertyResourceBundle; |
| import java.util.ResourceBundle; |
| import java.util.ResourceBundle.Control; |
| import java.util.Scanner; |
| import static java.util.ResourceBundle.Control.*; |
| |
| /** |
| * Test cases for java.util.ResourceBundle.Control |
| * |
| * @since 1.6 |
| */ |
| public class ControlTest extends TestCase { |
| |
| /** |
| * Control with format:FORMAT_PROPERTIES |
| */ |
| private Control controlP; |
| |
| /** |
| * Control with format:FORMAT_CLASS |
| */ |
| private Control controlC; |
| |
| /** |
| * Control with format:FORMAT_DEFAULT |
| */ |
| private Control control; |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#Control()}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_Constructor() { |
| |
| class SubControl extends Control { |
| SubControl() { |
| super(); |
| } |
| } |
| Control subControl = new SubControl(); |
| assertEquals(FORMAT_DEFAULT, subControl.getFormats("")); |
| assertFalse(control.equals(subControl)); |
| } |
| |
| /** |
| * Test for all the public constants. |
| * |
| * {@link java.util.ResourceBundle.Control#FORMAT_CLASS} |
| * {@link java.util.ResourceBundle.Control#FORMAT_DEFAULT} |
| * {@link java.util.ResourceBundle.Control#FORMAT_PROPERTIES} |
| * {@link java.util.ResourceBundle.Control#TTL_DONT_CACHE} |
| * {@link java.util.ResourceBundle.Control#TTL_NO_EXPIRATION_CONTROL} |
| */ |
| @SuppressWarnings("nls") |
| public void test_Constants() { |
| List<String> list = FORMAT_CLASS; |
| assertEquals(1, list.size()); |
| assertEquals("java.class", list.get(0)); |
| list = FORMAT_PROPERTIES; |
| assertEquals(1, list.size()); |
| assertEquals("java.properties", list.get(0)); |
| list = FORMAT_DEFAULT; |
| assertEquals(2, list.size()); |
| assertEquals("java.class", list.get(0)); |
| assertEquals("java.properties", list.get(1)); |
| try { |
| FORMAT_CLASS.add(""); |
| fail("Should throw UnsupportedOperationException"); |
| } catch (UnsupportedOperationException e) { |
| // expected |
| } |
| try { |
| FORMAT_DEFAULT.add(""); |
| fail("Should throw UnsupportedOperationException"); |
| } catch (UnsupportedOperationException e) { |
| // expected |
| } |
| try { |
| FORMAT_PROPERTIES.add(""); |
| fail("Should throw UnsupportedOperationException"); |
| } catch (UnsupportedOperationException e) { |
| // expected |
| } |
| Class<?> unmodifiableListClass = Collections.unmodifiableList( |
| new ArrayList<String>()).getClass(); |
| assertEquals(FORMAT_CLASS.getClass(), unmodifiableListClass); |
| assertEquals(FORMAT_DEFAULT.getClass(), unmodifiableListClass); |
| assertEquals(FORMAT_PROPERTIES.getClass(), unmodifiableListClass); |
| assertEquals(-1L, TTL_DONT_CACHE); |
| assertEquals(-2L, TTL_NO_EXPIRATION_CONTROL); |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#getControl(java.util.List)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_getControl_LList() { |
| // singleton |
| assertSame(control, Control.getControl(FORMAT_DEFAULT)); |
| assertSame(controlC, Control.getControl(FORMAT_CLASS)); |
| assertSame(controlP, Control.getControl(FORMAT_PROPERTIES)); |
| |
| // class |
| assertTrue(control.getClass() == Control.class); |
| assertTrue(controlC.getClass() != Control.class); |
| assertTrue(controlP.getClass() != Control.class); |
| |
| // formats: need not same, just need equal |
| List<String> list = new ArrayList<String>(FORMAT_CLASS); |
| assertSame(controlC, Control.getControl(list)); |
| // can add |
| list.add(FORMAT_PROPERTIES.get(0)); |
| assertSame(control, Control.getControl(list)); |
| |
| // exceptions |
| try { |
| Control.getControl(null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| list = new ArrayList<String>(); |
| try { |
| Control.getControl(list); |
| fail("Should throw IllegalArgumentException"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| list = new ArrayList<String>(FORMAT_CLASS); |
| // java.class -> JAVA.CLASS |
| list.set(0, list.get(0).toUpperCase()); |
| try { |
| Control.getControl(list); |
| fail("Should throw IllegalArgumentException"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| list = new ArrayList<String>(FORMAT_CLASS); |
| list.add(""); |
| try { |
| Control.getControl(list); |
| fail("Should throw IllegalArgumentException"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#getNoFallbackControl(java.util.List)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_getNoFallbackControl_LList() { |
| assertNotSame(control, Control.getNoFallbackControl(FORMAT_DEFAULT)); |
| assertNotSame(controlC, Control.getNoFallbackControl(FORMAT_CLASS)); |
| assertNotSame(controlP, Control.getNoFallbackControl(FORMAT_PROPERTIES)); |
| controlP = Control.getNoFallbackControl(FORMAT_PROPERTIES); |
| controlC = Control.getNoFallbackControl(FORMAT_CLASS); |
| control = Control.getNoFallbackControl(FORMAT_DEFAULT); |
| // singleton |
| assertSame(control, Control.getNoFallbackControl(FORMAT_DEFAULT)); |
| assertSame(controlC, Control.getNoFallbackControl(FORMAT_CLASS)); |
| assertSame(controlP, Control.getNoFallbackControl(FORMAT_PROPERTIES)); |
| |
| // class |
| assertTrue(control.getClass() != Control.class); |
| assertTrue(controlC.getClass() != Control.class); |
| assertTrue(controlP.getClass() != Control.class); |
| |
| // format |
| assertEquals(FORMAT_CLASS, controlC.getFormats("")); |
| assertEquals(FORMAT_DEFAULT, control.getFormats("")); |
| assertEquals(FORMAT_PROPERTIES, controlP.getFormats("")); |
| |
| // no fall back locale |
| Locale defaultLocale = Locale.getDefault(); |
| Locale.setDefault(new Locale("TestLanguage", "TestCountry", "Var")); |
| assertNull(control.getFallbackLocale("message", Locale.US)); |
| try { |
| control.getFallbackLocale("message", null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| try { |
| control.getFallbackLocale(null, Locale.US); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| Locale.setDefault(defaultLocale); |
| |
| // formats: need not same, just need equal |
| List<String> list = new ArrayList<String>(FORMAT_CLASS); |
| assertSame(controlC, Control.getNoFallbackControl(list)); |
| // can add |
| list.add(FORMAT_PROPERTIES.get(0)); |
| assertSame(control, Control.getNoFallbackControl(list)); |
| |
| // exceptions |
| try { |
| Control.getNoFallbackControl(null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| list = new ArrayList<String>(); |
| try { |
| Control.getNoFallbackControl(list); |
| fail("Should throw IllegalArgumentException"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| list = new ArrayList<String>(FORMAT_CLASS); |
| // java.class -> JAVA.CLASS |
| list.set(0, list.get(0).toUpperCase()); |
| try { |
| Control.getNoFallbackControl(list); |
| fail("Should throw IllegalArgumentException"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| list = new ArrayList<String>(FORMAT_CLASS); |
| list.add(""); |
| try { |
| Control.getNoFallbackControl(list); |
| fail("Should throw IllegalArgumentException"); |
| } catch (IllegalArgumentException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#getFormats(java.lang.String)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_getFormats_LString() { |
| assertEquals(FORMAT_DEFAULT, control.getFormats("")); |
| assertEquals(FORMAT_PROPERTIES, controlP.getFormats("")); |
| assertEquals(FORMAT_CLASS, controlC.getFormats("")); |
| try { |
| controlC.getFormats(null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#getCandidateLocales(java.lang.String, java.util.Locale)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_getCandidateLocales_LStringLLocale() { |
| // the ResourceBundle for this baseName and Locale does not exists |
| List<Locale> result = control.getCandidateLocales("baseName", |
| new Locale("one", "two", "three")); |
| assertEquals(4, result.size()); |
| Locale locale = result.get(0); |
| assertEquals("one", locale.getLanguage()); |
| assertEquals("TWO", locale.getCountry()); |
| assertEquals("three", locale.getVariant()); |
| assertEquals(new Locale("one", "TWO"), result.get(1)); |
| assertEquals(new Locale("one"), result.get(2)); |
| assertSame(Locale.ROOT, result.get(3)); |
| // ArrayList is not immutable |
| assertTrue(ArrayList.class == result.getClass()); |
| |
| result = control.getCandidateLocales("baseName", new Locale("one", |
| "two", "")); |
| assertEquals(new Locale("one", "TWO"), result.get(0)); |
| assertEquals(new Locale("one"), result.get(1)); |
| assertSame(Locale.ROOT, result.get(2)); |
| |
| result = control.getCandidateLocales("baseName", new Locale("one", "", |
| "three")); |
| assertEquals(new Locale("one", "", "three"), result.get(0)); |
| assertEquals(new Locale("one"), result.get(1)); |
| assertSame(Locale.ROOT, result.get(2)); |
| |
| result = control.getCandidateLocales("baseName", new Locale("", "two", |
| "three")); |
| assertEquals(new Locale("", "TWO", "three"), result.get(0)); |
| assertEquals(new Locale("", "TWO"), result.get(1)); |
| assertSame(Locale.ROOT, result.get(2)); |
| |
| result = control.getCandidateLocales("baseName", new Locale("", "", |
| "three")); |
| assertEquals(new Locale("", "", "three"), result.get(0)); |
| assertSame(Locale.ROOT, result.get(1)); |
| |
| result = control.getCandidateLocales("baseName", new Locale("", "two", |
| "")); |
| assertEquals(new Locale("", "TWO"), result.get(0)); |
| assertSame(Locale.ROOT, result.get(1)); |
| |
| result = control.getCandidateLocales("baseName", Locale.ROOT); |
| assertSame(Locale.ROOT, result.get(0)); |
| |
| try { |
| control.getCandidateLocales(null, Locale.US); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| |
| try { |
| control.getCandidateLocales("baseName", null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#getFallbackLocale(java.lang.String, java.util.Locale)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_getFallbackLocale_LStringLLocale() { |
| Locale defaultLocale = Locale.getDefault(); |
| Locale testLocale = new Locale("TestLanguage", "TestCountry", "Var"); |
| Locale.setDefault(testLocale); |
| assertSame(testLocale, control.getFallbackLocale("baseName", |
| Locale.ROOT)); |
| assertSame(testLocale, control.getFallbackLocale("baseName", Locale.US)); |
| assertSame(null, control.getFallbackLocale("baseName", testLocale)); |
| try { |
| control.getFallbackLocale(null, Locale.US); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| |
| try { |
| control.getFallbackLocale("baseName", null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| // restore |
| Locale.setDefault(defaultLocale); |
| } |
| |
| @SuppressWarnings("nls") |
| static File copyFile(final URL src) throws IOException { |
| String tail = src.getFile().split("hyts_resource")[1]; |
| String tmpdir = System.getProperty("java.io.tmpdir"); |
| if (null == tmpdir) { |
| return null; |
| } |
| String copyName = tmpdir + File.separator + "hyts_resource_copy" + tail; |
| File copy = new File(copyName); |
| if (copy.exists()) { |
| copy.delete(); |
| } |
| copy.createNewFile(); |
| copy.deleteOnExit(); |
| |
| Reader in = new InputStreamReader(src.openStream()); |
| Writer out = new FileWriter(copy); |
| int c; |
| while ((c = in.read()) != -1) { |
| out.write(c); |
| } |
| in.close(); |
| out.close(); |
| return copy; |
| } |
| |
| static class SubRBStaticPrivate extends ListResourceBundle { |
| private SubRBStaticPrivate() { |
| super(); |
| } |
| |
| @Override |
| protected Object[][] getContents() { |
| return null; |
| } |
| } |
| |
| /* |
| * change the value in the .properties file |
| */ |
| @SuppressWarnings("nls") |
| static void changeProperties(File file) throws FileNotFoundException { |
| String newValue = "property=changedValue"; |
| PrintWriter writer = new PrintWriter(file); |
| writer.write(newValue); |
| writer.flush(); |
| writer.close(); |
| Scanner scanner = new Scanner(file); |
| assertEquals(newValue, scanner.nextLine()); |
| scanner.close(); |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#getTimeToLive(java.lang.String, java.util.Locale)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_getTimeToLive_LStringLLocale() { |
| assertEquals(TTL_NO_EXPIRATION_CONTROL, control.getTimeToLive( |
| "baseName", Locale.US)); |
| try { |
| control.getTimeToLive(null, Locale.US); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| try { |
| control.getTimeToLive("baseName", null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * @throws Exception |
| * {@link java.util.ResourceBundle.Control#needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_needsReload_LStringLLocaleLStringLClassLoaderResourceBundleJ() |
| throws Exception { |
| String className = "tests.support.Support_TestResource"; |
| String propertiesName = Support_Resources.RESOURCE_PACKAGE_NAME |
| + ".hyts_resource"; |
| String propertiesNameCopy = "hyts_resource_copy"; |
| String CLASS = "java.class"; |
| String PROPERTIES = "java.properties"; |
| Locale frFR = new Locale("fr", "FR"); |
| ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); |
| ClassLoader URLLoader = systemLoader; |
| ResourceBundle bundle = null; |
| long time = 0L; |
| final URL srcFile = URLLoader.getResource(control.toResourceName( |
| control.toBundleName(propertiesName, frFR), "properties")); |
| assertNotNull(srcFile); |
| final File copyFile = copyFile(srcFile); |
| |
| // 1. format = "java.properties" |
| if (null != URLLoader.getResourceAsStream(copyFile.toURL().toString())) { |
| Thread.sleep(1000); |
| bundle = control.newBundle(propertiesNameCopy, frFR, PROPERTIES, |
| URLLoader, false); |
| time = System.currentTimeMillis(); |
| assertTrue(bundle.getClass() == PropertyResourceBundle.class); |
| assertEquals("fr_FR_resource", bundle.getString("property")); |
| assertFalse(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, bundle, time)); |
| // change the file |
| Thread.sleep(2000); |
| changeProperties(copyFile); |
| assertTrue(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, bundle, time)); |
| // detect again |
| assertTrue(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, bundle, time)); |
| // long long ago |
| assertTrue(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, bundle, 2006L)); |
| // other loader |
| assertFalse(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, systemLoader, bundle, time)); |
| // other bundle |
| ResourceBundle otherBundle = control.newBundle(propertiesName, |
| Locale.ROOT, PROPERTIES, systemLoader, false); |
| assertEquals("parent", otherBundle.getString("property")); |
| assertTrue(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, otherBundle, time)); |
| otherBundle = control.newBundle(propertiesName, Locale.ROOT, |
| PROPERTIES, URLLoader, false); |
| assertEquals("resource", otherBundle.getString("property")); |
| assertTrue(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, otherBundle, time)); |
| // other time |
| assertFalse(control.needsReload(propertiesNameCopy, frFR, |
| PROPERTIES, URLLoader, bundle, System.currentTimeMillis())); |
| } else { |
| System.err |
| .println("Can not find the test file, some code of this test 'test_needsReload_LStringLLocaleLStringLClassLoaderResourceBundleJ' did not run."); |
| |
| } |
| |
| // 2. format = "java.class" |
| bundle = control.newBundle(className, frFR, CLASS, systemLoader, false); |
| time = System.currentTimeMillis(); |
| assertEquals("frFRValue3", bundle.getString("parent3")); |
| assertFalse(control.needsReload(className, frFR, CLASS, systemLoader, |
| bundle, time)); |
| // exceptions |
| control.needsReload(propertiesName, frFR, PROPERTIES, URLLoader, |
| bundle, time); |
| try { |
| control |
| .needsReload(null, frFR, PROPERTIES, URLLoader, bundle, |
| time); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| try { |
| control.needsReload(propertiesName, null, PROPERTIES, URLLoader, |
| bundle, time); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| try { |
| control.needsReload(propertiesName, frFR, null, URLLoader, bundle, |
| time); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| try { |
| control.needsReload(propertiesName, frFR, PROPERTIES, null, bundle, |
| time); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| try { |
| control.needsReload(propertiesName, frFR, PROPERTIES, URLLoader, |
| null, time); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#toBundleName(java.lang.String, java.util.Locale)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_toBundleName_LStringLLocale() { |
| assertEquals("baseName_one_TWO_three", control.toBundleName("baseName", |
| new Locale("one", "two", "three"))); |
| assertEquals("baseName_one_TWO", control.toBundleName("baseName", |
| new Locale("one", "two"))); |
| assertEquals("baseName_one__three", control.toBundleName("baseName", |
| new Locale("one", "", "three"))); |
| assertEquals("baseName__TWO_three", control.toBundleName("baseName", |
| new Locale("", "two", "three"))); |
| assertEquals("baseName_one", control.toBundleName("baseName", |
| new Locale("one", "", ""))); |
| assertEquals("baseName___three", control.toBundleName("baseName", |
| new Locale("", "", "three"))); |
| assertEquals("baseName__TWO", control.toBundleName("baseName", |
| new Locale("", "two", ""))); |
| assertEquals("baseName", control.toBundleName("baseName", new Locale( |
| "", "", ""))); |
| assertEquals("baseName", control.toBundleName("baseName", Locale.ROOT)); |
| assertEquals("_one_TWO_three", control.toBundleName("", new Locale( |
| "one", "two", "three"))); |
| assertEquals("", control.toBundleName("", Locale.ROOT)); |
| |
| assertEquals("does.not.exists_one_TWO_three", control.toBundleName( |
| "does.not.exists", new Locale("one", "two", "three"))); |
| assertEquals("does/not/exists_one_TWO_three", control.toBundleName( |
| "does/not/exists", new Locale("one", "two", "three"))); |
| assertEquals("does_not_exists__one_TWO_three", control.toBundleName( |
| "does_not_exists_", new Locale("one", "two", "three"))); |
| |
| assertEquals("...", control.toBundleName("...", Locale.ROOT)); |
| assertEquals("s/./\\//g", control |
| .toBundleName("s/./\\//g", Locale.ROOT)); |
| assertEquals("123_one", control.toBundleName("123", new Locale("one"))); |
| |
| try { |
| control.toBundleName(null, Locale.US); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| |
| try { |
| control.toBundleName("baseName", null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * {@link java.util.ResourceBundle.Control#toResourceName(java.lang.String, java.lang.String)}. |
| */ |
| @SuppressWarnings("nls") |
| public void test_toResourceNameLStringLString() { |
| assertEquals("does/not/exists_language_country.someSuffix", control |
| .toResourceName("does.not.exists_language_country", |
| "someSuffix")); |
| assertEquals("does/not/exists_language_country.someSuffix", control |
| .toResourceName("does/not/exists_language_country", |
| "someSuffix")); |
| assertEquals("does///not//exists_language/country.someSuffix", control |
| .toResourceName("does...not..exists_language.country", |
| "someSuffix")); |
| assertEquals("does\\not\\exists_language_country.someSuffix", control |
| .toResourceName("does\\not\\exists_language_country", |
| "someSuffix")); |
| assertEquals("does/not/exists_language_country/.someSuffix", control |
| .toResourceName("does.not.exists_language_country.", |
| "someSuffix")); |
| assertEquals("does/not/exists_language_country../someSuffix", control |
| .toResourceName("does.not.exists_language_country", |
| "./someSuffix")); |
| |
| assertEquals("///.//", control.toResourceName("...", "//")); |
| assertEquals("///...", control.toResourceName("///", "..")); |
| assertEquals("123...", control.toResourceName("123", "..")); |
| assertEquals("base.", control.toResourceName("base", "")); |
| assertEquals(".suffix", control.toResourceName("", "suffix")); |
| assertEquals(".", control.toResourceName("", "")); |
| |
| try { |
| control.toResourceName(null, "suffix"); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| |
| try { |
| control.toResourceName("bundleName", null); |
| fail("Should throw NullPointerException"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| |
| } |
| |
| /** |
| * @throws java.lang.Exception |
| */ |
| @Override |
| protected void tearDown() throws Exception { |
| super.tearDown(); |
| } |
| |
| /** |
| * @throws java.lang.Exception |
| */ |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| controlP = Control.getControl(FORMAT_PROPERTIES); |
| controlC = Control.getControl(FORMAT_CLASS); |
| control = Control.getControl(FORMAT_DEFAULT); |
| } |
| |
| } |