You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by li...@apache.org on 2012/08/21 08:47:42 UTC

svn commit: r1375397 - in /incubator/ooo/trunk/main/test/testuno/source: testcase/uno/sd/CheckBuildInBullet.java testcase/uno/sd/CheckCharacterStyle.java testlib/uno/SCUtil.java testlib/uno/SDUtil.java testlib/uno/ShapeUtil.java

Author: liuzhe
Date: Tue Aug 21 06:47:41 2012
New Revision: 1375397

URL: http://svn.apache.org/viewvc?rev=1375397&view=rev
Log:
#120631# - [testuno]Check the Build-In Bullet
Patch by: Lou Qing Le<lo...@gmail.com>
Review by: Liu Zhe <al...@gmail.com>

Added:
    incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckBuildInBullet.java
Modified:
    incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckCharacterStyle.java
    incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SCUtil.java
    incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SDUtil.java
    incubator/ooo/trunk/main/test/testuno/source/testlib/uno/ShapeUtil.java

Added: incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckBuildInBullet.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckBuildInBullet.java?rev=1375397&view=auto
==============================================================================
--- incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckBuildInBullet.java (added)
+++ incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckBuildInBullet.java Tue Aug 21 06:47:41 2012
@@ -0,0 +1,158 @@
+/**
+ * There are 8 build-in bullets. Verify those bullets can be applied successfully.
+ * insert text into a SD
+ * apply the 8 bullets one by one, and check
+ */
+package testcase.uno.sd;
+
+import static org.junit.Assert.assertEquals;
+import static testlib.uno.PageUtil.getDrawPageByIndex;
+import static testlib.uno.ShapeUtil.addPortion;
+import static testlib.uno.ShapeUtil.getPortion;
+
+import java.io.File;
+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.common.FileUtil;
+import org.openoffice.test.common.Testspace;
+import org.openoffice.test.uno.UnoApp;
+
+import testlib.uno.SDUtil;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexReplace;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.NumberingType;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * @author LouQL
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckBuildInBullet {
+
+	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_BulletChar = null;
+	private String m_expectedBulletChar = null;
+	/**
+	 * @throws java.lang.Exception
+	 */
+	
+	public CheckBuildInBullet(String BulletChar, String expected) {
+        this.m_BulletChar = BulletChar;
+        m_expectedBulletChar = expected;
+    }
+	@Parameters
+    public static Collection<String[]> data() {
+        String[][] bulletChar = new String[][] {{"●","●"}, {"•","•"}, {"",""},{"",""},{"➔","➔"}, {"➢","➢"}, {"✗","✗"},{"✔","✔"}};
+        return Arrays.asList(bulletChar);
+    }
+	
+	@BeforeClass
+	public static void setUpBeforeClass() throws Exception {
+		app.start();
+		File temp = new File(Testspace.getPath("temp"));
+		temp.mkdirs();
+	}
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@AfterClass
+	public static void tearDownAfterClass() throws Exception {
+		app.close();
+		//remove the temp file
+		FileUtil.deleteFile(Testspace.getPath("temp"));
+	}
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@Before
+	public void setUp() throws Exception {
+		m_filePath = Testspace.getPath("temp/CheckBuildInBullet.odt");
+//		m_filePath = "F:/aa.odp";
+		if(FileUtil.fileExists(m_filePath))
+		{	//load
+			m_xtextProps = load();	  		
+		}
+		else{
+			//create a sd
+			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 Build-in Bullet", false);
+		}			
+	}
+	
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@After
+	public void tearDown() throws Exception {	
+		app.closeDocument(m_xSDComponent);		
+	}
+	private XPropertySet load() throws Exception{
+		m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, 
+				app.loadDocument(m_filePath));
+		Object firstPage = getDrawPageByIndex(m_xSDComponent, 0);
+		Object firstTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 0);
+		XShape xfirstTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, firstTextBox);
+		return getPortion(xfirstTextBox, 0);
+	}
+			
+	@Test
+	public void testBuildInBullet() throws Exception {		
+		    
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+					
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules);    
+						
+		PropertyValue[] props = new PropertyValue[2];
+	    props[0] = new PropertyValue();
+	    props[0].Name = "NumberingType";
+	    props[0].Value = new Short(NumberingType.CHAR_SPECIAL );
+	    
+	    props[1] = new PropertyValue();
+	    props[1].Name = "BulletChar";
+	    props[1].Value = this.m_BulletChar;
+		
+	    //set numberingType
+	    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);
+		//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 CHAR_SPECIAL", NumberingType.CHAR_SPECIAL, proValues2[0].Value);
+		assertEquals("BulletChar should be"+m_expectedBulletChar, m_expectedBulletChar, proValues2[4].Value);
+	}
+}

