You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by wa...@apache.org on 2012/10/25 06:49:24 UTC

svn commit: r1401974 - in /incubator/ooo/trunk/test/testuno/source: fvt/uno/sd/bullet/ fvt/uno/sd/character/ testlib/uno/

Author: wanglf
Date: Thu Oct 25 04:49:24 2012
New Revision: 1401974

URL: http://svn.apache.org/viewvc?rev=1401974&view=rev
Log:
#120754 - [testuno]Check the numbering bullet types and properties
patch by louql, reviewed by WangLifeng

Added:
    incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingBulletTypes.java
    incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingProperty.java
Modified:
    incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/CheckBulletStyle.java
    incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/character/CheckCharacterStyle.java
    incubator/ooo/trunk/test/testuno/source/testlib/uno/SDUtil.java

Modified: incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/CheckBulletStyle.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/CheckBulletStyle.java?rev=1401974&r1=1401973&r2=1401974&view=diff
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/CheckBulletStyle.java (original)
+++ incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/CheckBulletStyle.java Thu Oct 25 04:49:24 2012
@@ -67,7 +67,7 @@ public class CheckBulletStyle {
 
 	@Before
 	public void setUpDocument() throws Exception {
-		m_filePath = Testspace.getPath("temp/CheckBulletStyle.odt");
+		m_filePath = Testspace.getPath("temp/CheckBulletStyle.odp");
 		if(FileUtil.fileExists(m_filePath))
 		{	//load			
 			m_xReplace = load();
@@ -116,6 +116,9 @@ public class CheckBulletStyle {
 	@After
 	public void tearDownDocument() {
 		app.closeDocument(m_xSDComponent);
+		
+		//remove the temp file
+		FileUtil.deleteFile(Testspace.getPath("temp"));
 	}
 
 	@BeforeClass
@@ -127,8 +130,7 @@ public class CheckBulletStyle {
 	public static void tearDownConnection() throws InterruptedException,
 			Exception {
 		app.close();
-		//remove the temp file
-		FileUtil.deleteFile(Testspace.getPath("temp"));
+		
 	}
 
 	@Test

Added: incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingBulletTypes.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingBulletTypes.java?rev=1401974&view=auto
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingBulletTypes.java (added)
+++ incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingBulletTypes.java Thu Oct 25 04:49:24 2012
@@ -0,0 +1,173 @@
+/**************************************************************
+ * 
+ * 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.sd.bullet;
+import static org.junit.Assert.*;
+import static testlib.uno.GraphicUtil.getUniqueIDOfGraphicFile;
+import static testlib.uno.PageUtil.getDrawPageByIndex;
+import static testlib.uno.ShapeUtil.addPortion;
+import static testlib.uno.ShapeUtil.getPortion;
+
+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 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.UnknownPropertyException;
+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.WrappedTargetException;
+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 NumberingBulletTypes {
+
+	private static final UnoApp app = new UnoApp();
+
+	private XComponent m_xSDComponent = null;
+	private String m_filePath = null;
+	private XPropertySet m_xtextProps = null;
+	private short m_numberingType = 0;
+	private short m_expectType=0;
+
+	@Before
+	public void setUpDocument() throws Exception {
+		m_filePath = Testspace.getPath("temp/NumberingBulletTypes.odp");
+		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 secondTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 1);
+			XShape xsecondTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, secondTextBox);
+			m_xtextProps = addPortion(xsecondTextBox, "Numbering bullets", 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 secondTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 1);
+		XShape xsecondTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, secondTextBox);		
+		return getPortion(xsecondTextBox, 0);
+	}
+
+	@After
+	public void tearDownDocument() {
+		app.closeDocument(m_xSDComponent);
+		//remove the temp file
+		FileUtil.deleteFile(Testspace.getPath("temp"));
+	}
+
+	@BeforeClass
+	public static void setUpConnection() throws Exception {
+		app.start();
+	}
+
+	@AfterClass
+	public static void tearDownConnection() throws InterruptedException,
+			Exception {
+		app.close();
+		
+	}
+
+	@Parameters
+    public static Collection<Short[]> data(){
+    	Short[][] numberingTypes = new Short[][]{
+    			{NumberingType.CHARS_UPPER_LETTER, NumberingType.CHARS_UPPER_LETTER},
+    			{NumberingType.CHARS_LOWER_LETTER, NumberingType.CHARS_LOWER_LETTER},
+    			{NumberingType.ROMAN_UPPER, NumberingType.ROMAN_UPPER},
+    			{NumberingType.ROMAN_LOWER, NumberingType.ROMAN_LOWER},
+    			{NumberingType.ARABIC, NumberingType.ARABIC},
+    			//bug: 120752
+//    			{NumberingType.CIRCLE_NUMBER, NumberingType.CIRCLE_NUMBER},
+    			{NumberingType.NUMBER_NONE, NumberingType.NUMBER_NONE}};
+    	return Arrays.asList(numberingTypes);
+    }
+    
+    public NumberingBulletTypes(short input, short expect){
+    	m_numberingType = input;
+    	m_expectType = expect;
+    }
+    
+    /*NumberingType: specifies the type of numbering
+	 * GUI entry:Numbering and Bullet dialog->Customize->Numbering
+	 * */
+	@Test
+	public void testNumberingTypes() throws Exception {
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "NumberingType";
+	    props[0].Value = m_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);
+//		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"+m_numberingType, m_expectType, proValues2[0].Value);
+	}
+}

Added: incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingProperty.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingProperty.java?rev=1401974&view=auto
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingProperty.java (added)
+++ incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/bullet/NumberingProperty.java Thu Oct 25 04:49:24 2012
@@ -0,0 +1,613 @@
+/**************************************************************
+ * 
+ * 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.sd.bullet;
+import static org.junit.Assert.*;
+import static testlib.uno.PageUtil.getDrawPageByIndex;
+import static testlib.uno.ShapeUtil.addPortion;
+import static testlib.uno.ShapeUtil.getPortion;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+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.beans.PropertyValue;
+import com.sun.star.beans.UnknownPropertyException;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexReplace;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.NumberingType;
+import com.sun.star.text.HoriOrientation;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * @author LouQL
+ *
+ */
+public class NumberingProperty {
+
+	private static final UnoApp app = new UnoApp();
+
+	private XComponent m_xSDComponent = null;
+	private String m_filePath = null;
+	private XPropertySet m_xtextProps = null;
+
+	@Before
+	public void setUpDocument() throws Exception {
+		m_filePath = Testspace.getPath("temp/NumberingProperty.odp");
+//		m_filePath = "F:/aa.odp";
+		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 secondTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 1);
+			XShape xsecondTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, secondTextBox);
+			m_xtextProps = addPortion(xsecondTextBox, 
+					"test the property of Numbering bullets. There are two lines in this test",
+					false);
+			setNumberingType(m_xtextProps, NumberingType.ARABIC, (short)0);
+		}
+	}
+
+	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 secondTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 1);
+		XShape xsecondTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, secondTextBox);		
+		return getPortion(xsecondTextBox, 0);
+	}
+	
+	@After
+	public void tearDownDocument() {
+		app.closeDocument(m_xSDComponent);
+		//remove the temp file
+		FileUtil.deleteFile(Testspace.getPath("temp"));
+	}
+
+	@BeforeClass
+	public static void setUpConnection() throws Exception {
+		app.start();
+	}
+
+	@AfterClass
+	public static void tearDownConnection() throws InterruptedException,
+			Exception {
+		app.close();
+		
+	}
+
+	/*NumberingType: specifies the type of numbering
+	 * GUI entry:Numbering and Bullet dialog->Customize->Numbering
+	 * */
+	private void setNumberingType(XPropertySet textPros, short numberingType, short level) throws Exception{
+		Object numberingRules = textPros.getPropertyValue("NumberingRules");
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingRules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "NumberingType";
+	    props[0].Value = numberingType;    
+	        
+	    xReplace.replaceByIndex(level, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingRules);
+		  //set numbering level to 0			
+		m_xtextProps.setPropertyValue("NumberingLevel", level);
+	}
+	
+		
+	
+	@Test
+	/*
+	 * Prefix: the prefix of the numbering symbol
+	 * GUI entry: Numbering and Bullet dialog->customize->Before
+	 * */
+	public void testPrefix() throws Exception {
+		String prefix = "Prefix";
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "Prefix";
+	    props[0].Value = prefix;    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("Prefix"))
+			{
+				assertEquals("Prefix should be "+prefix, prefix, proValues2[i].Value);
+				break;
+			}
+		}		
+		
+	}
+	
+	@Test
+	/*
+	 * Suffix: the suffix of the numbering symbol
+	 * GUI entry: Numbering and Bullet dialog->customize->After
+	 * */
+	public void testSuffix() throws Exception {
+		String suffix = "--";
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "Suffix";
+	    props[0].Value = suffix;    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("Suffix"))
+			{
+				assertEquals("Suffix should be "+suffix, suffix, proValues2[i].Value);
+				break;
+			}
+		}
+		
+		
+	}
+	
+	@Test
+	/*
+	 * StartWith: specifies the start value for the numbering.
+	 * GUI entry: Numbering and Bullet dialog->customize->Start At
+	 * */
+	public void testStartWith() throws Exception {
+		short startWith = 5;
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "StartWith";
+	    props[0].Value = startWith;    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+
+		String sStartWith = Short.toString(startWith);
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("StartWith"))
+			{
+				assertEquals("StartWith should be "+sStartWith, startWith, proValues2[i].Value);
+				break;
+			}
+		}
+		
+	}
+
+	
+	
+	
+	@Test
+	/*FirstLineOffset: specifies the offset between the beginning of the first line 
+	 * and the beginning of the following lines of the paragraph.   
+	*GUI entry: paragraph dialog->Position tab->Width of numbering
+	*/
+	public void testFirstLineOffset() throws Exception {
+		Integer firstLineOffset = -4500;
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		XIndexAccess xNum = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,
+				numberingrules); 
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, xNum); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "FirstLineOffset";
+	    props[0].Value = firstLineOffset;    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("FirstLineOffset"))
+			{
+				assertEquals("SymbolTextDistance should be "+Integer.toString(firstLineOffset), 
+						firstLineOffset, proValues2[i].Value);
+				break;
+			}
+		}
+		
+	}
+	
+	@Test
+	/*Leftmargin: specifies the left margin of the numbering  
+	 * GUI entry: Numbering and Bullet dialog->Position->Indent = Leftmargin+FirstLineOffset
+	*/
+	public void testLeftMargin() throws Exception {
+		Integer leftMargin = 2000;
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		XIndexAccess xNum = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,
+				numberingrules); 
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, xNum); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "LeftMargin";
+	    props[0].Value = leftMargin;    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("LeftMargin"))
+			{
+				assertEquals("Leftmargin should be "+Integer.toString(leftMargin), leftMargin, proValues2[i].Value);
+				break;
+			}
+		}
+		
+	}
+	@Ignore
+	@Test
+	/*symbolTextDistance: specifies the distance between the numbering symbol and the text of the paragraph.  
+	*GUI entry: ??
+	*This property cannot be set, it's always the same value as FirstLineOffset
+	*/
+	public void testSymbolTextDistance() throws Exception {
+		Integer symbolTextDistance = -2000;
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		XIndexAccess xNum = (XIndexAccess) UnoRuntime.queryInterface(XIndexAccess.class,
+				numberingrules); 
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, xNum); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "SymbolTextDistance";
+	    props[0].Value = symbolTextDistance;    
+	        
+	    xReplace.replaceByIndex(0, props);
+//	    PropertyValue[] proValues = (PropertyValue[])xReplace.getByIndex(0); 
+//	    for(int m=0;m<proValues.length;m++)
+//	    {
+//	    	System.out.println(proValues[m].Name+"="+proValues[m].Value);
+//	    }
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("SymbolTextDistance"))
+			{
+				assertEquals("SymbolTextDistance should be "+Integer.toString(symbolTextDistance), 
+						symbolTextDistance, proValues2[i].Value);
+				break;
+			}
+		}
+		
+	}
+	
+	/*
+	 * Ajust: adjusts the numbering (HoriOrientation_LEFT/RIGHT/CENTER)
+	 * GUI entry: Numbering and Bullet dialog->Position->Numbering alignment
+	 * */
+	@Test
+	public void testAjustRight() throws Exception {
+		Short ajust = HoriOrientation.RIGHT;
+		setAjust(ajust);
+		
+		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); 
+		
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("Adjust"))
+			{
+				assertEquals("Ajust should be HoriOrientation.RIGHT", HoriOrientation.RIGHT, AnyConverter.toUnsignedShort(proValues2[i].Value));
+				break;
+			}
+		}		
+	}
+	private void setAjust(Short ajust) throws Exception{
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "Adjust";
+	    props[0].Value = ajust;    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+	}
+	
+	/*
+	 * Ajust: adjusts the numbering (HoriOrientation_LEFT/RIGHT/CENTER)
+	 * GUI entry: Numbering and Bullet dialog->Position->Numbering alignment
+	 * */
+	@Test
+	public void testAjustCenter() throws Exception {
+		Short ajust = HoriOrientation.CENTER;
+		setAjust(ajust);		
+		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); 
+		String sAdjust = Short.toString(ajust);
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("Adjust"))
+			{
+				assertEquals("Ajust should be HoriOrientation.CENTER", HoriOrientation.CENTER, AnyConverter.toUnsignedShort(proValues2[i].Value));
+				break;
+			}
+		}	
+		
+	}
+	
+	/*
+	 * Ajust: adjusts the numbering (HoriOrientation_LEFT/RIGHT/CENTER)
+	 * GUI entry: Numbering and Bullet dialog->Position->Numbering alignment
+	 * */
+	@Test
+	public void testAjustLeft() throws Exception {
+		Short ajust = HoriOrientation.LEFT;
+		setAjust(ajust);		
+		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); 
+		String sAdjust = Short.toString(ajust);
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("Adjust"))
+			{
+				assertEquals("Ajust should be HoriOrientation.LEFT", 
+						HoriOrientation.LEFT, AnyConverter.toUnsignedShort(proValues2[i].Value));
+				break;
+			}
+		}		
+	}
+
+	@Test
+	/*BulletColor: contains the color for the symbol. 
+	 * In SDK docs it says this is only valid if the numbering type is NumberingType::CHAR_SPECIAL. 
+	 * But infact it also valid here
+	*GUI entry: Bullet and Numbering dialog->Customize->Color
+	*/
+	public void testSymbolColor() throws Exception {
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "BulletColor";
+	    props[0].Value = new Integer(255);    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+
+		for(int i=0;i<proValues2.length;i++)
+		{
+			
+			if(proValues2[i].Name.equals("BulletColor"))
+			{
+				assertEquals("BulletColor should be Blue", 
+						new Integer(255), proValues2[i].Value);
+				break;
+			}
+		}
+		
+	}
+	
+	@Test
+	/*BulletRelSize: contains the size of the symbol relative to the high of the paragraph
+	 * In SDK docs it says this is only valid if the numbering type is NumberingType::CHAR_SPECIAL. 
+	 * But in fact it also valid here
+	*GUI entry: Bullet and Numbering dialog->Customize->Relative Size
+	*/
+	public void testSymbolSize() throws Exception {
+		Object numberingrules = m_xtextProps.getPropertyValue("NumberingRules");
+		
+		XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface(
+	             XIndexReplace.class, numberingrules); 		
+		
+		PropertyValue[] props = new PropertyValue[1];
+		props[0] = new PropertyValue();
+	    props[0].Name = "BulletRelSize";
+	    props[0].Value = new Short((short)100);    
+	        
+	    xReplace.replaceByIndex(0, props);
+	    
+	    m_xtextProps.setPropertyValue("NumberingRules", numberingrules);
+		
+		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); 
+
+		for(int i=0;i<proValues2.length;i++)
+		{
+			if(proValues2[i].Name.equals("BulletRelSize"))
+			{
+				assertEquals("BulletRelSize should be 100%", 
+						new Short((short)100), proValues2[i].Value);
+				break;
+			}
+		}
+		
+	}
+
+}

