summaryrefslogtreecommitdiffstats
path: root/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ControlTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ControlTest.java')
-rw-r--r--harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ControlTest.java682
1 files changed, 682 insertions, 0 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ControlTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ControlTest.java
new file mode 100644
index 0000000..d0b236d
--- /dev/null
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ControlTest.java
@@ -0,0 +1,682 @@
+/*
+ * 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);
+ }
+
+}