1 /* 2 * This file is part of the LibreOffice project. 3 * 4 * This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 * 8 * This file incorporates work covered by the following license notice: 9 * 10 * Licensed to the Apache Software Foundation (ASF) under one or more 11 * contributor license agreements. See the NOTICE file distributed 12 * with this work for additional information regarding copyright 13 * ownership. The ASF licenses this file to you under the Apache 14 * License, Version 2.0 (the "License"); you may not use this file 15 * except in compliance with the License. You may obtain a copy of 16 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 17 */ 18 19 package mod._svx; 20 21 import java.io.PrintWriter; 22 23 import lib.TestCase; 24 import lib.TestEnvironment; 25 import lib.TestParameters; 26 import util.DefaultDsc; 27 import util.DrawTools; 28 import util.InstCreator; 29 import util.SOfficeFactory; 30 import util.utils; 31 32 import com.sun.star.awt.Point; 33 import com.sun.star.awt.Size; 34 import com.sun.star.beans.XPropertySet; 35 import com.sun.star.drawing.XShape; 36 import com.sun.star.lang.XComponent; 37 import com.sun.star.lang.XMultiServiceFactory; 38 import com.sun.star.style.XStyle; 39 import com.sun.star.uno.AnyConverter; 40 import com.sun.star.uno.Type; 41 import com.sun.star.uno.UnoRuntime; 42 import com.sun.star.uno.XInterface; 43 44 /** 45 * Test for object which is represented by service 46 * <code>com.sun.star.drawing.PolyPolygonShape</code>. <p> 47 * Object implements the following interfaces : 48 * <ul> 49 * <li> <code>com::sun::star::style::ParagraphProperties</code></li> 50 * <li> <code>com::sun::star::drawing::LineProperties</code></li> 51 * <li> <code>com::sun::star::drawing::FillProperties</code></li> 52 * <li> <code>com::sun::star::drawing::PolyPolygonDescriptor</code></li> 53 * <li> <code>com::sun::star::drawing::ShadowProperties</code></li> 54 * <li> <code>com::sun::star::drawing::XGluePointsSupplier</code></li> 55 * <li> <code>com::sun::star::style::CharacterProperties</code></li> 56 * <li> <code>com::sun::star::drawing::RotationDescriptor</code></li> 57 * <li> <code>com::sun::star::text::XTextRange</code></li> 58 * <li> <code>com::sun::star::drawing::XShape</code></li> 59 * <li> <code>com::sun::star::lang::XComponent</code></li> 60 * <li> <code>com::sun::star::drawing::TextProperties</code></li> 61 * <li> <code>com::sun::star::beans::XPropertySet</code></li> 62 * <li> <code>com::sun::star::text::XText</code></li> 63 * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li> 64 * <li> <code>com::sun::star::text::XSimpleText</code></li> 65 * <li> <code>com::sun::star::drawing::Shape</code></li> 66 * </ul> <p> 67 * The following files used by this test : 68 * <ul> 69 * <li><b> TransparencyChart.sxs </b> : to load predefined chart 70 * document where two 'automatic' transparency styles exists : 71 * 'Transparency 1' and 'Transparency 2'.</li> 72 * </ul> <p> 73 * 74 * This object test <b> is NOT </b> designed to be run in several 75 * threads concurrently. 76 * 77 * @see com.sun.star.style.ParagraphProperties 78 * @see com.sun.star.drawing.LineProperties 79 * @see com.sun.star.drawing.FillProperties 80 * @see com.sun.star.drawing.PolyPolygonDescriptor 81 * @see com.sun.star.drawing.ShadowProperties 82 * @see com.sun.star.drawing.XGluePointsSupplier 83 * @see com.sun.star.style.CharacterProperties 84 * @see com.sun.star.drawing.RotationDescriptor 85 * @see com.sun.star.text.XTextRange 86 * @see com.sun.star.drawing.XShape 87 * @see com.sun.star.lang.XComponent 88 * @see com.sun.star.drawing.TextProperties 89 * @see com.sun.star.beans.XPropertySet 90 * @see com.sun.star.text.XText 91 * @see com.sun.star.drawing.XShapeDescriptor 92 * @see com.sun.star.text.XSimpleText 93 * @see com.sun.star.drawing.Shape 94 * @see ifc.style._ParagraphProperties 95 * @see ifc.drawing._LineProperties 96 * @see ifc.drawing._FillProperties 97 * @see ifc.drawing._PolyPolygonDescriptor 98 * @see ifc.drawing._ShadowProperties 99 * @see ifc.drawing._XGluePointsSupplier 100 * @see ifc.style._CharacterProperties 101 * @see ifc.drawing._RotationDescriptor 102 * @see ifc.text._XTextRange 103 * @see ifc.drawing._XShape 104 * @see ifc.lang._XComponent 105 * @see ifc.drawing._TextProperties 106 * @see ifc.beans._XPropertySet 107 * @see ifc.text._XText 108 * @see ifc.drawing._XShapeDescriptor 109 * @see ifc.text._XSimpleText 110 * @see ifc.drawing._Shape 111 */ 112 public class SvxShapePolyPolygon extends TestCase { 113 114 static XComponent xDrawDoc; 115 116 /** 117 * in general this method creates a testdocument 118 * 119 * @param tParam class which contains additional test parameters 120 * @param log class to log the test state and result 121 * 122 * 123 * @see TestParameters 124 * * @see PrintWriter 125 * 126 */ 127 @Override initialize( TestParameters tParam, PrintWriter log )128 protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception { 129 // get a soffice factory object 130 SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF()); 131 log.println( "creating a chartdocument" ); 132 xDrawDoc = SOF.loadDocument( 133 utils.getFullTestURL("SvxShape.sxd")); 134 } 135 136 /** 137 * in general this method disposes the testenvironment and document 138 * 139 * @param tParam class which contains additional test parameters 140 * @param log class to log the test state and result 141 * 142 * 143 * @see TestParameters 144 * * @see PrintWriter 145 * 146 */ 147 @Override cleanup( TestParameters tParam, PrintWriter log )148 protected void cleanup( TestParameters tParam, PrintWriter log ) { 149 log.println( " disposing xDrawDoc " ); 150 util.DesktopTools.closeDoc(xDrawDoc); 151 } 152 153 154 /** 155 * * creating a TestEnvironment for the interfaces to be tested 156 * 157 * @param tParam class which contains additional test parameters 158 * @param log class to log the test state and result 159 * 160 * @return Status class 161 * 162 * @see TestParameters 163 * * @see PrintWriter 164 */ 165 @Override createTestEnvironment(TestParameters tParam, PrintWriter log)166 protected TestEnvironment createTestEnvironment 167 (TestParameters tParam, PrintWriter log) { 168 169 XInterface oObj = null; 170 XShape oShape = null; 171 172 // creation of testobject here 173 // first we write what we are intend to do to log file 174 log.println( "creating a test environment" ); 175 176 try { 177 // adding some shapes for testing. 178 XMultiServiceFactory xMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDrawDoc) ; 179 XInterface oInst = (XInterface) xMSF.createInstance 180 ("com.sun.star.drawing.PolyPolygonShape") ; 181 oShape = UnoRuntime.queryInterface 182 (XShape.class, oInst) ; 183 184 oShape.setSize(new Size(0,0)) ; 185 oShape.setPosition(new Point(0,0)) ; 186 187 DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape); 188 189 Point[] square1 = new Point[] { 190 new Point(5000, 5000), 191 new Point(10000, 5000), 192 new Point(10000, 10000), 193 new Point(5000, 10000)} ; 194 195 Point[] square2 = new Point[] { 196 new Point(6500, 6500), 197 new Point(8500, 6500), 198 new Point(8500, 8500), 199 new Point(6500, 8500)} ; 200 201 Point[][] polygon = new Point[][] {square1, square2}; 202 203 UnoRuntime.queryInterface(XPropertySet.class, 204 oShape).setPropertyValue("PolyPolygon", polygon) ; 205 206 oObj = oShape ; 207 208 SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ; 209 oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Line"); 210 DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ; 211 } 212 catch (Exception e) { 213 log.println("Couldn't create instance"); 214 e.printStackTrace(log); 215 } 216 217 // test environment creation 218 219 TestEnvironment tEnv = new TestEnvironment(oObj); 220 221 log.println( "adding two styles as ObjRelation for ShapeDescriptor" ); 222 XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj); 223 XStyle aStyle = null; 224 try { 225 aStyle = (XStyle) AnyConverter.toObject( 226 new Type(XStyle.class),oShapeProps.getPropertyValue("Style")); 227 } catch (Exception e) { 228 System.out.println("caught exception: " + e); 229 } 230 tEnv.addObjRelation("Style1",aStyle); 231 oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape); 232 try { 233 aStyle = (XStyle) AnyConverter.toObject( 234 new Type(XStyle.class),oShapeProps.getPropertyValue("Style")); 235 } catch (Exception e) { 236 System.out.println("caught exception: " + e); 237 } 238 tEnv.addObjRelation("Style2",aStyle); 239 240 // adding relation for XText 241 DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent", 242 "com.sun.star.text.TextField.URL"); 243 log.println( " adding InstCreator object" ); 244 tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) ); 245 246 return tEnv; 247 } // finish method getTestEnvironment 248 249 } // finish class SvxShapeCollection 250 251