[Osgi-messages] SF.net SVN: osgi: [80] papoose-core/trunk/papoose-core-framework/src
Status: Beta
Brought to you by:
maguro
|
From: <ab...@us...> - 2007-10-07 21:52:22
|
Revision: 80
http://osgi.svn.sourceforge.net/osgi/?rev=80&view=rev
Author: abening
Date: 2007-10-07 14:52:17 -0700 (Sun, 07 Oct 2007)
Log Message:
-----------
Better l10n testing
Modified Paths:
--------------
papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/AbstractBundle.java
papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/BundleImpl.java
papoose-core/trunk/papoose-core-framework/src/test/java/org/papoose/core/framework/BundleContextImplTest.java
Modified: papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/AbstractBundle.java
===================================================================
--- papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/AbstractBundle.java 2007-10-07 21:50:58 UTC (rev 79)
+++ papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/AbstractBundle.java 2007-10-07 21:52:17 UTC (rev 80)
@@ -42,6 +42,8 @@
this.bundleId = bundleId;
this.bundleStore = bundleStore;
this.currentStore = currentStore;
+
+ this.stores.add(currentStore);
}
public long getBundleId()
Modified: papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/BundleImpl.java
===================================================================
--- papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/BundleImpl.java 2007-10-07 21:50:58 UTC (rev 79)
+++ papoose-core/trunk/papoose-core-framework/src/main/java/org/papoose/core/framework/BundleImpl.java 2007-10-07 21:52:17 UTC (rev 80)
@@ -520,7 +520,7 @@
{
if (locale != null && locale.length() == 0) return allocateDictionary(getCurrentStore().getAttributes());
- L18nBundle parent = getCurrentStore().getResourceBundle(null);
+ L18nBundle parent = loadResourceBundle(getStores(), null, null);
for (Locale intermediate : generateLocaleList(Locale.getDefault()))
{
@@ -529,7 +529,7 @@
if (locale != null)
{
- Locale target = new Locale(locale);
+ Locale target = generateLocale(locale);
if (!target.equals(Locale.getDefault()))
{
for (Locale intermediate : generateLocaleList(target))
@@ -900,6 +900,14 @@
};
}
+ private static Locale generateLocale(String locale)
+ {
+ String[] tokens = locale.split("_");
+ if (tokens.length == 3) return new Locale(tokens[0], tokens[1], tokens[3]);
+ if (tokens.length == 2) return new Locale(tokens[0], tokens[1]);
+ return new Locale(tokens[0]);
+ }
+
private static Dictionary allocateDictionary(final Attributes attributes, final ResourceBundle resourceBundle)
{
return new Dictionary()
Modified: papoose-core/trunk/papoose-core-framework/src/test/java/org/papoose/core/framework/BundleContextImplTest.java
===================================================================
--- papoose-core/trunk/papoose-core-framework/src/test/java/org/papoose/core/framework/BundleContextImplTest.java 2007-10-07 21:50:58 UTC (rev 79)
+++ papoose-core/trunk/papoose-core-framework/src/test/java/org/papoose/core/framework/BundleContextImplTest.java 2007-10-07 21:52:17 UTC (rev 80)
@@ -3,11 +3,10 @@
*/
package org.papoose.core.framework;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.InputStreamReader;
import java.net.URL;
import java.util.Dictionary;
+import java.util.Locale;
import java.util.Properties;
import junit.framework.TestCase;
@@ -22,6 +21,8 @@
*/
public class BundleContextImplTest extends TestCase
{
+ private Locale savedLocale;
+
public void test() throws Exception
{
File fileStoreRoot = new File("./target/store");
@@ -43,8 +44,34 @@
BundleContextImpl context = new BundleContextImpl(bundle);
Bundle b = context.installBundle(testBundle.toURL().toURI().normalize().toString());
+
Dictionary headers = b.getHeaders("en");
- String symbolicName = (String) headers.get("Bundle-SymbOLicName");
+ assertEquals("org.papoose.test.papoose-test-bundle", (String) headers.get("Bundle-SymbOLicName"));
+
+ headers = b.getHeaders("en");
+ assertEquals("bundle_en", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders();
+ assertEquals("bundle_en", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders(null);
+ assertEquals("bundle_en", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders("en_US");
+ assertEquals("bundle_en", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders("fr");
+ assertEquals("bundle_fr", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders("fr_FR");
+ assertEquals("bundle_fr_FR", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders("");
+ assertEquals("%bundle", (String) headers.get("L10N-Bundle"));
+
+ headers = b.getHeaders("en");
+ assertEquals("no translation for this entry", (String) headers.get("L10N-NoTranslation"));
+
URL url = b.getEntry("com/acme/fuse/dynamite.xml");
// BufferedReader in = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
// String line = in.readLine();
@@ -57,10 +84,14 @@
}
}
+ @SuppressWarnings({ "EmptyCatchBlock" })
public void setUp() throws Exception
{
super.setUp();
+ savedLocale = Locale.getDefault();
+ Locale.setDefault(new Locale("en", "US"));
+
try
{
URL.setURLStreamHandlerFactory(new MockURLStreamHandlerFactory());
@@ -69,4 +100,12 @@
{
}
}
+
+ public void tearDown() throws Exception
+ {
+ Locale.setDefault(savedLocale);
+ savedLocale = null;
+
+ super.tearDown();
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|