summaryrefslogtreecommitdiff
path: root/extensions/qa/complex/extensions/OfficeResourceLoader.java
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/qa/complex/extensions/OfficeResourceLoader.java')
-rw-r--r--extensions/qa/complex/extensions/OfficeResourceLoader.java157
1 files changed, 157 insertions, 0 deletions
diff --git a/extensions/qa/complex/extensions/OfficeResourceLoader.java b/extensions/qa/complex/extensions/OfficeResourceLoader.java
new file mode 100644
index 000000000000..f28d04d3d438
--- /dev/null
+++ b/extensions/qa/complex/extensions/OfficeResourceLoader.java
@@ -0,0 +1,157 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package complex.extensions;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+
+import com.sun.star.resource.XResourceBundle;
+import com.sun.star.resource.XResourceBundleLoader;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.lang.Locale;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public class OfficeResourceLoader
+{
+ XResourceBundleLoader m_loader;
+ XResourceBundle m_bundle;
+
+ /** Creates a new instance of ValueBinding */
+ public OfficeResourceLoader()
+ {
+ }
+
+ /* ------------------------------------------------------------------ */
+// public String[] getTestMethodNames()
+// {
+// return new String[] {
+// "checkSimpleStringAccess",
+// "checkLocales"
+// };
+// }
+
+ /* ------------------------------------------------------------------ */
+// public String getTestObjectName()
+// {
+// return "Extensions - OfficeResourceLoader";
+// }
+
+ /* ------------------------------------------------------------------ */
+ @Before public void before() throws com.sun.star.uno.Exception, java.lang.Exception
+ {
+ XPropertySet orb = UnoRuntime.queryInterface(XPropertySet.class, getMSF());
+ XComponentContext context = UnoRuntime.queryInterface(XComponentContext.class, orb.getPropertyValue("DefaultContext"));
+
+ m_loader = com.sun.star.resource.OfficeResourceLoader.get( context );
+ }
+
+ /* ------------------------------------------------------------------ */
+ @After public void after() throws com.sun.star.uno.Exception, java.lang.Exception
+ {
+ }
+
+ /* ------------------------------------------------------------------ */
+ @Test public void checkSimpleStringAccess() throws com.sun.star.uno.Exception, java.lang.Exception
+ {
+ // default bundle (UI locale)
+ m_bundle = m_loader.loadBundle_Default( "orl" );
+
+ Locale resourceLocale = m_bundle.getLocale();
+
+ String testString = (String)m_bundle.getByName( "string:1000" );
+
+ if ( resourceLocale.Language.equals( "en" )
+ && resourceLocale.Country.equals( "US" )
+ && resourceLocale.Variant.equals( "" )
+ )
+ {
+ assertTrue( "invalid 'en-US' string", testString.equals( "Dummy String" ) );
+ }
+
+ if ( resourceLocale.Language.equals( "de" )
+ && resourceLocale.Country.equals( "" )
+ && resourceLocale.Variant.equals( "" )
+ )
+ {
+ assertTrue( "invalid 'de' string", testString.equals( "Attrappen-Zeichenkette" ) );
+ }
+
+ if ( resourceLocale.Language.equals( "" )
+ && resourceLocale.Country.equals( "" )
+ && resourceLocale.Variant.equals( "" )
+ )
+ {
+ assertTrue( "invalid unlocalized string", testString.equals( "unlocalized string" ) );
+ }
+ }
+
+ /* ------------------------------------------------------------------ */
+ @Test public void checkLocales() throws com.sun.star.uno.Exception, java.lang.Exception
+ {
+ // en-US bundle (should always be built and thus present and thus found)
+ m_bundle = m_loader.loadBundle( "orl", new Locale( "en", "US", "" ) );
+ Locale resourceLocale = m_bundle.getLocale();
+ assertTrue( "'en-US' could not be loaded",
+ resourceLocale.Language.equals( "en" ) && resourceLocale.Country.equals( "US" ) && resourceLocale.Variant.equals( "" ) );
+
+ // some (invalid) locale which is usually no built, and should thus fallback to en-US
+ m_bundle = m_loader.loadBundle( "orl", new Locale( "inv", "al", "id" ) );
+ resourceLocale = m_bundle.getLocale();
+ assertTrue( "non-existing locale request does not fallback to en-US",
+ resourceLocale.Language.equals( "en" ) && resourceLocale.Country.equals( "US" ) && resourceLocale.Variant.equals( "" ) );
+ }
+
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // setup and close connections
+ @BeforeClass public static void setUpConnection() throws Exception {
+ System.out.println("setUpConnection()");
+ connection.setUp();
+ }
+
+ @AfterClass public static void tearDownConnection()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ System.out.println("tearDownConnection()");
+ connection.tearDown();
+ }
+
+ private static final OfficeConnection connection = new OfficeConnection();
+}