Modified: incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/character/CheckCharacterStyle.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/character/CheckCharacterStyle.java?rev=1401974&r1=1401973&r2=1401974&view=diff
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/character/CheckCharacterStyle.java (original)
+++ incubator/ooo/trunk/test/testuno/source/fvt/uno/sd/character/CheckCharacterStyle.java Thu Oct 25 04:49:24 2012
@@ -34,6 +34,7 @@
 package fvt.uno.sd.character;
 
 import static org.junit.Assert.*;
+import static testlib.uno.SDUtil.saveFileAs;
 
 import java.io.File;
 import org.junit.After;
@@ -85,8 +86,7 @@ public class CheckCharacterStyle {
 	@AfterClass
 	public static void tearDownConnection() throws Exception {
 		app.close();
-		//remove the temp file
-		FileUtil.deleteFile(Testspace.getPath("temp"));
+		
 	}
 
 	/**
@@ -94,7 +94,7 @@ public class CheckCharacterStyle {
 	 */
 	@Before
 	public void setUp() throws Exception {
-		filePath = Testspace.getPath("temp/CheckCharacterStyle.odt");
+		filePath = Testspace.getPath("temp/CheckCharacterStyle.odp");
 		if(FileUtil.fileExists(filePath))
 		{	//load
 			m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, 
@@ -124,12 +124,16 @@ public class CheckCharacterStyle {
 	public void tearDown() throws Exception {
 		//close odp after each test
 		m_xSDComponent.dispose();
+		
+		//remove the temp file
+		FileUtil.deleteFile(Testspace.getPath("temp"));
 	}
 
 	@Test
 	public void testFontColor() throws Exception{
 		//set font color to red
 		xtextProps.setPropertyValue("CharColor", 0xFF0000);
+//		saveFileAs(m_xSDComponent, filePath, ".odp");
 		app.saveDocument(m_xSDComponent, filePath);
 		m_xSDComponent.dispose();
 		//reopen

Modified: incubator/ooo/trunk/test/testuno/source/testlib/uno/SDUtil.java
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testlib/uno/SDUtil.java?rev=1401974&r1=1401973&r2=1401974&view=diff
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/testlib/uno/SDUtil.java (original)
+++ incubator/ooo/trunk/test/testuno/source/testlib/uno/SDUtil.java Thu Oct 25 04:49:24 2012
@@ -28,9 +28,11 @@ import com.sun.star.beans.PropertyValue;
 import com.sun.star.container.XIndexAccess;
 import com.sun.star.drawing.XDrawPage;
 import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
 import com.sun.star.drawing.XShapes;
 import com.sun.star.frame.XStorable;
 import com.sun.star.lang.XComponent;
+import com.sun.star.uno.Exception;
 import com.sun.star.uno.UnoRuntime;
 
 /**
@@ -58,6 +60,28 @@ public class SDUtil {
 		return m_xdrawShapes.getByIndex(index);
 	}
 	
+	public static Object[] getShapesOfPageByType(XDrawPage xDrawPage, String shapeType) throws Exception {
+		XShapes m_xdrawShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class, xDrawPage);
+		int count = m_xdrawShapes.getCount();
+		Object[] temp = new Object[count];
+		int shapeNum=0;
+		for(int i=0;i<count; i++)
+		{
+			Object shape = m_xdrawShapes.getByIndex(i);
+			XShape xshape = (XShape)UnoRuntime.queryInterface(XShape.class, shape);		
+			String type = xshape.getShapeType();
+			if(type.equals(shapeType))
+			{
+				temp[shapeNum] = shape;
+				shapeNum++;				
+			}
+		}
+		
+		Object[] shapes = new Object[shapeNum];
+		System.arraycopy(temp, 0, shapes, 0, shapeNum);
+		return shapes;
+	} 
+	
 	public static void saveFileAs(XComponent sdComponent, String fileName, String extName) throws Exception {
 		
 		initFilterName();