summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java')
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java363
1 files changed, 363 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java
new file mode 100755
index 000000000000..53ddc59e6ce9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java
@@ -0,0 +1,363 @@
+/*************************************************************************
+ *
+ * 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 ifc.ui;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.ui.UIElementType;
+import com.sun.star.ui.XImageManager;
+import com.sun.star.ui.XUIConfigurationManager;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+
+public class _XUIConfigurationManager extends MultiMethodTest {
+
+ public XUIConfigurationManager oObj;
+ private String msResourceUrl = "private:resource/menubar/menubar";
+ private String msMyResourceUrl = "private:resource/menubar/mymenubar";
+ private XIndexContainer mxSettings = null;
+ private XIndexAccess mxMenuBarSettings = null;
+ private XMultiServiceFactory mxMSF = null;
+ private String sShortCutManagerServiceName = null;
+
+
+ /**
+ * Some stuff before the tests:
+ * extract the multi service factory.
+ */
+ protected void before() {
+ mxMSF = (XMultiServiceFactory)tParam.getMSF();
+ sShortCutManagerServiceName = (String)tEnv.getObjRelation("XConfigurationManager.ShortCutManager");
+
+ }
+
+ /**
+ * reset all changes: do at the end.
+ */
+ public void _reset() {
+ requiredMethod("removeSettings()");
+ oObj.reset();
+ tRes.tested("reset()", true);
+ }
+
+ public void _getUIElementsInfo() {
+ boolean result = true;
+ try {
+ PropertyValue[][]props = oObj.getUIElementsInfo(UIElementType.UNKNOWN);
+ for (int i=0; i<props.length; i++)
+ for(int j=0; j<props[i].length; j++)
+ log.println("Prop["+i+"]["+j+"]: " + props[i][j].Name + " " + props[i][j].Value.toString());
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("getUIElementsInfo()", result);
+ }
+
+ public void _createSettings() {
+ mxSettings = oObj.createSettings();
+ util.dbg.printInterfaces(mxSettings);
+ tRes.tested("createSettings()", mxSettings != null);
+ }
+
+ public void _hasSettings() {
+ boolean result = false;
+ try {
+ result = oObj.hasSettings(msResourceUrl);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e);
+ result = false;
+ }
+ tRes.tested("hasSettings()", result);
+ }
+
+ public void _getSettings() {
+ requiredMethod("hasSettings()");
+ boolean result = true;
+ try {
+ mxMenuBarSettings = oObj.getSettings(msResourceUrl, true);
+ result = mxMenuBarSettings != null;
+ for (int i=0; i<mxMenuBarSettings.getCount(); i++) {
+ Object[] o = (Object[])mxMenuBarSettings.getByIndex(i);
+ log.println("+++++++++ i = " + i);
+ for (int j=0; j<o.length; j++) {
+ PropertyValue prop = (PropertyValue)o[j];
+ log.println("Property" + j + ": " + prop.Name + " " + prop.Value.toString());
+ }
+ }
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("getSettings()", result);
+ }
+
+ public void _replaceSettings() {
+ requiredMethod("getSettings()");
+ boolean result = true;
+ PropertyValue[] prop = createMenuBarEntry("My Entry", mxMenuBarSettings, mxMSF, log);
+ if (prop == null) {
+ tRes.tested("replaceSettings()", false);
+ return;
+ }
+
+ createMenuBarItem("Click for Macro", (XIndexContainer)UnoRuntime.queryInterface(
+ XIndexContainer.class, prop[3].Value), log);
+
+ XIndexContainer x = (XIndexContainer)UnoRuntime.queryInterface(XIndexContainer.class, mxMenuBarSettings);
+ try {
+ x.insertByIndex(x.getCount(), prop);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+
+ try {
+ oObj.replaceSettings(msResourceUrl, mxMenuBarSettings);
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ _getSettings();
+ tRes.tested("replaceSettings()", result);
+ }
+
+ public void _removeSettings() {
+ requiredMethod("insertSettings()");
+ boolean result = true;
+ try {
+ oObj.removeSettings(msMyResourceUrl);
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ tRes.tested("removeSettings()", result);
+ }
+
+ public void _insertSettings() {
+ requiredMethod("createSettings()");
+ requiredMethod("replaceSettings()");
+ boolean result = true;
+ util.dbg.printInterfaces(mxSettings);
+ PropertyValue[] prop = createMenuBarEntry("A new entry", mxSettings, mxMSF, log);
+ if (prop == null) {
+ tRes.tested("replaceSettings()", false);
+ return;
+ }
+
+ createMenuBarItem("A new sub entry", (XIndexContainer)UnoRuntime.queryInterface(
+ XIndexContainer.class, prop[3].Value), log);
+
+ XIndexContainer x = (XIndexContainer)UnoRuntime.queryInterface(XIndexContainer.class,mxSettings);
+ try {
+ int count = x.getCount();
+ x.insertByIndex(count, prop);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+
+ try {
+ oObj.insertSettings(msMyResourceUrl, mxSettings);
+ }
+ catch(com.sun.star.container.ElementExistException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ tRes.tested("insertSettings()", result);
+ }
+
+ /**
+ * Only a short test.
+ * See complex.imageManager.CheckImageManager for a more extensive test of
+ * this implementation.
+ */
+ public void _getImageManager() {
+ Object o = oObj.getImageManager();
+ log.println("###### ImageManager ");
+ XImageManager xImageManager = (XImageManager)UnoRuntime.queryInterface(XImageManager.class, o);
+ tRes.tested("getImageManager()", xImageManager != null);
+ }
+
+
+ /**
+ * get a shortcut manager
+ */
+ public void _getShortCutManager() {
+ Object o = oObj.getShortCutManager();
+ XServiceInfo xSI = (XServiceInfo)UnoRuntime.queryInterface(XServiceInfo.class,o);
+ String[] serviceNames = xSI.getSupportedServiceNames();
+ boolean bSupportedServiceFound = false;
+ for (int i=0; i<serviceNames.length; i++) {
+ log.println("SuppService: " + serviceNames[i]);
+ if (serviceNames[i].equals(sShortCutManagerServiceName)) {
+ bSupportedServiceFound = true;
+ }
+ }
+ tRes.tested("getShortCutManager()", bSupportedServiceFound);
+ }
+
+ public void _getEventsManager() {
+ Object o = oObj.getEventsManager();
+ tRes.tested("getEventsManager()", o == null);
+ }
+
+ /**
+ * Create a menu bar entry for adding to the menu bar of the Office.
+ * @param sLabelName The name of the new entry.
+ * @param xMenuBarSettings The existing menu bar settings, used for creating the new entry.
+ * @return An array of properties of the new entry.
+ */
+ public static PropertyValue[] createMenuBarEntry(String sLabelName, XIndexAccess xMenuBarSettings, XMultiServiceFactory xMSF, PrintWriter log) {
+ PropertyValue[] prop = new PropertyValue[4];
+ prop[0] = new PropertyValue();
+ prop[0].Name = "CommandURL";
+ prop[0].Value = "vnd.openoffice.org:MyMenu";
+ prop[1] = new PropertyValue();
+ prop[1].Name = "Label";
+ prop[1].Value = sLabelName;
+ prop[2] = new PropertyValue();
+ prop[2].Name = "Type";
+ prop[2].Value = new Short((short)0);
+ prop[3] = new PropertyValue();
+ prop[3].Name = "ItemDescriptorContainer";
+
+ XSingleComponentFactory xFactory = (XSingleComponentFactory)UnoRuntime.queryInterface(
+ XSingleComponentFactory.class, xMenuBarSettings);
+ try {
+ XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+ XComponentContext xContext = (XComponentContext)UnoRuntime.queryInterface(
+ XComponentContext.class, xProp.getPropertyValue("DefaultContext"));
+ prop[3].Value = xFactory.createInstanceWithContext(xContext);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ log.println("Could not create an instance for ItemDescriptorContainer property.");
+ e.printStackTrace(log);
+ return null;
+ }
+ return prop;
+ }
+
+ /**
+ * Create a sub entry to the menu bar.
+ * @param sLabelName The name of the entry in the UI.
+ * @param xDescriptionContainer The parent entry in the menu bar where
+ * this entry is added.
+ */
+ public static void createMenuBarItem(String sLabelName, XIndexContainer xDescriptionContainer, PrintWriter log) {
+ PropertyValue[]aMenuItem = new PropertyValue[3];
+ // create a menu item
+ aMenuItem[0] = new PropertyValue();
+ aMenuItem[0].Name = "CommandURL";
+ aMenuItem[0].Value = "macro:///Standard.Module1.Test()";
+ aMenuItem[1] = new PropertyValue();
+ aMenuItem[1].Name = "Label";
+ aMenuItem[1].Value = sLabelName;
+ aMenuItem[2] = new PropertyValue();
+ aMenuItem[2].Name = "Type";
+ aMenuItem[2].Value = new Short((short)0);
+
+ try {
+ xDescriptionContainer.insertByIndex(0, aMenuItem);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ }
+ }
+}