1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir package mod._fwk; 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir import com.sun.star.beans.PropertyValue; 31*cdf0e10cSrcweir import com.sun.star.frame.XController; 32*cdf0e10cSrcweir import com.sun.star.frame.XFrame; 33*cdf0e10cSrcweir import com.sun.star.frame.XModel; 34*cdf0e10cSrcweir import com.sun.star.lang.XComponent; 35*cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory; 36*cdf0e10cSrcweir import lib.*; 37*cdf0e10cSrcweir import util.DesktopTools; 38*cdf0e10cSrcweir import util.SOfficeFactory; 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir import com.sun.star.uno.Exception; 42*cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 43*cdf0e10cSrcweir import com.sun.star.uno.XInterface; 44*cdf0e10cSrcweir import java.io.PrintWriter; 45*cdf0e10cSrcweir import com.sun.star.sheet.XSpreadsheetDocument; 46*cdf0e10cSrcweir import com.sun.star.text.XTextDocument; 47*cdf0e10cSrcweir 48*cdf0e10cSrcweir /** Test for object that implements the following interfaces : 49*cdf0e10cSrcweir * <ul> 50*cdf0e10cSrcweir * <li><code>com::sun::star::frame::XModuleManager</code></li> 51*cdf0e10cSrcweir * <li><code>com::sun::star::container::XNameAccess</code></li> 52*cdf0e10cSrcweir * <li><code>com::sun::star::container::XElementAccess</code></li> 53*cdf0e10cSrcweir * </ul><p> 54*cdf0e10cSrcweir * @see com.sun.star.frame.XModuleManager 55*cdf0e10cSrcweir * @see com.sun.star.container.XNameAccess 56*cdf0e10cSrcweir * @see com.sun.star.container.XElementAccess 57*cdf0e10cSrcweir * @see ifc.frame._XModuleManager 58*cdf0e10cSrcweir * @see ifc.container._XNameAccess 59*cdf0e10cSrcweir * @see ifc.container._XElementAccess 60*cdf0e10cSrcweir */ 61*cdf0e10cSrcweir public class ModuleManager extends TestCase { 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir XTextDocument xTextDoc = null; 64*cdf0e10cSrcweir XComponent xWebDoc = null; 65*cdf0e10cSrcweir XComponent xGlobalDoc = null; 66*cdf0e10cSrcweir XSpreadsheetDocument xSheetDoc = null; 67*cdf0e10cSrcweir XComponent xDrawDoc = null; 68*cdf0e10cSrcweir XComponent xImpressDoc = null; 69*cdf0e10cSrcweir XComponent xMathDoc = null; 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir /** Creating a Testenvironment for the interfaces to be tested. 72*cdf0e10cSrcweir * @param Param test parameters 73*cdf0e10cSrcweir * @param log simple logger 74*cdf0e10cSrcweir * @throws StatusException was thrwon on error 75*cdf0e10cSrcweir * @return the test environement 76*cdf0e10cSrcweir */ 77*cdf0e10cSrcweir public TestEnvironment createTestEnvironment( TestParameters Param, 78*cdf0e10cSrcweir PrintWriter log ) throws StatusException { 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir XInterface oObj = null; 81*cdf0e10cSrcweir 82*cdf0e10cSrcweir try { 83*cdf0e10cSrcweir oObj = (XInterface)((XMultiServiceFactory)Param.getMSF()).createInstance( 84*cdf0e10cSrcweir "com.sun.star.comp.framework.ModuleManager"); 85*cdf0e10cSrcweir } catch(Exception e) { 86*cdf0e10cSrcweir e.printStackTrace(log); 87*cdf0e10cSrcweir throw new StatusException( 88*cdf0e10cSrcweir Status.failed("Couldn't create instance")); 89*cdf0e10cSrcweir } 90*cdf0e10cSrcweir // get a soffice factory object 91*cdf0e10cSrcweir SOfficeFactory SOF = SOfficeFactory.getFactory( 92*cdf0e10cSrcweir (XMultiServiceFactory) Param.getMSF()); 93*cdf0e10cSrcweir 94*cdf0e10cSrcweir // get text document interfaces 95*cdf0e10cSrcweir try { 96*cdf0e10cSrcweir log.println("creating a text document"); 97*cdf0e10cSrcweir xTextDoc = SOF.createTextDoc(null); 98*cdf0e10cSrcweir 99*cdf0e10cSrcweir } catch (Exception e) { 100*cdf0e10cSrcweir e.printStackTrace(log); 101*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 102*cdf0e10cSrcweir } 103*cdf0e10cSrcweir XModel xTextMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 104*cdf0e10cSrcweir xTextDoc); 105*cdf0e10cSrcweir XController xTextController = xTextMode1.getCurrentController(); 106*cdf0e10cSrcweir XFrame xTextFrame = xTextController.getFrame(); 107*cdf0e10cSrcweir 108*cdf0e10cSrcweir 109*cdf0e10cSrcweir // get webdoc interfaces 110*cdf0e10cSrcweir try { 111*cdf0e10cSrcweir log.println("creating a web document"); 112*cdf0e10cSrcweir xWebDoc = SOF.loadDocument("private:factory/swriter/web"); 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir } catch (Exception e) { 115*cdf0e10cSrcweir e.printStackTrace(log); 116*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 117*cdf0e10cSrcweir } 118*cdf0e10cSrcweir XModel xWebMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 119*cdf0e10cSrcweir xWebDoc); 120*cdf0e10cSrcweir XController xWebController = xWebMode1.getCurrentController(); 121*cdf0e10cSrcweir XFrame xWebFrame = xWebController.getFrame(); 122*cdf0e10cSrcweir 123*cdf0e10cSrcweir // get global document interfaces 124*cdf0e10cSrcweir try { 125*cdf0e10cSrcweir log.println("creating a global document"); 126*cdf0e10cSrcweir xGlobalDoc = SOF.loadDocument("private:factory/swriter/GlobalDocument"); 127*cdf0e10cSrcweir 128*cdf0e10cSrcweir } catch (Exception e) { 129*cdf0e10cSrcweir e.printStackTrace(log); 130*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 131*cdf0e10cSrcweir } 132*cdf0e10cSrcweir XModel xGlobalMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 133*cdf0e10cSrcweir xGlobalDoc); 134*cdf0e10cSrcweir XController xGlobalController = xGlobalMode1.getCurrentController(); 135*cdf0e10cSrcweir XFrame xGlobalFrame = xGlobalController.getFrame(); 136*cdf0e10cSrcweir 137*cdf0e10cSrcweir // get clac interfaces 138*cdf0e10cSrcweir try { 139*cdf0e10cSrcweir log.println("creating a spreadsheetdocument"); 140*cdf0e10cSrcweir xSheetDoc = SOF.createCalcDoc(null); 141*cdf0e10cSrcweir } catch (Exception e) { 142*cdf0e10cSrcweir e.printStackTrace(log); 143*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 144*cdf0e10cSrcweir } 145*cdf0e10cSrcweir XModel xSheetMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 146*cdf0e10cSrcweir xSheetDoc); 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir XController xSheetController = xSheetMode1.getCurrentController(); 149*cdf0e10cSrcweir XFrame xSheetFrame = xSheetController.getFrame(); 150*cdf0e10cSrcweir // get draw interfaces 151*cdf0e10cSrcweir try { 152*cdf0e10cSrcweir log.println("creating a draw document"); 153*cdf0e10cSrcweir xDrawDoc = SOF.createDrawDoc(null); 154*cdf0e10cSrcweir } catch (Exception e) { 155*cdf0e10cSrcweir e.printStackTrace(log); 156*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 157*cdf0e10cSrcweir } 158*cdf0e10cSrcweir XModel xDrawMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 159*cdf0e10cSrcweir xDrawDoc); 160*cdf0e10cSrcweir XController xDrawController = xDrawMode1.getCurrentController(); 161*cdf0e10cSrcweir XFrame xDrawFrame = xDrawController.getFrame(); 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir // get impress interfaces 164*cdf0e10cSrcweir try { 165*cdf0e10cSrcweir log.println("creating a impress document"); 166*cdf0e10cSrcweir xImpressDoc = SOF.createImpressDoc(null); 167*cdf0e10cSrcweir } catch (Exception e) { 168*cdf0e10cSrcweir e.printStackTrace(log); 169*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 170*cdf0e10cSrcweir } 171*cdf0e10cSrcweir XModel xImpressMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 172*cdf0e10cSrcweir xImpressDoc); 173*cdf0e10cSrcweir XController xImpressController = xImpressMode1.getCurrentController(); 174*cdf0e10cSrcweir XFrame xImpressFrame = xImpressController.getFrame(); 175*cdf0e10cSrcweir 176*cdf0e10cSrcweir // get math interfaces 177*cdf0e10cSrcweir try { 178*cdf0e10cSrcweir log.println("creating a math document"); 179*cdf0e10cSrcweir xMathDoc = SOF.createMathDoc(null); 180*cdf0e10cSrcweir } catch (Exception e) { 181*cdf0e10cSrcweir e.printStackTrace(log); 182*cdf0e10cSrcweir throw new StatusException("Couldn't create document ", e); 183*cdf0e10cSrcweir } 184*cdf0e10cSrcweir XModel xMathMode1 = (XModel) UnoRuntime.queryInterface(XModel.class, 185*cdf0e10cSrcweir xMathDoc); 186*cdf0e10cSrcweir XController xMathController = xMathMode1.getCurrentController(); 187*cdf0e10cSrcweir XFrame xMathFrame = xMathController.getFrame(); 188*cdf0e10cSrcweir 189*cdf0e10cSrcweir PropertyValue[] xFrameSeq = new PropertyValue[7]; 190*cdf0e10cSrcweir xFrameSeq[0] = new PropertyValue(); 191*cdf0e10cSrcweir xFrameSeq[0].Name = "com.sun.star.text.TextDocument"; 192*cdf0e10cSrcweir xFrameSeq[0].Value = xTextFrame; 193*cdf0e10cSrcweir xFrameSeq[1] = new PropertyValue(); 194*cdf0e10cSrcweir xFrameSeq[1].Name = "com.sun.star.text.WebDocument"; 195*cdf0e10cSrcweir xFrameSeq[1].Value = xWebFrame; 196*cdf0e10cSrcweir xFrameSeq[2] = new PropertyValue(); 197*cdf0e10cSrcweir xFrameSeq[2].Name = "com.sun.star.text.GlobalDocument"; 198*cdf0e10cSrcweir xFrameSeq[2].Value = xGlobalFrame; 199*cdf0e10cSrcweir xFrameSeq[3] = new PropertyValue(); 200*cdf0e10cSrcweir xFrameSeq[3].Name = "com.sun.star.sheet.SpreadsheetDocument"; 201*cdf0e10cSrcweir xFrameSeq[3].Value = xSheetFrame; 202*cdf0e10cSrcweir xFrameSeq[4] = new PropertyValue(); 203*cdf0e10cSrcweir xFrameSeq[4].Name = "com.sun.star.drawing.DrawingDocument"; 204*cdf0e10cSrcweir xFrameSeq[4].Value = xDrawFrame; 205*cdf0e10cSrcweir xFrameSeq[5] = new PropertyValue(); 206*cdf0e10cSrcweir xFrameSeq[5].Name = "com.sun.star.formula.FormulaProperties"; 207*cdf0e10cSrcweir xFrameSeq[5].Value = xMathFrame; 208*cdf0e10cSrcweir xFrameSeq[6] = new PropertyValue(); 209*cdf0e10cSrcweir xFrameSeq[6].Name = "com.sun.star.presentation.PresentationDocument"; 210*cdf0e10cSrcweir xFrameSeq[6].Value = xImpressFrame; 211*cdf0e10cSrcweir 212*cdf0e10cSrcweir PropertyValue[] xControllerSeq = new PropertyValue[7]; 213*cdf0e10cSrcweir xControllerSeq[0] = new PropertyValue(); 214*cdf0e10cSrcweir xControllerSeq[0].Name = "com.sun.star.text.TextDocument"; 215*cdf0e10cSrcweir xControllerSeq[0].Value = xTextController; 216*cdf0e10cSrcweir xControllerSeq[1] = new PropertyValue(); 217*cdf0e10cSrcweir xControllerSeq[1].Name = "com.sun.star.text.WebDocument"; 218*cdf0e10cSrcweir xControllerSeq[1].Value = xWebController; 219*cdf0e10cSrcweir xControllerSeq[2] = new PropertyValue(); 220*cdf0e10cSrcweir xControllerSeq[2].Name = "com.sun.star.text.GlobalDocument"; 221*cdf0e10cSrcweir xControllerSeq[2].Value = xGlobalController; 222*cdf0e10cSrcweir xControllerSeq[3] = new PropertyValue(); 223*cdf0e10cSrcweir xControllerSeq[3].Name = "com.sun.star.sheet.SpreadsheetDocument"; 224*cdf0e10cSrcweir xControllerSeq[3].Value = xSheetController; 225*cdf0e10cSrcweir xControllerSeq[4] = new PropertyValue(); 226*cdf0e10cSrcweir xControllerSeq[4].Name = "com.sun.star.drawing.DrawingDocument"; 227*cdf0e10cSrcweir xControllerSeq[4].Value = xDrawController; 228*cdf0e10cSrcweir xControllerSeq[5] = new PropertyValue(); 229*cdf0e10cSrcweir xControllerSeq[5].Name = "com.sun.star.formula.FormulaProperties"; 230*cdf0e10cSrcweir xControllerSeq[5].Value = xMathController; 231*cdf0e10cSrcweir xControllerSeq[6] = new PropertyValue(); 232*cdf0e10cSrcweir xControllerSeq[6].Name = "com.sun.star.presentation.PresentationDocument"; 233*cdf0e10cSrcweir xControllerSeq[6].Value = xImpressController; 234*cdf0e10cSrcweir 235*cdf0e10cSrcweir PropertyValue[] xModelSeq = new PropertyValue[7]; 236*cdf0e10cSrcweir xModelSeq[0] = new PropertyValue(); 237*cdf0e10cSrcweir xModelSeq[0].Name = "com.sun.star.text.TextDocument"; 238*cdf0e10cSrcweir xModelSeq[0].Value = xTextMode1; 239*cdf0e10cSrcweir xModelSeq[1] = new PropertyValue(); 240*cdf0e10cSrcweir xModelSeq[1].Name = "com.sun.star.text.WebDocument"; 241*cdf0e10cSrcweir xModelSeq[1].Value = xWebMode1; 242*cdf0e10cSrcweir xModelSeq[2] = new PropertyValue(); 243*cdf0e10cSrcweir xModelSeq[2].Name = "com.sun.star.text.GlobalDocument"; 244*cdf0e10cSrcweir xModelSeq[2].Value = xGlobalMode1; 245*cdf0e10cSrcweir xModelSeq[3] = new PropertyValue(); 246*cdf0e10cSrcweir xModelSeq[3].Name = "com.sun.star.sheet.SpreadsheetDocument"; 247*cdf0e10cSrcweir xModelSeq[3].Value = xSheetMode1; 248*cdf0e10cSrcweir xModelSeq[4] = new PropertyValue(); 249*cdf0e10cSrcweir xModelSeq[4].Name = "com.sun.star.drawing.DrawingDocument"; 250*cdf0e10cSrcweir xModelSeq[4].Value = xDrawMode1; 251*cdf0e10cSrcweir xModelSeq[5] = new PropertyValue(); 252*cdf0e10cSrcweir xModelSeq[5].Name = "com.sun.star.presentation.PresentationDocument"; 253*cdf0e10cSrcweir xModelSeq[5].Value = xImpressMode1; 254*cdf0e10cSrcweir xModelSeq[6] = new PropertyValue(); 255*cdf0e10cSrcweir xModelSeq[6].Name = "com.sun.star.formula.FormulaProperties"; 256*cdf0e10cSrcweir xModelSeq[6].Value = xMathMode1; 257*cdf0e10cSrcweir 258*cdf0e10cSrcweir TestEnvironment tEnv = new TestEnvironment( oObj ); 259*cdf0e10cSrcweir 260*cdf0e10cSrcweir 261*cdf0e10cSrcweir tEnv.addObjRelation("XModuleManager.XFrame", xFrameSeq); 262*cdf0e10cSrcweir tEnv.addObjRelation("XModuleManager.XController", xControllerSeq); 263*cdf0e10cSrcweir tEnv.addObjRelation("XModuleManager.XModel", xModelSeq); 264*cdf0e10cSrcweir return tEnv; 265*cdf0e10cSrcweir } // finish method getTestEnvironment 266*cdf0e10cSrcweir 267*cdf0e10cSrcweir /** Disposes text document. 268*cdf0e10cSrcweir * @param tParam test parameters 269*cdf0e10cSrcweir * @param log simple logger 270*cdf0e10cSrcweir */ 271*cdf0e10cSrcweir protected void cleanup( TestParameters tParam, PrintWriter log ) { 272*cdf0e10cSrcweir log.println( " closing all documents " ); 273*cdf0e10cSrcweir DesktopTools.closeDoc(xTextDoc); 274*cdf0e10cSrcweir DesktopTools.closeDoc(xWebDoc); 275*cdf0e10cSrcweir DesktopTools.closeDoc(xGlobalDoc); 276*cdf0e10cSrcweir DesktopTools.closeDoc(xSheetDoc); 277*cdf0e10cSrcweir DesktopTools.closeDoc(xDrawDoc); 278*cdf0e10cSrcweir DesktopTools.closeDoc(xImpressDoc); 279*cdf0e10cSrcweir DesktopTools.closeDoc(xMathDoc); 280*cdf0e10cSrcweir } 281*cdf0e10cSrcweir } 282