1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package complex.ModuleManager; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import com.sun.star.beans.*; 27*b1cdbd2cSJim Jagielski import com.sun.star.frame.*; 28*b1cdbd2cSJim Jagielski import com.sun.star.lang.*; 29*b1cdbd2cSJim Jagielski import com.sun.star.uno.AnyConverter; 30*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 31*b1cdbd2cSJim Jagielski import com.sun.star.util.*; 32*b1cdbd2cSJim Jagielski import com.sun.star.container.*; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski // ---------- junit imports ----------------- 37*b1cdbd2cSJim Jagielski import org.junit.After; 38*b1cdbd2cSJim Jagielski import org.junit.AfterClass; 39*b1cdbd2cSJim Jagielski import org.junit.Before; 40*b1cdbd2cSJim Jagielski import org.junit.BeforeClass; 41*b1cdbd2cSJim Jagielski import org.junit.Test; 42*b1cdbd2cSJim Jagielski import org.openoffice.test.OfficeConnection; 43*b1cdbd2cSJim Jagielski import static org.junit.Assert.*; 44*b1cdbd2cSJim Jagielski // ------------------------------------------ 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski //----------------------------------------------- 47*b1cdbd2cSJim Jagielski /** @short todo document me 48*b1cdbd2cSJim Jagielski */ 49*b1cdbd2cSJim Jagielski public class CheckXModuleManager 50*b1cdbd2cSJim Jagielski { 51*b1cdbd2cSJim Jagielski //------------------------------------------- 52*b1cdbd2cSJim Jagielski // some const 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski //------------------------------------------- 55*b1cdbd2cSJim Jagielski // member 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski /** points to the global uno service manager. */ 58*b1cdbd2cSJim Jagielski private XMultiServiceFactory m_xSmgr = null; 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski /** the module manager for testing. */ 61*b1cdbd2cSJim Jagielski private XModuleManager m_xMM = null; 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski /** a special frame used to load documents there. */ 64*b1cdbd2cSJim Jagielski private XComponentLoader m_xLoader = null; 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski //------------------------------------------- 67*b1cdbd2cSJim Jagielski // test environment 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski //------------------------------------------- 70*b1cdbd2cSJim Jagielski /** @short A function to tell the framework, 71*b1cdbd2cSJim Jagielski which test functions are available. 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski @return All test methods. 74*b1cdbd2cSJim Jagielski @todo Think about selection of tests from outside ... 75*b1cdbd2cSJim Jagielski */ 76*b1cdbd2cSJim Jagielski // public String[] getTestMethodNames() 77*b1cdbd2cSJim Jagielski // { 78*b1cdbd2cSJim Jagielski // return new String[] 79*b1cdbd2cSJim Jagielski // { 80*b1cdbd2cSJim Jagielski // "checkModuleIdentification" , 81*b1cdbd2cSJim Jagielski // "checkModuleConfigurationReadable" , 82*b1cdbd2cSJim Jagielski // "checkModuleConfigurationWriteable", 83*b1cdbd2cSJim Jagielski // "checkModuleConfigurationQueries" 84*b1cdbd2cSJim Jagielski // }; 85*b1cdbd2cSJim Jagielski // } 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski //------------------------------------------- 88*b1cdbd2cSJim Jagielski /** @short Create the environment for following tests. 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski @descr Use either a component loader from desktop or 91*b1cdbd2cSJim Jagielski from frame 92*b1cdbd2cSJim Jagielski */ before()93*b1cdbd2cSJim Jagielski @Before public void before() 94*b1cdbd2cSJim Jagielski throws java.lang.Exception 95*b1cdbd2cSJim Jagielski { 96*b1cdbd2cSJim Jagielski // get uno service manager from global test environment 97*b1cdbd2cSJim Jagielski m_xSmgr = getMSF(); 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski // create module manager 100*b1cdbd2cSJim Jagielski m_xMM = UnoRuntime.queryInterface(XModuleManager.class, m_xSmgr.createInstance("com.sun.star.frame.ModuleManager")); 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski // create desktop instance to create a special frame to load documents there. 103*b1cdbd2cSJim Jagielski XFrame xDesktop = UnoRuntime.queryInterface(XFrame.class, m_xSmgr.createInstance("com.sun.star.frame.Desktop")); 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski m_xLoader = UnoRuntime.queryInterface(XComponentLoader.class, xDesktop.findFrame("_blank", 0)); 106*b1cdbd2cSJim Jagielski } 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski //------------------------------------------- 109*b1cdbd2cSJim Jagielski /** @short close the environment. 110*b1cdbd2cSJim Jagielski */ after()111*b1cdbd2cSJim Jagielski @After public void after() 112*b1cdbd2cSJim Jagielski throws java.lang.Exception 113*b1cdbd2cSJim Jagielski { 114*b1cdbd2cSJim Jagielski XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, m_xLoader); 115*b1cdbd2cSJim Jagielski xClose.close(false); 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski m_xLoader = null; 118*b1cdbd2cSJim Jagielski m_xMM = null; 119*b1cdbd2cSJim Jagielski m_xSmgr = null; 120*b1cdbd2cSJim Jagielski } 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski //------------------------------------------- 123*b1cdbd2cSJim Jagielski /** @todo document me 124*b1cdbd2cSJim Jagielski */ checkModuleIdentification()125*b1cdbd2cSJim Jagielski @Test public void checkModuleIdentification() 126*b1cdbd2cSJim Jagielski throws java.lang.Exception 127*b1cdbd2cSJim Jagielski { 128*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.text.TextDocument" ); 129*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.text.WebDocument" ); 130*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.text.GlobalDocument" ); 131*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.formula.FormulaProperties" ); 132*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.sheet.SpreadsheetDocument" ); 133*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.drawing.DrawingDocument" ); 134*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.presentation.PresentationDocument"); 135*b1cdbd2cSJim Jagielski impl_identifyModulesBasedOnDocs("com.sun.star.sdb.OfficeDatabaseDocument" ); 136*b1cdbd2cSJim Jagielski // TODO: fails 137*b1cdbd2cSJim Jagielski // impl_identifyModulesBasedOnDocs("com.sun.star.chart.ChartDocument" ); 138*b1cdbd2cSJim Jagielski } 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski //------------------------------------------- 141*b1cdbd2cSJim Jagielski /** @todo document me 142*b1cdbd2cSJim Jagielski */ checkModuleConfigurationReadable()143*b1cdbd2cSJim Jagielski @Test public void checkModuleConfigurationReadable() 144*b1cdbd2cSJim Jagielski throws java.lang.Exception 145*b1cdbd2cSJim Jagielski { 146*b1cdbd2cSJim Jagielski } 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski //------------------------------------------- 149*b1cdbd2cSJim Jagielski /** @todo document me 150*b1cdbd2cSJim Jagielski */ checkModuleConfigurationWriteable()151*b1cdbd2cSJim Jagielski @Test public void checkModuleConfigurationWriteable() 152*b1cdbd2cSJim Jagielski throws java.lang.Exception 153*b1cdbd2cSJim Jagielski { 154*b1cdbd2cSJim Jagielski // modules supporting real documents 155*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.text.TextDocument" ); 156*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.text.WebDocument" ); 157*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.text.GlobalDocument" ); 158*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.formula.FormulaProperties" ); 159*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sheet.SpreadsheetDocument" ); 160*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.drawing.DrawingDocument" ); 161*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.presentation.PresentationDocument"); 162*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.OfficeDatabaseDocument" ); 163*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.chart.ChartDocument" ); 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski // other modules 166*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.FormDesign" ); 167*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.TextReportDesign" ); 168*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.RelationDesign" ); 169*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.QueryDesign" ); 170*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.TableDesign" ); 171*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.sdb.DataSourceBrowser"); 172*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.frame.Bibliography" ); 173*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.script.BasicIDE" ); 174*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropsOfModule("com.sun.star.frame.StartModule" ); 175*b1cdbd2cSJim Jagielski } 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski //------------------------------------------- 178*b1cdbd2cSJim Jagielski /** @todo document me 179*b1cdbd2cSJim Jagielski */ checkModuleConfigurationQueries()180*b1cdbd2cSJim Jagielski @Test public void checkModuleConfigurationQueries() 181*b1cdbd2cSJim Jagielski throws java.lang.Exception 182*b1cdbd2cSJim Jagielski { 183*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.text.TextDocument" ); 184*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.text.WebDocument" ); 185*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.text.GlobalDocument" ); 186*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.formula.FormulaProperties" ); 187*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.sheet.SpreadsheetDocument" ); 188*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.drawing.DrawingDocument" ); 189*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.presentation.PresentationDocument"); 190*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.sdb.OfficeDatabaseDocument" ); 191*b1cdbd2cSJim Jagielski impl_searchModulesByDocumentService("com.sun.star.chart.ChartDocument" ); 192*b1cdbd2cSJim Jagielski } 193*b1cdbd2cSJim Jagielski 194*b1cdbd2cSJim Jagielski //------------------------------------------- 195*b1cdbd2cSJim Jagielski /** @todo document me 196*b1cdbd2cSJim Jagielski */ impl_searchModulesByDocumentService(String sDocumentService)197*b1cdbd2cSJim Jagielski private void impl_searchModulesByDocumentService(String sDocumentService) 198*b1cdbd2cSJim Jagielski throws java.lang.Exception 199*b1cdbd2cSJim Jagielski { 200*b1cdbd2cSJim Jagielski System.out.println("search modules matching document service '"+sDocumentService+"' ..."); 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski NamedValue[] lProps = new NamedValue[1]; 203*b1cdbd2cSJim Jagielski lProps[0] = new NamedValue(); 204*b1cdbd2cSJim Jagielski lProps[0].Name = "ooSetupFactoryDocumentService"; 205*b1cdbd2cSJim Jagielski lProps[0].Value = sDocumentService; 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski XContainerQuery xMM = UnoRuntime.queryInterface(XContainerQuery.class, m_xMM); 208*b1cdbd2cSJim Jagielski XEnumeration xResult = xMM.createSubSetEnumerationByProperties(lProps); 209*b1cdbd2cSJim Jagielski while(xResult.hasMoreElements()) 210*b1cdbd2cSJim Jagielski { 211*b1cdbd2cSJim Jagielski PropertyValue[] lModuleProps = (PropertyValue[])AnyConverter.toArray(xResult.nextElement()); 212*b1cdbd2cSJim Jagielski int c = lModuleProps.length; 213*b1cdbd2cSJim Jagielski int i = 0; 214*b1cdbd2cSJim Jagielski String sFoundModule = ""; 215*b1cdbd2cSJim Jagielski String sFoundDocService = ""; 216*b1cdbd2cSJim Jagielski for (i=0; i<c; ++i) 217*b1cdbd2cSJim Jagielski { 218*b1cdbd2cSJim Jagielski if (lModuleProps[i].Name.equals("ooSetupFactoryModuleIdentifier")) 219*b1cdbd2cSJim Jagielski { 220*b1cdbd2cSJim Jagielski sFoundModule = AnyConverter.toString(lModuleProps[i].Value); 221*b1cdbd2cSJim Jagielski } 222*b1cdbd2cSJim Jagielski if (lModuleProps[i].Name.equals("ooSetupFactoryDocumentService")) 223*b1cdbd2cSJim Jagielski { 224*b1cdbd2cSJim Jagielski sFoundDocService = AnyConverter.toString(lModuleProps[i].Value); 225*b1cdbd2cSJim Jagielski } 226*b1cdbd2cSJim Jagielski } 227*b1cdbd2cSJim Jagielski 228*b1cdbd2cSJim Jagielski if (sFoundModule.length() < 1) 229*b1cdbd2cSJim Jagielski { 230*b1cdbd2cSJim Jagielski fail("Miss module identifier in result set. Returned data are incomplete."); 231*b1cdbd2cSJim Jagielski } 232*b1cdbd2cSJim Jagielski 233*b1cdbd2cSJim Jagielski if ( ! sFoundDocService.equals(sDocumentService)) 234*b1cdbd2cSJim Jagielski { 235*b1cdbd2cSJim Jagielski fail("Query returned wrong module '" + sFoundModule + "' with DocumentService='" + sFoundDocService + "'."); 236*b1cdbd2cSJim Jagielski } 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski System.out.println("Found module '"+sFoundModule+"'."); 239*b1cdbd2cSJim Jagielski } 240*b1cdbd2cSJim Jagielski } 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski //------------------------------------------- 243*b1cdbd2cSJim Jagielski /** @todo document me 244*b1cdbd2cSJim Jagielski */ impl_identifyModulesBasedOnDocs(String sModule)245*b1cdbd2cSJim Jagielski private void impl_identifyModulesBasedOnDocs(String sModule) 246*b1cdbd2cSJim Jagielski throws java.lang.Exception 247*b1cdbd2cSJim Jagielski { 248*b1cdbd2cSJim Jagielski System.out.println("check identification of module '"+sModule+"' ..."); 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielski XNameAccess xMM = UnoRuntime.queryInterface(XNameAccess.class, m_xMM); 251*b1cdbd2cSJim Jagielski PropertyValue[] lModuleProps = (PropertyValue[])AnyConverter.toArray(xMM.getByName(sModule)); 252*b1cdbd2cSJim Jagielski int c = lModuleProps.length; 253*b1cdbd2cSJim Jagielski int i = 0; 254*b1cdbd2cSJim Jagielski String sFactoryURL = ""; 255*b1cdbd2cSJim Jagielski 256*b1cdbd2cSJim Jagielski for (i=0; i<c; ++i) 257*b1cdbd2cSJim Jagielski { 258*b1cdbd2cSJim Jagielski if (lModuleProps[i].Name.equals("ooSetupFactoryEmptyDocumentURL")) 259*b1cdbd2cSJim Jagielski { 260*b1cdbd2cSJim Jagielski sFactoryURL = AnyConverter.toString(lModuleProps[i].Value); 261*b1cdbd2cSJim Jagielski break; 262*b1cdbd2cSJim Jagielski } 263*b1cdbd2cSJim Jagielski } 264*b1cdbd2cSJim Jagielski 265*b1cdbd2cSJim Jagielski PropertyValue[] lArgs = new PropertyValue[1]; 266*b1cdbd2cSJim Jagielski lArgs[0] = new PropertyValue(); 267*b1cdbd2cSJim Jagielski lArgs[0].Name = "Hidden"; 268*b1cdbd2cSJim Jagielski lArgs[0].Value = Boolean.TRUE; 269*b1cdbd2cSJim Jagielski 270*b1cdbd2cSJim Jagielski XComponent xModel = m_xLoader.loadComponentFromURL(sFactoryURL, "_self", 0, lArgs); 271*b1cdbd2cSJim Jagielski XFrame xFrame = UnoRuntime.queryInterface(XFrame.class, m_xLoader); 272*b1cdbd2cSJim Jagielski XController xController = xFrame.getController(); 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski String sModuleFrame = m_xMM.identify(xFrame ); 275*b1cdbd2cSJim Jagielski String sModuleController = m_xMM.identify(xController); 276*b1cdbd2cSJim Jagielski String sModuleModel = m_xMM.identify(xModel ); 277*b1cdbd2cSJim Jagielski 278*b1cdbd2cSJim Jagielski if ( ! sModuleFrame.equals(sModule)) 279*b1cdbd2cSJim Jagielski { 280*b1cdbd2cSJim Jagielski fail("Identification of module '" + sModule + "' failed if frame was used as entry point."); 281*b1cdbd2cSJim Jagielski } 282*b1cdbd2cSJim Jagielski if ( ! sModuleController.equals(sModule)) 283*b1cdbd2cSJim Jagielski { 284*b1cdbd2cSJim Jagielski fail("Identification of module '" + sModule + "' failed if controller was used as entry point."); 285*b1cdbd2cSJim Jagielski } 286*b1cdbd2cSJim Jagielski if ( ! sModuleModel.equals(sModule)) 287*b1cdbd2cSJim Jagielski { 288*b1cdbd2cSJim Jagielski fail("Identification of module '" + sModule + "' failed if model was used as entry point."); 289*b1cdbd2cSJim Jagielski } 290*b1cdbd2cSJim Jagielski } 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski //------------------------------------------- 293*b1cdbd2cSJim Jagielski /** @todo document me 294*b1cdbd2cSJim Jagielski */ impl_checkReadOnlyPropsOfModule(String sModule)295*b1cdbd2cSJim Jagielski private void impl_checkReadOnlyPropsOfModule(String sModule) 296*b1cdbd2cSJim Jagielski throws java.lang.Exception 297*b1cdbd2cSJim Jagielski { 298*b1cdbd2cSJim Jagielski XNameReplace xWrite = UnoRuntime.queryInterface(XNameReplace.class, m_xMM); 299*b1cdbd2cSJim Jagielski 300*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropOfModule(xWrite, sModule, "ooSetupFactoryDocumentService" , "test"); 301*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropOfModule(xWrite, sModule, "ooSetupFactoryActualFilter" , "test"); 302*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropOfModule(xWrite, sModule, "ooSetupFactoryActualTemplateFilter", "test"); 303*b1cdbd2cSJim Jagielski impl_checkReadOnlyPropOfModule(xWrite, sModule, "ooSetupFactoryEmptyDocumentURL" , "test"); 304*b1cdbd2cSJim Jagielski } 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski //------------------------------------------- 307*b1cdbd2cSJim Jagielski /** @todo document me 308*b1cdbd2cSJim Jagielski */ impl_checkReadOnlyPropOfModule(XNameReplace xMM , String sModule , String sPropName , Object aPropValue )309*b1cdbd2cSJim Jagielski private void impl_checkReadOnlyPropOfModule(XNameReplace xMM , 310*b1cdbd2cSJim Jagielski String sModule , 311*b1cdbd2cSJim Jagielski String sPropName , 312*b1cdbd2cSJim Jagielski Object aPropValue ) 313*b1cdbd2cSJim Jagielski throws java.lang.Exception 314*b1cdbd2cSJim Jagielski { 315*b1cdbd2cSJim Jagielski PropertyValue[] lChanges = new PropertyValue[1]; 316*b1cdbd2cSJim Jagielski lChanges[0] = new PropertyValue(); 317*b1cdbd2cSJim Jagielski lChanges[0].Name = sPropName; 318*b1cdbd2cSJim Jagielski lChanges[0].Value = aPropValue; 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski // Note: Exception is expected ! 321*b1cdbd2cSJim Jagielski System.out.println("check readonly state of module '"+sModule+"' for property '"+sPropName+"' ..."); 322*b1cdbd2cSJim Jagielski try 323*b1cdbd2cSJim Jagielski { 324*b1cdbd2cSJim Jagielski xMM.replaceByName(sModule, lChanges); 325*b1cdbd2cSJim Jagielski fail("Was able to write READONLY property '"+sPropName+"' of module '"+sModule+"' configuration."); 326*b1cdbd2cSJim Jagielski } 327*b1cdbd2cSJim Jagielski catch(Throwable ex) 328*b1cdbd2cSJim Jagielski {} 329*b1cdbd2cSJim Jagielski } 330*b1cdbd2cSJim Jagielski 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski getMSF()333*b1cdbd2cSJim Jagielski private XMultiServiceFactory getMSF() 334*b1cdbd2cSJim Jagielski { 335*b1cdbd2cSJim Jagielski final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager()); 336*b1cdbd2cSJim Jagielski return xMSF1; 337*b1cdbd2cSJim Jagielski } 338*b1cdbd2cSJim Jagielski 339*b1cdbd2cSJim Jagielski // setup and close connections setUpConnection()340*b1cdbd2cSJim Jagielski @BeforeClass public static void setUpConnection() throws Exception { 341*b1cdbd2cSJim Jagielski System.out.println("setUpConnection()"); 342*b1cdbd2cSJim Jagielski connection.setUp(); 343*b1cdbd2cSJim Jagielski } 344*b1cdbd2cSJim Jagielski tearDownConnection()345*b1cdbd2cSJim Jagielski @AfterClass public static void tearDownConnection() 346*b1cdbd2cSJim Jagielski throws InterruptedException, com.sun.star.uno.Exception 347*b1cdbd2cSJim Jagielski { 348*b1cdbd2cSJim Jagielski System.out.println("tearDownConnection()"); 349*b1cdbd2cSJim Jagielski connection.tearDown(); 350*b1cdbd2cSJim Jagielski } 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski private static final OfficeConnection connection = new OfficeConnection(); 353*b1cdbd2cSJim Jagielski 354*b1cdbd2cSJim Jagielski } 355