Author: wanglf
Date: Tue Dec 4 05:26:49 2012
New Revision: 1416784
URL: http://svn.apache.org/viewvc?rev=1416784&view=rev
Log:
#121273 - [testuno] Create/Remove Drawing Objects in spreadshee​t. Patch
provide by GuoBin, reviewed by Wang lifeng
Added:
openoffice/trunk/test/testuno/source/fvt/uno/sc/object/
openoffice/trunk/test/testuno/source/fvt/uno/sc/object/DrawingObject.java
Added: openoffice/trunk/test/testuno/source/fvt/uno/sc/object/DrawingObject.java
URL:
http://svn.apache.org/viewvc/openoffice/trunk/test/testuno/source/fvt/uno/sc/object/DrawingObject.java?rev=1416784&view=auto
==============================================================================
--- openoffice/trunk/test/testuno/source/fvt/uno/sc/object/DrawingObject.java
(added)
+++ openoffice/trunk/test/testuno/source/fvt/uno/sc/object/DrawingObject.java
Tue Dec 4 05:26:49 2012
@@ -0,0 +1,202 @@
+/**************************************************************
+ *
+ * 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.
+ *
+ *************************************************************/
+
+package fvt.uno.sc.object;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.openoffice.test.uno.UnoApp;
+
+import testlib.uno.SCUtil;
+import testlib.uno.ShapeUtil;
+
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPageSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Check the shapes can be added and removed
+ *
+ */
+@RunWith(value = Parameterized.class)
+public class DrawingObject {
+
+ private String inputType;
+ private String fileType;
+
+ private static final UnoApp unoApp = new UnoApp();
+
+ XComponent scComponent = null;
+ XSpreadsheetDocument scDocument = null;
+
+ @Parameters
+ public static Collection<Object[]> data() throws Exception {
+
+ return Arrays.asList(new Object[][] {
+ {"com.sun.star.drawing.RectangleShape", "ods"},
+ {"com.sun.star.drawing.EllipseShape", "ods"},
+ {"com.sun.star.drawing.LineShape", "ods"},
+ {"com.sun.star.drawing.GraphicObjectShape", "ods"},
+ {"com.sun.star.drawing.MeasureShape", "ods"},
+ {"com.sun.star.drawing.PageShape", "ods"},
+ {"com.sun.star.drawing.TextShape", "ods"},
+ {"com.sun.star.drawing.RectangleShape", "xls"},
+ {"com.sun.star.drawing.EllipseShape", "xls"},
+ {"com.sun.star.drawing.LineShape", "xls"},
+ {"com.sun.star.drawing.MeasureShape", "xls"},
+ {"com.sun.star.drawing.PageShape", "xls"},
+ {"com.sun.star.drawing.TextShape", "xls"},
+ });
+ }
+
+ public DrawingObject( String inputType, String fileType) {
+// this.expected = expected;
+ this.inputType = inputType;
+// this.numberData = numberData;
+ this.fileType = fileType;
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ scComponent = unoApp.newDocument("scalc");
+ scDocument = SCUtil.getSCDocument(scComponent);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ unoApp.closeDocument(scComponent);
+
+ }
+
+ @BeforeClass
+ public static void setUpConnection() throws Exception {
+ unoApp.start();
+ }
+
+ @AfterClass
+ public static void tearDownConnection() throws InterruptedException,
Exception {
+ unoApp.close();
+ SCUtil.clearTempDir();
+ }
+
+ /**
+ * Check Drawing Object
+ * 1. Create a spreadsheet file.
+ * 2. Add shape.
+ * 3. Save file as ODF/MSBinary format.
+ * 4. Close and reopen file. -> Check the shape added.
+ * 5. Remove shape.
+ * 6. Save file as ODF/MSBinary format.
+ * 7. Close and reopen file. -> Check the shape removed.
+ * @throws Exception
+ */
+
+ @Test
+ public void testDrawingObject() throws Exception {
+
+ String fileName = inputType;
+
+ scDocument = SCUtil.getSCDocument(scComponent);
+ XSpreadsheet xSheet = SCUtil.getCurrentSheet(scDocument);
+ XDrawPageSupplier xDrawPageSupplier =
+
(XDrawPageSupplier)UnoRuntime.queryInterface(XDrawPageSupplier.class, xSheet);
+ XDrawPage xDrawPage = xDrawPageSupplier.getDrawPage();
+ XShapes xShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class,
xDrawPage);
+
+ //Execute add shape action
+ Point po = new Point(100, 100);
+ Size Si = new Size(5000, 5000);
+ XShape xShape = ShapeUtil.createShape(scComponent, po, Si, inputType);
+ xShapes.add(xShape);
+
+ //Verify shape is added correctly
+
+ //Verify number of shape in sheet.
+ assertEquals("Verify number of shape in sheet add execute add
action.",1, xShapes.getCount());
+
+ //Save it, close and reopen it
+ SCUtil.saveFileAs(scComponent, fileName, fileType);
+ scDocument = SCUtil.reloadFile(unoApp, scDocument, fileName +
"." + fileType);
+
+ xSheet = SCUtil.getCurrentSheet(scDocument);
+ xDrawPageSupplier =
+
(XDrawPageSupplier)UnoRuntime.queryInterface(XDrawPageSupplier.class, xSheet);
+ xDrawPage = xDrawPageSupplier.getDrawPage();
+ xShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class,
xDrawPage);
+
+ //Verify number of shape in sheet.
+ assertEquals("Verify number of shape in sheet.",1,
xShapes.getCount());
+
+ //Verify correct shape type added.
+ assertEquals("Verify shape type is correct.",inputType,
xShape.getShapeType());
+
+ xShape = (XShape) UnoRuntime.queryInterface(XShape.class,
xShapes.getByIndex(0));
+
+ //Execute remove drawing objects
+ xShapes.remove(xShape);
+
+ //Verify results after remove shape
+ assertEquals("Verify results after remove shape.",0,
xShapes.getCount());
+
+ //Save and reload document
+
+ //Save the modified spreadsheet first
+ SCUtil.save(scDocument);
+
+ //close it and reload it
+ scDocument = SCUtil.reloadFile(unoApp, scDocument, fileName + "." +
fileType);
+
+ //Get Draw page
+ xSheet = SCUtil.getCurrentSheet(scDocument);
+ xDrawPageSupplier =
+
(XDrawPageSupplier)UnoRuntime.queryInterface(XDrawPageSupplier.class, xSheet);
+ xDrawPage = xDrawPageSupplier.getDrawPage();
+ xShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class,
xDrawPage);
+
+ //Verify number of shape in sheet after executing remove action.
+ assertEquals("Verify 0 shape in sheet after executing remove action.",
+ 0, xShapes.getCount());
+
+
+
+
+
+ }
+
+}