Modified: incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckCharacterStyle.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckCharacterStyle.java?rev=1375397&r1=1375396&r2=1375397&view=diff
==============================================================================
--- incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckCharacterStyle.java (original)
+++ incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sd/CheckCharacterStyle.java Tue Aug 21 06:47:41 2012
@@ -48,7 +48,6 @@ import com.sun.star.uno.UnoRuntime;
 public class CheckCharacterStyle {
 
 	private static final UnoApp app = new UnoApp();	
-	private static final SDUtil SDUtil = new SDUtil();
 	private XComponent m_xSDComponent = null;
 	private XText xShapeText = null;
 	private String filePath = null;

Modified: incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SCUtil.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SCUtil.java?rev=1375397&r1=1375396&r2=1375397&view=diff
==============================================================================
--- incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SCUtil.java (original)
+++ incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SCUtil.java Tue Aug 21 06:47:41 2012
@@ -57,7 +57,7 @@ public class SCUtil {
 	
 	private static HashMap filterName = new HashMap(); 
 	
-	public SCUtil() {
+	private SCUtil() {
 		
 	}
 	

Modified: incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SDUtil.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SDUtil.java?rev=1375397&r1=1375396&r2=1375397&view=diff
==============================================================================
--- incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SDUtil.java (original)
+++ incubator/ooo/trunk/main/test/testuno/source/testlib/uno/SDUtil.java Tue Aug 21 06:47:41 2012
@@ -7,10 +7,7 @@ import com.sun.star.container.XIndexAcce
 import com.sun.star.drawing.XDrawPage;
 import com.sun.star.drawing.XDrawPagesSupplier;
 import com.sun.star.drawing.XShapes;
-import com.sun.star.lang.IndexOutOfBoundsException;
-import com.sun.star.lang.WrappedTargetException;
 import com.sun.star.lang.XComponent;
-import com.sun.star.text.XText;
 import com.sun.star.uno.UnoRuntime;
 
 /**
@@ -19,30 +16,21 @@ import com.sun.star.uno.UnoRuntime;
  */
 public class SDUtil {
 
-	/**
-	 * @throws WrappedTargetException 
-	 * @throws  
-	 * @throws java.lang.Exception
-	 */
-	public SDUtil(){
-		
+	private SDUtil() {
+
 	}
-		
-	public Object getPageByIndex(XComponent doc, int index) throws Exception{
-		XDrawPagesSupplier xDrawPagesSupplier = 
-                (XDrawPagesSupplier)UnoRuntime.queryInterface(
-                    XDrawPagesSupplier.class, doc);
-
-        Object drawPages = xDrawPagesSupplier.getDrawPages();
-        XIndexAccess xIndexedDrawPages = (XIndexAccess)UnoRuntime.queryInterface(
-                XIndexAccess.class, drawPages);
-        return xIndexedDrawPages.getByIndex(index);
+
+	public static Object getPageByIndex(XComponent doc, int index) throws Exception {
+		XDrawPagesSupplier xDrawPagesSupplier = (XDrawPagesSupplier) UnoRuntime.queryInterface(XDrawPagesSupplier.class, doc);
+		Object drawPages = xDrawPagesSupplier.getDrawPages();
+		XIndexAccess xIndexedDrawPages = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class, drawPages);
+		return xIndexedDrawPages.getByIndex(index);
 	}
-	
-	public Object getShapeOfPageByIndex(Object page, int index) throws Exception{
-		XDrawPage xDrawPage = (XDrawPage)UnoRuntime.queryInterface(XDrawPage.class, page);
-		XShapes m_xdrawShapes = (XShapes)UnoRuntime.queryInterface(XShapes.class, xDrawPage);  
-        return m_xdrawShapes.getByIndex(index); 
+
+	public static Object getShapeOfPageByIndex(Object page, int index) throws Exception {
+		XDrawPage xDrawPage = (XDrawPage) UnoRuntime.queryInterface(XDrawPage.class, page);
+		XShapes m_xdrawShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class, xDrawPage);
+		return m_xdrawShapes.getByIndex(index);
 	}
 
 }

Modified: incubator/ooo/trunk/main/test/testuno/source/testlib/uno/ShapeUtil.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testlib/uno/ShapeUtil.java?rev=1375397&r1=1375396&r2=1375397&view=diff
==============================================================================
--- incubator/ooo/trunk/main/test/testuno/source/testlib/uno/ShapeUtil.java (original)
+++ incubator/ooo/trunk/main/test/testuno/source/testlib/uno/ShapeUtil.java Tue Aug 21 06:47:41 2012
@@ -25,6 +25,7 @@ package testlib.uno;
 
 import com.sun.star.uno.Exception;
 import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.WrappedTargetException;
 import com.sun.star.lang.XComponent;
 import com.sun.star.lang.XMultiServiceFactory;
 
@@ -33,6 +34,7 @@ import com.sun.star.awt.Size;
 
 import com.sun.star.beans.XPropertySet;
 
+import com.sun.star.container.NoSuchElementException;
 import com.sun.star.container.XEnumeration;
 import com.sun.star.container.XEnumerationAccess;
 
@@ -118,6 +120,32 @@ public class ShapeUtil {
 				XPropertySet.class, xTextRange);
 		return xPropSet;
 	}
+	
+	/**
+	 * get a paragraph in a shape. the return value is the PropertySet of the text
+	 * range that specified by the index
+	 */
+	public static XPropertySet getPortion(XShape xShape, int index) throws NoSuchElementException, WrappedTargetException {
+		XEnumerationAccess m_paraAccess = (XEnumerationAccess)UnoRuntime.queryInterface(XEnumerationAccess.class, xShape);
+		XEnumeration xParaEnum = m_paraAccess.createEnumeration();	
+		XPropertySet xPropSet = null;
+		int i=0;
+		while(xParaEnum.hasMoreElements())
+		{
+			if(i == index)
+			{
+				Object aPortionObj = xParaEnum.nextElement();
+				XTextRange xTextRange = (XTextRange)UnoRuntime.queryInterface(XTextRange.class, aPortionObj);
+//				System.out.println(xTextRange.getText().getString());
+				xPropSet = (XPropertySet) UnoRuntime.queryInterface(
+						XPropertySet.class, xTextRange);
+				break;				
+			}
+			else i++;			
+		}	
+		return xPropSet;
+	}
+
 
 	/**
 	 * try to get text of a shape