1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 package complex.imageManager; 23 24 import com.sun.star.lang.XComponent; 25 import com.sun.star.lang.XInitialization; 26 import com.sun.star.lang.XMultiServiceFactory; 27 import com.sun.star.lang.XTypeProvider; 28 import com.sun.star.uno.UnoRuntime; 29 import com.sun.star.uno.XInterface; 30 import com.sun.star.ui.XImageManager; 31 import com.sun.star.ui.XModuleUIConfigurationManagerSupplier; 32 import com.sun.star.ui.XUIConfiguration; 33 import com.sun.star.ui.XUIConfigurationManager; 34 import com.sun.star.ui.XUIConfigurationPersistence; 35 36 37 // ---------- junit imports ----------------- 38 import lib.TestParameters; 39 import org.junit.After; 40 import org.junit.AfterClass; 41 import org.junit.Before; 42 import org.junit.BeforeClass; 43 import org.junit.Test; 44 import org.openoffice.test.OfficeConnection; 45 import static org.junit.Assert.*; 46 // ------------------------------------------ 47 48 /** 49 * 50 */ 51 public class CheckImageManager { 52 boolean checkUIConfigManager = false; 53 XMultiServiceFactory xMSF = null; 54 /** 55 * The test parameters 56 */ 57 private static TestParameters param = null; 58 59 @Before public void before() 60 { 61 xMSF = getMSF(); 62 param = new TestParameters(); 63 param.put("ServiceFactory", xMSF); // some qadevOOo functions need the ServiceFactory 64 } 65 66 // public String[] getTestMethodNames() { 67 // return new String[]{"checkImageManagerFromModule"};//, "checkImageManager"}; 68 // } 69 70 @Test public void checkImageManagerFromModule() 71 { 72 System.out.println(" **** ImageManager from ModuleUIConfigurationManager *** "); 73 XUIConfigurationManager xManager = null; 74 try { 75 Object o = (XInterface)xMSF.createInstance( 76 "com.sun.star.ui.ModuleUIConfigurationManagerSupplier"); 77 XModuleUIConfigurationManagerSupplier xMUICMS = 78 UnoRuntime.queryInterface(XModuleUIConfigurationManagerSupplier.class, o); 79 xManager = xMUICMS.getUIConfigurationManager( 80 "com.sun.star.text.TextDocument"); 81 } 82 catch(com.sun.star.uno.Exception e) { 83 fail("Exception. " + e.getMessage()); 84 } 85 XImageManager xImageManager = UnoRuntime.queryInterface(XImageManager.class, xManager.getImageManager()); 86 performChecks(xImageManager, "ModuleUIConfig", xManager); 87 } 88 89 public void checkImageManager() { 90 System.out.println(" **** ImageManager from UIConfigurationManager *** "); 91 XUIConfigurationManager xManager = null; 92 try { 93 xManager = UnoRuntime.queryInterface(XUIConfigurationManager.class, xMSF.createInstance("com.sun.star.comp.framework.UIConfigurationManager")); 94 } 95 catch(com.sun.star.uno.Exception e) { 96 fail("Exception. " + e.getMessage()); 97 } 98 99 XImageManager xImageManager = UnoRuntime.queryInterface(XImageManager.class, xManager.getImageManager()); 100 performChecks(xImageManager, "UIConfig", xManager); 101 } 102 103 private void performChecks(XImageManager xImageManager, String testObjectName, XUIConfigurationManager xManager) { 104 util.dbg.printInterfaces(xImageManager); 105 106 OXUIConfigurationListenerImpl configListener = new OXUIConfigurationListenerImpl(xManager, xMSF); 107 param.put("XUIConfiguration.XUIConfigurationListenerImpl", configListener); 108 109 XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, xImageManager); 110 _XInitialization _xInit = new _XInitialization(param, xInit); 111 assertTrue(testObjectName + "::XInitialization.initialize", _xInit._initialize()); 112 113 // xImageManager is already there, just write a test ;-) 114 _XImageManager _xImage = new _XImageManager(param, xImageManager); 115 assertTrue(testObjectName + "::XImageManager.getAllImageNames", _xImage._getAllImageNames()); 116 assertTrue(testObjectName + "::XImageManager.getImages", _xImage._getImages()); 117 assertTrue(testObjectName + "::XImageManager.hasImage", _xImage._hasImage()); 118 assertTrue(testObjectName + "::XImageManager.insertImages", _xImage._insertImages()); 119 assertTrue(testObjectName + "::XImageManager.removeImages", _xImage._removeImages()); 120 assertTrue(testObjectName + "::XImageManager.replaceImages", _xImage._replaceImages()); 121 assertTrue(testObjectName + "::XImageManager.reset", _xImage._reset()); 122 123 XTypeProvider xType = UnoRuntime.queryInterface(XTypeProvider.class, xImageManager); 124 _XTypeProvider _xType = new _XTypeProvider(param, xType); 125 assertTrue(testObjectName + "::XTypeProvider.getImplementationId", _xType._getImplementationId()); 126 assertTrue(testObjectName + "::XTypeProvider.getTypes", _xType._getTypes()); 127 128 XUIConfiguration xUIConfig = UnoRuntime.queryInterface(XUIConfiguration.class, xImageManager); 129 _XUIConfiguration _xUIConfig = new _XUIConfiguration(param, xUIConfig); 130 _xUIConfig.before(); 131 assertTrue(testObjectName + "::XUIConfig.addConfigurationListener", _xUIConfig._addConfigurationListener()); 132 assertTrue(testObjectName + "::XUIConfig.removeConfigurationListener", _xUIConfig._removeConfigurationListener()); 133 134 XUIConfigurationPersistence xUIConfigPersistence = (XUIConfigurationPersistence)UnoRuntime.queryInterface(XUIConfiguration.class, xImageManager); 135 _XUIConfigurationPersistence _xUIConfigPersistence = new _XUIConfigurationPersistence(param, xUIConfigPersistence); 136 _xUIConfigPersistence.before(); 137 assertTrue(testObjectName + "::XUIConfigPersistence.isModified", _xUIConfigPersistence._isModified()); 138 // System.out.println(testObjectName + "::XUIConfigPersistence.isReadOnly "+ _xUIConfigPersistence._isReadOnly()); 139 assertTrue(testObjectName + "::XUIConfigPersistence.isReadOnly", _xUIConfigPersistence._isReadOnly()); 140 assertTrue(testObjectName + "::XUIConfigPersistence.reload", _xUIConfigPersistence._reload()); 141 assertTrue(testObjectName + "::XUIConfigPersistence.store", _xUIConfigPersistence._store()); 142 assertTrue(testObjectName + "::XUIConfigPersistence.storeToStorage", _xUIConfigPersistence._storeToStorage()); 143 144 XComponent xComp = UnoRuntime.queryInterface(XComponent.class, xImageManager); 145 _XComponent _xComp = new _XComponent(param, xComp); 146 _xComp.before(); 147 assertTrue(testObjectName + "::XComponent.addEventListener", _xComp._addEventListener()); 148 assertTrue(testObjectName + "::XComponent.removeEventListener", _xComp._removeEventListener()); 149 assertTrue(testObjectName + "::XComponent.dispose", _xComp._dispose()); 150 } 151 152 153 class OXUIConfigurationListenerImpl implements _XUIConfiguration.XUIConfigurationListenerImpl { 154 private boolean triggered = false; 155 private XUIConfigurationManager xUIManager = null; 156 private XMultiServiceFactory xMSF = null; 157 158 public OXUIConfigurationListenerImpl(XUIConfigurationManager xUIManager, XMultiServiceFactory xMSF) { 159 160 this.xUIManager = xUIManager; 161 this.xMSF = xMSF; 162 } 163 164 public boolean actionWasTriggered() { 165 return triggered; 166 } 167 168 public void disposing(com.sun.star.lang.EventObject eventObject) { 169 triggered = true; 170 } 171 172 public void elementInserted(com.sun.star.ui.ConfigurationEvent configurationEvent) { 173 triggered = true; 174 } 175 176 public void elementRemoved(com.sun.star.ui.ConfigurationEvent configurationEvent) { 177 triggered = true; 178 } 179 180 public void elementReplaced(com.sun.star.ui.ConfigurationEvent configurationEvent) { 181 triggered = true; 182 } 183 184 public void fireEvent() { 185 // remove for real action: 186 triggered = !triggered; 187 /* try { 188 XIndexAccess xMenuBarSettings = xUIManager.getSettings( 189 "private:resource/menubar/menubar", true); 190 191 } 192 catch(com.sun.star.container.NoSuchElementException e) { 193 System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception."); 194 e.printStackTrace((java.io.PrintWriter)log); 195 } 196 catch(com.sun.star.lang.IllegalArgumentException e) { 197 System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception."); 198 e.printStackTrace((java.io.PrintWriter)log); 199 } 200 catch(com.sun.star.lang.IllegalAccessException e) { 201 System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception."); 202 e.printStackTrace((java.io.PrintWriter)log); 203 } 204 catch(com.sun.star.lang.IndexOutOfBoundsException e) { 205 System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception."); 206 e.printStackTrace((java.io.PrintWriter)log); 207 } 208 catch(com.sun.star.lang.WrappedTargetException e) { 209 System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception."); 210 e.printStackTrace((java.io.PrintWriter)log); 211 } */ 212 } 213 214 public void reset() { 215 // remove comment for real function 216 //triggered = false; 217 } 218 219 } 220 221 private XMultiServiceFactory getMSF() 222 { 223 final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager()); 224 return xMSF1; 225 } 226 227 // setup and close connections 228 @BeforeClass 229 public static void setUpConnection() throws Exception 230 { 231 System.out.println("setUpConnection()"); 232 connection.setUp(); 233 } 234 235 @AfterClass 236 public static void tearDownConnection() 237 throws InterruptedException, com.sun.star.uno.Exception 238 { 239 System.out.println("tearDownConnection()"); 240 connection.tearDown(); 241 } 242 private static final OfficeConnection connection = new OfficeConnection(); 243 244 } 245