xref: /AOO41X/test/testuno/source/fvt/uno/sw/page/CheckBorder.java (revision eba4d44a33e5be0b2528d5a9a6f0dcbf65adaa0d)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 package fvt.uno.sw.page;
22 
23 import static org.openoffice.test.common.Testspace.*;
24 
25 import java.io.File;
26 import java.util.Arrays;
27 import java.util.Collection;
28 
29 import org.junit.After;
30 import org.junit.Before;
31 import org.junit.Test;
32 import org.junit.Ignore;
33 import org.junit.Assert;
34 import org.junit.runner.RunWith;
35 import org.junit.runners.Parameterized;
36 import org.junit.runners.Parameterized.Parameters;
37 
38 import org.openoffice.test.common.FileUtil;
39 import org.openoffice.test.uno.UnoApp;
40 
41 import testlib.uno.SWUtil;
42 import com.sun.star.text.XTextDocument;
43 import com.sun.star.uno.UnoRuntime;
44 import com.sun.star.lang.XComponent;
45 import com.sun.star.table.BorderLine;
46 
47 /**
48  * test page's border
49  * test page's footer/header's border
50  *
51  */
52 @RunWith(Parameterized.class)
53 public class CheckBorder {
54     UnoApp unoApp = new UnoApp();
55     XTextDocument textDocument = null;
56     File temp = null;
57     String tempFilePathODT = "";
58     String tempFilePathDOC = "";
59 
60     private String onProperty = "";
61     private String borderProperty = "";
62     private String borderDistanceProperty = "";
63     private BorderLine borderLine = null;
64     private int borderDistance = 0;
65 
66 
CheckBorder(String onProperty, String borderProperty, String borderDistanceProperty, int color, int lineDistance, int innerLineWidth, int outerLineWidth, int borderDistance)67     public CheckBorder(String onProperty, String borderProperty, String borderDistanceProperty,
68             int color, int lineDistance, int innerLineWidth, int outerLineWidth, int borderDistance){
69         this.borderLine = new BorderLine();
70         this.borderLine.Color = color;
71         this.borderLine.LineDistance = (short)lineDistance;
72         this.borderLine.InnerLineWidth = (short)innerLineWidth;
73         this.borderLine.OuterLineWidth = (short)outerLineWidth;
74 
75         this.onProperty = onProperty;
76         this.borderProperty = borderProperty;
77         this.borderDistanceProperty = borderDistanceProperty;
78 
79         this.borderDistance = borderDistance;
80     }
81 
82     @Parameters
data()83     public static Collection<Object[]> data(){
84         Object[][] params = new Object[][]{
85                 /*{"FooterIsOn", "LeftBorder", "LeftBorderDistance", 255, 100, 50,70,199},
86                 {"FooterIsOn", "RightBorder", "RightBorderDistance", 256, 0, 0,0,20},
87                 {"FooterIsOn", "BottomBorder", "BottomBorderDistance", 65536, 15, 10,30,300},
88                 {"FooterIsOn", "TopBorder", "TopBorderDistance", 65535, 6, 100,200,400},
89                 {"FooterIsOn", "FooterLeftBorder", "FooterLeftBorderDistance", 255, 100, 50,70,199},
90                 {"FooterIsOn", "FooterRightBorder", "FooterRightBorderDistance", 256, 0, 0,0,20},
91                 {"FooterIsOn", "FooterBottomBorder", "FooterBottomBorderDistance", 65536, 15, 10,30,300},
92                 {"FooterIsOn", "FooterTopBorder", "FooterTopBorderDistance", 65535, 6, 100,200,400},*/
93                 {"HeaderIsOn", "HeaderLeftBorder", "HeaderLeftBorderDistance", 255, 100, 50,70,0},
94                 {"HeaderIsOn", "HeaderRightBorder", "HeaderRightBorderDistance", 256, 0, 0,0,100},
95                 {"HeaderIsOn", "HeaderBottomBorder", "HeaderBottomBorderDistance", 65536, 15, 10,30,900},
96                 {"HeaderIsOn", "HeaderTopBorder", "HeaderTopBorderDistance", 65535, 6, 100,200,50}
97                 };
98         return Arrays.asList(params);
99     }
100 
101     /**
102      * test page's border
103      * test page's footer/header's border
104      * @throws Exception
105      */
106     @Ignore("#120822 - header/footer's border styles are lost when export to DOC format")
107     @Test
testFooterHeaderBorder()108     public void testFooterHeaderBorder() throws Exception
109     {
110         XComponent xComponent = unoApp.newDocument("swriter");
111         //turn on header/footer
112         SWUtil.setDefaultPageStyleProperty(xComponent, onProperty, new Boolean(true));
113         SWUtil.setDefaultPageStyleProperty(xComponent, borderProperty, borderLine);
114         SWUtil.setDefaultPageStyleProperty(xComponent, borderDistanceProperty, Integer.valueOf(borderDistance));
115 
116         //save as ODT and reopen, get border
117         unoApp.saveDocument(xComponent, tempFilePathODT);
118         unoApp.closeDocument(xComponent);
119         xComponent = unoApp.loadDocument(tempFilePathODT);
120 
121         BorderLine actualBorderLine = (BorderLine)SWUtil.getDefaultPageStyleProperty(xComponent, borderProperty);
122         int actualBorderDistance = ((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, borderDistanceProperty)).intValue();
123 
124         this.compareBorder("ODT:", borderLine, borderDistance);
125 
126         //save as DOC and reopen, get border
127         SWUtil.saveAsDoc(xComponent, FileUtil.getUrl(tempFilePathDOC));
128         unoApp.closeDocument(xComponent);
129         xComponent = unoApp.loadDocument(tempFilePathDOC);
130         actualBorderLine = (BorderLine)SWUtil.getDefaultPageStyleProperty(xComponent, borderProperty);
131         actualBorderDistance = ((Integer)SWUtil.getDefaultPageStyleProperty(xComponent, borderDistanceProperty)).intValue();
132 
133         this.compareBorder("DOC:", actualBorderLine, actualBorderDistance);
134 
135         unoApp.closeDocument(xComponent);
136 
137     }
138 
compareBorder(String preDes, BorderLine actualBorderLine, int actualBorderDistance)139     private void compareBorder(String preDes, BorderLine actualBorderLine, int actualBorderDistance){
140         Assert.assertEquals(preDes + borderProperty + "-->color.",(double)borderLine.Color, (double)actualBorderLine.Color, 2);
141         Assert.assertEquals(preDes + borderProperty + "-->LineDistance.", (double)borderLine.LineDistance, (double)actualBorderLine.LineDistance, 2);
142         Assert.assertEquals(preDes + borderProperty + "-->InnerLineWidth.", (double)borderLine.InnerLineWidth, (double)actualBorderLine.InnerLineWidth, 2);
143         Assert.assertEquals(preDes + borderProperty + "-->OuterLineWidth.", (double)borderLine.OuterLineWidth, (double)actualBorderLine.OuterLineWidth, 2);
144 
145         Assert.assertEquals(preDes + "-->" + borderDistanceProperty, (double)borderLine.OuterLineWidth, (double)actualBorderLine.OuterLineWidth, 2);
146     }
147 
148     /**
149      * @throws java.lang.Exception
150      */
151     @Before
setUp()152     public void setUp() throws Exception {
153         unoApp.start();
154 
155         FileUtil.deleteFile(getPath("temp"));
156         temp = new File(getPath("temp"));
157         temp.mkdirs();
158 
159         tempFilePathODT = temp + "/tempFilePathODT.odt";
160         tempFilePathDOC = temp + "/tempFilePathDOC.doc";
161     }
162 
163     @After
tearDown()164     public void tearDown() throws Exception {
165         unoApp.close();
166     }
167 
168 
169 }
170