Author: liuzhe
Date: Sat Sep 22 11:20:30 2012
New Revision: 1388771

URL: http://svn.apache.org/viewvc?rev=1388771&view=rev
Log:
#120784 - [testuno] - test writer's paper width, height, margins, orientation, 
header/footer via uno api
Patch By: Xiao Xiao Ting <tingxi...@gmail.com>
Review By: Liu Zhe <aliu...@gmail.com>

Added:
    incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackColor.java
   (with props)
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackGraphic.java
   (with props)
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBorder.java   
(with props)
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckFooterHeader.java
   (with props)
    incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPage.java 
  (with props)
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPageLayout.java
   (with props)
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckShadowFormat.java
   (with props)
Modified:
    incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/DocumentTest.java
    incubator/ooo/trunk/test/testuno/source/testlib/uno/SWUtil.java

Modified: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/DocumentTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/DocumentTest.java?rev=1388771&r1=1388770&r2=1388771&view=diff
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/DocumentTest.java 
(original)
+++ incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/DocumentTest.java 
Sat Sep 22 11:20:30 2012
@@ -43,12 +43,8 @@ public class DocumentTest {
                temp.mkdirs();
                
                //copy sample file to temp folder
-               String originalFilePath = 
prepareData("uno/sw/DocumentTest.odt");       
-               String originalTemplatePath = 
prepareData("uno/sw/DocumentTest.ott");   
-               workingFilePath = temp + "/DocumentTest.odt";
-               workingTemplatePath = temp + "/DocumentTest.ott";
-               FileUtil.copyFile(new File(originalFilePath), new 
File(workingFilePath));       
-               FileUtil.copyFile(new File(originalTemplatePath), new 
File(workingTemplatePath));
+               workingFilePath = prepareData("uno/sw/DocumentTest.odt");       
+               workingTemplatePath = prepareData("uno/sw/DocumentTest.ott");   
                
        }
 
        @After

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackColor.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackColor.java?rev=1388771&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackColor.java
 (added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackColor.java
 Sat Sep 22 11:20:30 2012
@@ -0,0 +1,145 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+
+/**
+ * test page's back color,
+ * test page footer/header's back color. 
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckBackColor {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String onProperty = "";
+       private String backColorProperty = "";  
+       
+       private int backColor = 0;      
+       
+       
+       public CheckBackColor(String onProperty, String backColorProperty,      
int backColor){
+               this.onProperty = onProperty;
+               this.backColorProperty = backColorProperty;             
+               
+               this.backColor = backColor;             
+       }
+       
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       {"FooterIsOn", "BackColor", 255},
+                       {"FooterIsOn", "BackColor", 65535},  
+                       {"FooterIsOn", "FooterBackColor", 255},
+                       {"FooterIsOn", "FooterBackColor", 0},                   
        
+                       {"HeaderIsOn", "HeaderBackColor", 65536},
+                       {"HeaderIsOn", "HeaderBackColor", 65535}                
        
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test header/footer's back color and back graphic.
+     * @throws Exception
+     */
+    @Ignore("#120949 - header/footer's background lost when export to doc 
format ")    
+       @Test
+       public void testFooterHeaderBackground() throws Exception
+       {               
+               XComponent xComponent = unoApp.newDocument("swriter");
+               //turn on header/footer         
+               SWUtil.setDefaultPageStyleProperty(xComponent, onProperty, new 
Boolean(true));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
backColorProperty, Integer.valueOf(backColor));          
+               
+               //save as ODT and reopen, get back color
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);        
+        
+               int color = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
backColorProperty)).intValue();            
+               
+               
+               this.compare("ODT", color);
+               
+               //save as DOC and reopen, only get back color        
+           SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
+           unoApp.closeDocument(xComponent);
+           xComponent = unoApp.loadDocument(tempFilePathDOC);  
+           color = ((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
backColorProperty)).intValue();
+               
+               this.compare("DOC", color);
+               
+               unoApp.closeDocument(xComponent);        
+       }
+       
+       private void compare(String preDescription, int color){         
+               Assert.assertEquals(preDescription + ":" + 
backColorProperty,(double)backColor, color, 2);                              
+       }
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackColor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackGraphic.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackGraphic.java?rev=1388771&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackGraphic.java
 (added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackGraphic.java
 Sat Sep 22 11:20:30 2012
@@ -0,0 +1,137 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+
+/**
+ * test page's back graphic,
+ * test page footer/header's back graphic. 
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckBackGraphic {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String onProperty = ""; 
+       private String backGraphicURLProperty = "";             
+       
+       private String backGraphicPath = "";
+       private String backGraphicURL = "";
+       
+       
+       public CheckBackGraphic(String onProperty, String 
backGraphicURLProperty, String backGraphicPath){
+               this.onProperty = onProperty;           
+               this.backGraphicURLProperty = backGraphicURLProperty;           
+               
+               this.backGraphicPath = backGraphicPath;
+       }
+       
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       {"FooterIsOn", "BackGraphicURL", 
"uno/sw/page/BackGraphic1.jpg"},
+                       {"FooterIsOn", "BackGraphicURL", 
"uno/sw/page/BackGraphic2.jpg"},  
+                       {"FooterIsOn", "FooterBackGraphicURL", 
"uno/sw/page/BackGraphic1.jpg"},
+                       {"FooterIsOn", "FooterBackGraphicURL", 
"uno/sw/page/BackGraphic2.jpg"},                         
+                       {"HeaderIsOn", "HeaderBackGraphicURL", 
"uno/sw/page/BackGraphic1.jpg"},
+                       {"HeaderIsOn", "HeaderBackGraphicURL", 
"uno/sw/page/BackGraphic2.jpg"}                          
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test header/footer's back color and back graphic.
+     * @throws Exception
+     */     
+       @Test
+       public void testFooterHeaderBackground() throws Exception
+       {                       
+               String graphicUrl = 
FileUtil.getUrl(prepareData(backGraphicPath));
+               backGraphicURL = graphicUrl;
+               XComponent xComponent = unoApp.newDocument("swriter");
+               //turn on header/footer         
+               SWUtil.setDefaultPageStyleProperty(xComponent, onProperty, new 
Boolean(true));          
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
backGraphicURLProperty, backGraphicURL);         
+               
+               //save as ODT and reopen, get back color and back graphic
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);        
+               
+               String graphic = 
(String)SWUtil.getDefaultPageStyleProperty(xComponent, backGraphicURLProperty);
+               
+               
+               Assert.assertEquals("ODT:" + backGraphicURLProperty, 
backGraphicURL, graphic);  
+               
+               unoApp.closeDocument(xComponent);        
+       }
+       
+       
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBackGraphic.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBorder.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBorder.java?rev=1388771&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBorder.java 
(added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBorder.java 
Sat Sep 22 11:20:30 2012
@@ -0,0 +1,169 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+
+/**
+ * test page's border
+ * test page's footer/header's border 
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckBorder {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String onProperty = "";
+       private String borderProperty = "";
+       private String borderDistanceProperty = "";
+       private BorderLine borderLine = null;
+       private int borderDistance = 0;
+       
+       
+       public CheckBorder(String onProperty, String borderProperty, String 
borderDistanceProperty, 
+                       int color, int lineDistance, int innerLineWidth, int 
outerLineWidth, int borderDistance){
+               this.borderLine = new BorderLine();
+               this.borderLine.Color = color;
+               this.borderLine.LineDistance = (short)lineDistance;
+               this.borderLine.InnerLineWidth = (short)innerLineWidth;
+               this.borderLine.OuterLineWidth = (short)outerLineWidth;
+               
+               this.onProperty = onProperty;
+               this.borderProperty = borderProperty;
+               this.borderDistanceProperty = borderDistanceProperty;   
+               
+               this.borderDistance = borderDistance;
+       }
+       
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       /*{"FooterIsOn", "LeftBorder", "LeftBorderDistance", 
255, 100, 50,70,199},
+                       {"FooterIsOn", "RightBorder", "RightBorderDistance", 
256, 0, 0,0,20},
+                       {"FooterIsOn", "BottomBorder", "BottomBorderDistance", 
65536, 15, 10,30,300},
+                       {"FooterIsOn", "TopBorder", "TopBorderDistance", 65535, 
6, 100,200,400},
+                       {"FooterIsOn", "FooterLeftBorder", 
"FooterLeftBorderDistance", 255, 100, 50,70,199},
+                       {"FooterIsOn", "FooterRightBorder", 
"FooterRightBorderDistance", 256, 0, 0,0,20},
+                       {"FooterIsOn", "FooterBottomBorder", 
"FooterBottomBorderDistance", 65536, 15, 10,30,300},
+                       {"FooterIsOn", "FooterTopBorder", 
"FooterTopBorderDistance", 65535, 6, 100,200,400},*/
+                       {"HeaderIsOn", "HeaderLeftBorder", 
"HeaderLeftBorderDistance", 255, 100, 50,70,0},
+                       {"HeaderIsOn", "HeaderRightBorder", 
"HeaderRightBorderDistance", 256, 0, 0,0,100},
+                       {"HeaderIsOn", "HeaderBottomBorder", 
"HeaderBottomBorderDistance", 65536, 15, 10,30,900},
+                       {"HeaderIsOn", "HeaderTopBorder", 
"HeaderTopBorderDistance", 65535, 6, 100,200,50}
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test page's border
+     * test page's footer/header's border
+     * @throws Exception
+     */
+    @Ignore("#120822 - header/footer's border styles are lost when export to 
DOC format")
+       @Test
+       public void testFooterHeaderBorder() throws Exception
+       {               
+               XComponent xComponent = unoApp.newDocument("swriter");
+               //turn on header/footer         
+               SWUtil.setDefaultPageStyleProperty(xComponent, onProperty, new 
Boolean(true));
+               SWUtil.setDefaultPageStyleProperty(xComponent, borderProperty, 
borderLine);
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
borderDistanceProperty, Integer.valueOf(borderDistance));
+               
+               //save as ODT and reopen, get border
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);
+        
+        BorderLine actualBorderLine = 
(BorderLine)SWUtil.getDefaultPageStyleProperty(xComponent, borderProperty);
+               int actualBorderDistance = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
borderDistanceProperty)).intValue();
+               
+               this.compareBorder("ODT:", borderLine, borderDistance);
+               
+               //save as DOC and reopen, get border        
+           SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
+           unoApp.closeDocument(xComponent);
+           xComponent = unoApp.loadDocument(tempFilePathDOC);  
+           actualBorderLine = 
(BorderLine)SWUtil.getDefaultPageStyleProperty(xComponent, borderProperty);
+           actualBorderDistance = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
borderDistanceProperty)).intValue();
+               
+               this.compareBorder("DOC:", actualBorderLine, 
actualBorderDistance);
+               
+               unoApp.closeDocument(xComponent);
+        
+       }
+       
+       private void compareBorder(String preDes, BorderLine actualBorderLine, 
int actualBorderDistance){               
+               Assert.assertEquals(preDes + borderProperty + 
"-->color.",(double)borderLine.Color, (double)actualBorderLine.Color, 2);       
  
+               Assert.assertEquals(preDes + borderProperty + 
"-->LineDistance.", (double)borderLine.LineDistance, 
(double)actualBorderLine.LineDistance, 2);
+               Assert.assertEquals(preDes + borderProperty + 
"-->InnerLineWidth.", (double)borderLine.InnerLineWidth, 
(double)actualBorderLine.InnerLineWidth, 2);
+               Assert.assertEquals(preDes + borderProperty + 
"-->OuterLineWidth.", (double)borderLine.OuterLineWidth, 
(double)actualBorderLine.OuterLineWidth, 2);
+               
+               Assert.assertEquals(preDes + "-->" + borderDistanceProperty, 
(double)borderLine.OuterLineWidth, (double)actualBorderLine.OuterLineWidth, 2);
+       }
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckBorder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckFooterHeader.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckFooterHeader.java?rev=1388771&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckFooterHeader.java
 (added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckFooterHeader.java
 Sat Sep 22 11:20:30 2012
@@ -0,0 +1,174 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+
+/**
+ * test footer/header's margins, spacing and height. 
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckFooterHeader {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String m_onProperty = "";
+       
+       private String m_LeftMarginProperty = "";
+       private String m_RightMarginProperty = "";
+       private String m_BodyDistanceProperty = "";
+       private String m_HeightProperty = "";
+       
+       private int m_LeftMargin = 0;
+       private int m_RightMargin = 0;
+       private int m_BodyDistance = 0;
+       private int m_Height = 0;
+       
+       
+       public CheckFooterHeader(String onProperty, String leftMarginProperty, 
String rightMarginProperty, String bodyDistanceProperty, String heightProperty,
+                       int leftMargin, int rightMargin, int bodyDistance, int 
height){
+               m_onProperty = onProperty;
+               m_LeftMarginProperty = leftMarginProperty;
+               m_RightMarginProperty = rightMarginProperty;            
+               m_BodyDistanceProperty = bodyDistanceProperty;
+               m_HeightProperty = heightProperty;
+               
+               m_LeftMargin = leftMargin;
+               m_RightMargin = rightMargin;
+               m_BodyDistance = bodyDistance;
+               m_BodyDistance = bodyDistance;
+               m_Height = height;
+       }
+       
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       {"FooterIsOn", "FooterLeftMargin", "FooterRightMargin", 
"FooterBodyDistance","FooterHeight", 1000, 2000, 500,500},
+                       {"FooterIsOn", "FooterLeftMargin", "FooterRightMargin", 
"FooterBodyDistance","FooterHeight", 3000, 1500, 300,400},
+                       {"FooterIsOn", "FooterLeftMargin", "FooterRightMargin", 
"FooterBodyDistance","FooterHeight", 0, 0, 500,500},
+                       {"FooterIsOn", "FooterLeftMargin", "FooterRightMargin", 
"FooterBodyDistance","FooterHeight", 600, 2000, 0,300},
+                       {"HeaderIsOn", "HeaderLeftMargin", "HeaderRightMargin", 
"HeaderBodyDistance","HeaderHeight", 1000, 2000, 500,500},
+                       {"HeaderIsOn", "HeaderLeftMargin", "HeaderRightMargin", 
"HeaderBodyDistance","HeaderHeight", 3000, 1500, 300,400},
+                       {"HeaderIsOn", "HeaderLeftMargin", "HeaderRightMargin", 
"HeaderBodyDistance","HeaderHeight", 0, 0, 500,500},
+                       {"HeaderIsOn", "HeaderLeftMargin", "HeaderRightMargin", 
"HeaderBodyDistance","HeaderHeight", 600, 2000, 0,300}
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test header/footer's left margin, right margin, spacing and height.
+     * @throws Exception
+     */
+    //@Ignore("#120796 - header/footer's margins are all set to 0 when export 
to DOC format")
+    @Ignore("#120798 - header/footer's spacing is increased when export to DOC 
file")
+       @Test
+       public void testFooterHeader() throws Exception
+       {               
+               XComponent xComponent = unoApp.newDocument("swriter");
+               //turn on header/footer         
+               SWUtil.setDefaultPageStyleProperty(xComponent, m_onProperty, 
new Boolean(true));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
m_LeftMarginProperty, Integer.valueOf(m_LeftMargin));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
m_RightMarginProperty, Integer.valueOf(m_RightMargin));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
m_BodyDistanceProperty, Integer.valueOf(m_BodyDistance));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
m_HeightProperty, Integer.valueOf(m_Height));
+               
+               //save as ODT and reopen, get border
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);        
+        
+               int leftMargin = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_LeftMarginProperty)).intValue();
+               int rightMargin = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_RightMarginProperty)).intValue();
+               int bodyDistance = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_BodyDistanceProperty)).intValue();
+               int height = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_HeightProperty)).intValue();
+               
+               this.compare("ODT", leftMargin, rightMargin, bodyDistance, 
height);
+               
+               //save as DOC and reopen, get properties        
+           SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
+           unoApp.closeDocument(xComponent);
+           xComponent = unoApp.loadDocument(tempFilePathDOC);  
+           leftMargin = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_LeftMarginProperty)).intValue();
+               rightMargin = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_RightMarginProperty)).intValue();
+               bodyDistance = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_BodyDistanceProperty)).intValue();
+               height = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
m_HeightProperty)).intValue();
+               
+               this.compare("DOC", leftMargin, rightMargin, bodyDistance, 
height);
+               
+               unoApp.closeDocument(xComponent);
+        
+       }
+       
+       private void compare(String preDescription, int leftMargin, int 
rightMargin, int bodyDistance, int height){             
+               Assert.assertEquals(preDescription + ":" + 
m_LeftMarginProperty,(double)m_LeftMargin, (double)leftMargin, 2);
+               Assert.assertEquals(preDescription + ":" + 
m_RightMarginProperty,(double)m_RightMargin, (double)rightMargin, 2);
+               Assert.assertEquals(preDescription + ":" + 
m_BodyDistanceProperty,(double)m_BodyDistance, (double)bodyDistance, 2);
+               Assert.assertEquals(preDescription + ":" + 
m_HeightProperty,(double)m_Height, (double)height, 2);                       
+       }
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckFooterHeader.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPage.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPage.java?rev=1388771&view=auto
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPage.java 
(added)
+++ incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPage.java 
Sat Sep 22 11:20:30 2012
@@ -0,0 +1,181 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+
+/**
+ * test page's orientation, width, height, margins 
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckPage {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String isLandscapeProperty = "IsLandscape";
+       private String widthProperty = "Width";
+       private String heightProperty = "Height";
+       private String topMarginProperty = "TopMargin";
+       private String bottomMarginProperty = "BottomMargin";
+       private String leftMarginProperty = "LeftMargin";
+       private String rightMarginProperty = "RightMargin";     
+       
+       private boolean isLandscape = false;
+       private int width = 0;
+       private int height = 0;
+       private int topMargin = 0;
+       private int bottomMargin = 0;
+       private int leftMargin = 0;
+       private int rightMargin = 0;    
+       
+       
+       public CheckPage(boolean isLandscape, int width, int height, int 
topMargin, int bottomMargin, int leftMargin, int rightMargin){
+               this.isLandscape = isLandscape;
+               this.width = width;
+               this.height = height;
+               this.topMargin = topMargin;
+               this.bottomMargin = bottomMargin;
+               this.leftMargin = leftMargin;
+               this.rightMargin = rightMargin;
+       }
+       
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       {false,10000, 20000, 1000,2000, 0, 0},
+                       {false, 30000,40000, 0, 0, 100, 200},
+                       {true, 900, 10000, 0,0,0,0},
+                       {true, 20000, 30000, 300, 300, 300, 300}                
        
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test page's orientation, width, height, margins 
+     * @throws Exception
+     */    
+       @Test
+       public void testPage() throws Exception
+       {               
+               XComponent xComponent = unoApp.newDocument("swriter");
+                       
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
isLandscapeProperty, new Boolean(this.isLandscape));
+               SWUtil.setDefaultPageStyleProperty(xComponent, widthProperty, 
Integer.valueOf(this.width));
+               SWUtil.setDefaultPageStyleProperty(xComponent, heightProperty, 
Integer.valueOf(this.height));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
topMarginProperty, Integer.valueOf(this.topMargin));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
bottomMarginProperty, Integer.valueOf(this.bottomMargin));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
leftMarginProperty, Integer.valueOf(this.leftMargin));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
rightMarginProperty, Integer.valueOf(this.rightMargin));
+               
+               //save as ODT and reopen, get border
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);        
+        
+        boolean actualIsLandScape = 
((Boolean)SWUtil.getDefaultPageStyleProperty(xComponent, 
isLandscapeProperty)).booleanValue();
+               int actualWidth = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
widthProperty)).intValue();
+               int actualHeight = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
heightProperty)).intValue();
+               int actualTop = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
topMarginProperty)).intValue();
+               int actualBottom = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
bottomMarginProperty)).intValue();
+               int actualLeft = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
leftMarginProperty)).intValue();
+               int actualRight = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
rightMarginProperty)).intValue();
+        
+               
+               
+               this.compare("ODT", 
actualIsLandScape,actualWidth,actualHeight,actualTop,actualBottom, 
actualLeft,actualRight);
+               
+               //save as DOC and reopen, get properties        
+           SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
+           unoApp.closeDocument(xComponent);
+           xComponent = unoApp.loadDocument(tempFilePathDOC);  
+           
+           actualIsLandScape = 
((Boolean)SWUtil.getDefaultPageStyleProperty(xComponent, 
isLandscapeProperty)).booleanValue();
+           actualWidth = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
widthProperty)).intValue();
+               actualHeight = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
heightProperty)).intValue();
+               actualTop = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
topMarginProperty)).intValue();
+               actualBottom = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
bottomMarginProperty)).intValue();
+               actualLeft = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
leftMarginProperty)).intValue();
+               actualRight = 
((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, 
rightMarginProperty)).intValue();
+               
+               this.compare("DOC", 
actualIsLandScape,actualWidth,actualHeight,actualTop,actualBottom, 
actualLeft,actualRight);
+               
+               unoApp.closeDocument(xComponent);
+        
+       }
+       
+       private void compare(String preDescription, boolean isLandScape, int 
width, int height, int top, int bottom, int left, int right){              
+               Assert.assertEquals(preDescription + ":" + 
this.isLandscapeProperty,this.isLandscape, isLandScape);
+               Assert.assertEquals(preDescription + ":" + 
this.widthProperty,(double)this.width, (double)width, 2);
+               Assert.assertEquals(preDescription + ":" + 
this.heightProperty,(double)this.height, (double)height, 2);
+               Assert.assertEquals(preDescription + ":" + 
this.topMarginProperty,(double)this.topMargin, (double)top, 2);      
+               Assert.assertEquals(preDescription + ":" + 
this.bottomMarginProperty,(double)this.bottomMargin, (double)bottom, 2);
+               Assert.assertEquals(preDescription + ":" + 
this.leftMarginProperty,(double)this.leftMargin, (double)left, 2);
+               Assert.assertEquals(preDescription + ":" + 
this.rightMarginProperty,(double)this.rightMargin, (double)right, 2);           
     
+       }
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPage.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPageLayout.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPageLayout.java?rev=1388771&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPageLayout.java
 (added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPageLayout.java
 Sat Sep 22 11:20:30 2012
@@ -0,0 +1,145 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+import java.lang.Enum;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+import com.sun.star.style.PageStyleLayout;
+
+/**
+ * test page's layout settings 
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckPageLayout {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String pageStyleLayoutProperty = "PageStyleLayout";     
+       
+       private PageStyleLayout pageStyleLayout = PageStyleLayout.getDefault(); 
+       
+       
+       public CheckPageLayout(int styleValue){
+               this.pageStyleLayout = PageStyleLayout.fromInt(styleValue);
+       }
+       /**
+        * 0:ALL
+        * 1:LEFT
+        * 2:RIGHT
+        * 3:MIRRORED
+        * @return
+        */
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       {0},
+                       {1},
+                       {2},
+                       {3}                     
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test page's layout settings 
+     * @throws Exception
+     */   
+    @Ignore("#120964 - page layout 'only left' and 'only right' all changed to 
default value 'right and left' after export to doc format in AOO")
+       @Test
+       public void testPageStyleLayout() throws Exception
+       {               
+               XComponent xComponent = unoApp.newDocument("swriter");          
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
this.pageStyleLayoutProperty, this.pageStyleLayout);
+               
+               //save as ODT and reopen, get border
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);        
+        
+               PageStyleLayout actualPageStyleLayout = 
(PageStyleLayout)SWUtil.getDefaultPageStyleProperty(xComponent, 
this.pageStyleLayoutProperty);
+                               
+               this.compare("ODT", actualPageStyleLayout);
+               
+               //save as DOC and reopen, get properties        
+           SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
+           unoApp.closeDocument(xComponent);
+           xComponent = unoApp.loadDocument(tempFilePathDOC);  
+           
+           actualPageStyleLayout = 
(PageStyleLayout)SWUtil.getDefaultPageStyleProperty(xComponent, 
this.pageStyleLayoutProperty);
+               
+           this.compare("DOC", actualPageStyleLayout);
+               
+               unoApp.closeDocument(xComponent);
+        
+       }
+       
+       private void compare(String preDescription, PageStyleLayout actual){    
        
+               Assert.assertEquals(preDescription + ":" + 
this.pageStyleLayoutProperty,this.pageStyleLayout.getValue(), 
actual.getValue());
+       }
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckPageLayout.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckShadowFormat.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckShadowFormat.java?rev=1388771&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckShadowFormat.java
 (added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckShadowFormat.java
 Sat Sep 22 11:20:30 2012
@@ -0,0 +1,176 @@
+/**************************************************************
+ * 
+ * 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 testcase.uno.sw.page;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Assert;
+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.uno.UnoApp;
+
+import testlib.uno.SWUtil;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+import com.sun.star.table.BorderLine;
+import com.sun.star.table.ShadowFormat;
+import com.sun.star.table.ShadowLocation;
+
+/**
+ * test footer/header's border's shadow format. 
+ * test page border's shadow format
+ *
+ */
+@RunWith(Parameterized.class)
+public class CheckShadowFormat {
+       UnoApp unoApp = new UnoApp();
+       XTextDocument textDocument = null;
+       File temp = null;
+       String tempFilePathODT = "";    
+       String tempFilePathDOC = "";    
+       
+       private String onProperty = "";
+       private String shadowFormatProperty = "";
+       
+       private ShadowFormat shadowFormat = null;               
+       
+       public CheckShadowFormat(String onProperty, String 
shadowFormatProperty, int locationValue, int width, 
+                       boolean isTransparent, int color){
+               this.onProperty = onProperty;
+               this.shadowFormatProperty = shadowFormatProperty;
+               this.shadowFormat = new ShadowFormat();
+               this.shadowFormat.Location = 
ShadowLocation.fromInt(locationValue);
+               this.shadowFormat.ShadowWidth = (short)width;
+               this.shadowFormat.IsTransparent = isTransparent;
+               this.shadowFormat.Color = color;
+       }
+       
+       /**
+        * ShadowLocation
+        * 0:NONE
+        * 1:TOP_LEFT
+        * 2:TOP_RIGHT
+        * 3:BOTTOM_LEFT
+        * 4:BOTTOM_RIGHT
+        * @return
+        */
+       @Parameters
+    public static Collection<Object[]> data(){
+       Object[][] params = new Object[][]{
+                       {"FooterIsOn", "ShadowFormat", 0, 200, false,255},
+                       {"FooterIsOn", "ShadowFormat", 1, 500, false,256},
+                       {"FooterIsOn", "ShadowFormat", 2, 50, false,65535},
+                       {"FooterIsOn", "ShadowFormat", 3, 30, false,65536},
+                       {"FooterIsOn", "ShadowFormat", 4, 1000, false,255},
+                       {"FooterIsOn", "FooterShadowFormat", 0, 200, false,256},
+                       {"FooterIsOn", "FooterShadowFormat", 1, 500, 
false,65535},
+                       {"FooterIsOn", "FooterShadowFormat", 2, 50, 
false,65536},
+                       {"FooterIsOn", "FooterShadowFormat", 3, 30, false,255},
+                       {"FooterIsOn", "FooterShadowFormat", 4, 1000, 
false,256},
+                       {"HeaderIsOn", "HeaderShadowFormat", 0, 200, 
false,65535},
+                       {"HeaderIsOn", "HeaderShadowFormat", 1, 500, 
false,65536},
+                       {"HeaderIsOn", "HeaderShadowFormat", 2, 50, false,255},
+                       {"HeaderIsOn", "HeaderShadowFormat", 3, 30, false,256},
+                       {"HeaderIsOn", "HeaderShadowFormat", 4, 1000, 
false,65536}
+                       };
+       return Arrays.asList(params);
+    }  
+    
+    /**
+     * test footer/header's border's shadow format. 
+     * test page border's shadow format
+     * @throws Exception
+     */
+    @Ignore("#120969 - page and page's footer/header's shadow style lost after 
export to doc format in AOO")
+    @Test
+       public void testFooterHeader() throws Exception
+       {       
+               XComponent xComponent = unoApp.newDocument("swriter");
+               //turn on header/footer         
+               SWUtil.setDefaultPageStyleProperty(xComponent, onProperty, new 
Boolean(true));
+               SWUtil.setDefaultPageStyleProperty(xComponent, 
shadowFormatProperty, this.shadowFormat);                
+               
+               //save as ODT and reopen, get border
+               unoApp.saveDocument(xComponent, tempFilePathODT);        
+        unoApp.closeDocument(xComponent);
+        xComponent = unoApp.loadDocument(tempFilePathODT);        
+        
+               ShadowFormat actualShadowFormat = 
(ShadowFormat)SWUtil.getDefaultPageStyleProperty(xComponent, 
shadowFormatProperty);           
+               
+               this.compare("ODT", actualShadowFormat);
+               
+               //save as DOC and reopen, get properties        
+           SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
+           unoApp.closeDocument(xComponent);
+           xComponent = unoApp.loadDocument(tempFilePathDOC);  
+           actualShadowFormat = 
(ShadowFormat)SWUtil.getDefaultPageStyleProperty(xComponent, 
shadowFormatProperty);
+               
+               this.compare("DOC", actualShadowFormat);
+               
+               unoApp.closeDocument(xComponent);
+        
+       }
+       
+       private void compare(String preDescription, ShadowFormat actual){       
        
+               Assert.assertEquals(preDescription + ":" + shadowFormatProperty 
+ "-->Location",this.shadowFormat.Location.getValue(), 
actual.Location.getValue());
+               //check shadow width, isTransparent, color if shadow location 
is not NONE
+               if(!this.shadowFormat.Location.equals(ShadowLocation.NONE)){
+                       Assert.assertEquals(preDescription + ":" + 
shadowFormatProperty + "-->Width",(double)this.shadowFormat.ShadowWidth, 
(double)actual.ShadowWidth, 2);
+                       Assert.assertEquals(preDescription + ":" + 
shadowFormatProperty + "-->IsTransparent",this.shadowFormat.IsTransparent, 
actual.IsTransparent);
+                       Assert.assertEquals(preDescription + ":" + 
shadowFormatProperty + "-->Color",this.shadowFormat.Color, actual.Color);
+               }               
+       }
+               
+       
+       /**
+        * @throws java.lang.Exception
+        */
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+               
+               FileUtil.deleteFile(getPath("temp"));
+               temp = new File(getPath("temp"));
+               temp.mkdirs();          
+               
+               tempFilePathODT = temp + "/tempFilePathODT.odt";
+               tempFilePathDOC = temp + "/tempFilePathDOC.doc";                
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.close();
+       }       
+       
+
+}

Propchange: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sw/page/CheckShadowFormat.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/ooo/trunk/test/testuno/source/testlib/uno/SWUtil.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testlib/uno/SWUtil.java?rev=1388771&r1=1388770&r2=1388771&view=diff
==============================================================================
--- incubator/ooo/trunk/test/testuno/source/testlib/uno/SWUtil.java (original)
+++ incubator/ooo/trunk/test/testuno/source/testlib/uno/SWUtil.java Sat Sep 22 
11:20:30 2012
@@ -25,15 +25,18 @@ import org.openoffice.test.uno.UnoApp;
 
 import com.sun.star.beans.PropertyValue;
 import com.sun.star.beans.XPropertySet;
-import com.sun.star.container.XEnumeration;
-import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
 import com.sun.star.container.XNamed;
 import com.sun.star.document.XDocumentInfo;
 import com.sun.star.document.XDocumentInfoSupplier;
 import com.sun.star.frame.XStorable;
 import com.sun.star.io.IOException;
+import com.sun.star.lang.XComponent;
 import com.sun.star.lang.XMultiServiceFactory;
 import com.sun.star.style.BreakType;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
 import com.sun.star.text.ControlCharacter;
 import com.sun.star.text.XText;
 import com.sun.star.text.XTextContent;
@@ -53,6 +56,10 @@ public class SWUtil {
                
        }
  
+       public static void saveAsDoc(XComponent component, String url) throws 
IOException{
+               XTextDocument document = (XTextDocument) 
UnoRuntime.queryInterface(XTextDocument.class, component);
+               saveAs(document, "MS Word 97", url);            
+       }
 
        public static void saveAsODT(XTextDocument document, String url) throws 
IOException {
                saveAs(document, "writer8", url);
@@ -183,6 +190,43 @@ public class SWUtil {
                XPropertySet xps = 
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xcont);
                Integer pageCount = (Integer) 
xps.getPropertyValue("PageCount"); 
                return pageCount.intValue();
+       }       
+       
+       
+       /**
+        * get specific property value of the default page style
+        * @param xComponent
+        * @param propertyName
+        * @return
+        * @throws Exception
+        */
+       public static Object getDefaultPageStyleProperty(XComponent xComponent, 
String propertyName) throws Exception
+       {
+               XTextDocument textDocument = (XTextDocument) 
UnoRuntime.queryInterface(XTextDocument.class, xComponent);
+               XStyleFamiliesSupplier xSupplier = 
(XStyleFamiliesSupplier)UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, 
textDocument);            
+        XNameAccess xFamilies = (XNameAccess) UnoRuntime.queryInterface 
(XNameAccess.class, xSupplier.getStyleFamilies());        
+        XNameContainer xFamily = (XNameContainer) 
UnoRuntime.queryInterface(XNameContainer.class, 
xFamilies.getByName("PageStyles"));        
+        XStyle xStyle = (XStyle)UnoRuntime.queryInterface(XStyle.class, 
xFamily.getByName("Default"));     
+        XPropertySet xStyleProps = (XPropertySet) 
UnoRuntime.queryInterface(XPropertySet.class, xStyle);  
+        Object propertyValue = 
xStyleProps.getPropertyValue(propertyName.toString());
+        return propertyValue;       
        }
        
+       /**
+        * set value for specific property of default page style.
+        * @param xComponent
+        * @param propertyName
+        * @param propertyValue
+        * @throws Exception
+        */
+       public static void setDefaultPageStyleProperty(XComponent xComponent, 
String propertyName, Object propertyValue) throws Exception
+       {
+               XTextDocument textDocument = (XTextDocument) 
UnoRuntime.queryInterface(XTextDocument.class, xComponent);                
+        XStyleFamiliesSupplier xSupplier = 
(XStyleFamiliesSupplier)UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, 
textDocument);     
+        XNameAccess xFamilies = (XNameAccess) UnoRuntime.queryInterface 
(XNameAccess.class, xSupplier.getStyleFamilies());        
+        XNameContainer xFamily = (XNameContainer) 
UnoRuntime.queryInterface(XNameContainer.class, 
xFamilies.getByName("PageStyles"));        
+        XStyle xStyle = (XStyle)UnoRuntime.queryInterface(XStyle.class, 
xFamily.getByName("Default"));     
+        XPropertySet xStyleProps = (XPropertySet) 
UnoRuntime.queryInterface(XPropertySet.class, xStyle);        
+        xStyleProps.setPropertyValue (propertyName.toString(), propertyValue);
+       }
 }


Reply via email to