Author: wanglf Date: Thu Oct 25 02:48:08 2012 New Revision: 1401955 URL: http://svn.apache.org/viewvc?rev=1401955&view=rev Log: #120731 - [testuno]Select a graphic from file as graphic bullet in SD patch by louql, reviewed by WangLiFeng
Added: incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/GraphicBulletFromFile.java Added: incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/GraphicBulletFromFile.java URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/GraphicBulletFromFile.java?rev=1401955&view=auto ============================================================================== --- incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/GraphicBulletFromFile.java (added) +++ incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/GraphicBulletFromFile.java Thu Oct 25 02:48:08 2012 @@ -0,0 +1,156 @@ +/************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + *************************************************************/ +/* + * Select a external picture from a file as graphic bullet + * */ +package fvt.uno.sd.bullet; +import static org.junit.Assert.*; +import static org.openoffice.test.common.Testspace.prepareData; +import static testlib.uno.PageUtil.getDrawPageByIndex; +import static testlib.uno.ShapeUtil.addPortion; +import static testlib.uno.ShapeUtil.getPortion; +import static testlib.uno.GraphicUtil.getUniqueIDOfGraphicFile; + +import java.io.File; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.uno.UnoApp; +import org.openoffice.test.common.FileUtil; +import org.openoffice.test.common.Testspace; + +import testlib.uno.SDUtil; + +import com.sun.star.awt.Size; +import com.sun.star.beans.PropertyValue; +import com.sun.star.beans.XPropertySet; +import com.sun.star.container.XIndexReplace; +import com.sun.star.drawing.XDrawPage; +import com.sun.star.drawing.XShape; +import com.sun.star.lang.XComponent; +import com.sun.star.style.NumberingType; +import com.sun.star.uno.UnoRuntime; + +public class GraphicBulletFromFile { + + private static final UnoApp app = new UnoApp(); + + private XComponent m_xSDComponent = null; + private String m_filePath = null; + private XPropertySet m_xtextProps = null; + private String m_GraphicPath = null; + + @Before + public void setUpDocument() throws Exception { + m_filePath = Testspace.getPath("temp/GraphicBulletFromFile.odp"); + String abslotePath = prepareData("uno/sd/36.gif"); + m_GraphicPath = FileUtil.getUrl(new File(abslotePath)); +// m_GraphicPath = "file:///F:/work/36.gif"; + if (FileUtil.fileExists(m_filePath)) {//load + m_xtextProps = load(); + } else {//new + m_xSDComponent = (XComponent) UnoRuntime.queryInterface( + XComponent.class, app.newDocument("simpress")); + Object firstPage = getDrawPageByIndex(m_xSDComponent, 0); + Object firstTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 0); + XShape xfirstTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, firstTextBox); + m_xtextProps = addPortion(xfirstTextBox, "test Graphic Bullet From a File", false); + } + } + + private XPropertySet load() throws Exception{ + m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, + app.loadDocument(m_filePath)); + Object firstPage = getDrawPageByIndex(m_xSDComponent, 0); + XDrawPage firstpage = getDrawPageByIndex(m_xSDComponent, 0); + Object firstTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 0); + XShape xfirstTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, firstTextBox); + return getPortion(xfirstTextBox, 0); + } + + @After + public void tearDownDocument() { + app.closeDocument(m_xSDComponent); + + } + + @BeforeClass + public static void setUpConnection() throws Exception { + app.start(); + } + + @AfterClass + public static void tearDownConnection() throws InterruptedException, + Exception { + app.close(); + //remove the temp file + FileUtil.deleteFile(Testspace.getPath("temp")); + } + + @Test + public void testGraphicBulletFromFile() throws Exception { + + Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules"); + + XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface( + XIndexReplace.class, numberingrules); + + PropertyValue[] props = new PropertyValue[3]; + props[0] = new PropertyValue(); + props[0].Name = "NumberingType"; + props[0].Value = new Short(NumberingType.BITMAP ); + + props[1] = new PropertyValue(); + props[1].Name = "GraphicURL"; + props[1].Value = "vnd.sun.star.GraphicObject:"+getUniqueIDOfGraphicFile(app, m_GraphicPath); + + props[2] = new PropertyValue(); + props[2].Name = "GraphicSize"; + props[2].Value = new Size(1000,1000); + + xReplace.replaceByIndex(0, props); + + m_xtextProps.setPropertyValue("NumberingRules", numberingrules); + //set numbering level to 0 + m_xtextProps.setPropertyValue("NumberingLevel", new Short((short)0)); + + + app.saveDocument(m_xSDComponent, m_filePath); +// app.closeDocument(m_xSDComponent); + m_xSDComponent.dispose(); + //reopen + m_xtextProps = load(); + + Object numberingrules2 = m_xtextProps.getPropertyValue("NumberingRules"); + + XIndexReplace xReplace2 = (XIndexReplace) UnoRuntime.queryInterface( + XIndexReplace.class, numberingrules2); + + PropertyValue[] proValues2 = (PropertyValue[])xReplace2.getByIndex(0); + assertEquals("NumberingType should be BITMAP", NumberingType.BITMAP, proValues2[0].Value); + String uniqueID = getUniqueIDOfGraphicFile(app, m_GraphicPath); + assertEquals("Graphic should be the one with uniqueID"+uniqueID, "vnd.sun.star.GraphicObject:"+uniqueID, proValues2[6].Value); + + } +}