xref: /AOO42X/test/testgui/source/bvt/gui/FileTypeTest.java (revision b0efeae40e43e6d4ccd561d22ec612d42773857b)
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 
22 /**
23  *
24  */
25 package bvt.gui;
26 
27 import static org.junit.Assert.*;
28 import static org.openoffice.test.common.Testspace.*;
29 import static org.openoffice.test.vcl.Tester.*;
30 import static testlib.gui.AppTool.*;
31 import static testlib.gui.UIMap.*;
32 
33 import java.awt.Rectangle;
34 
35 import org.junit.AfterClass;
36 import org.junit.Assert;
37 import org.junit.Before;
38 import org.junit.BeforeClass;
39 import org.junit.Rule;
40 import org.junit.Test;
41 import org.openoffice.test.common.GraphicsUtil;
42 import org.openoffice.test.common.Logger;
43 
44 import testlib.gui.SCTool;
45 
46 /**
47  *
48  */
49 public class FileTypeTest {
50 
51     @Rule
52     public Logger log = Logger.getLogger(this);
53 
54     @BeforeClass
beforeClass()55     public static void beforeClass() {
56         app.clean();
57     }
58 
59     @AfterClass
afterClass()60     public static void afterClass() {
61         app.stop();
62     }
63 
64     @Before
before()65     public void before() {
66         app.stop();
67         app.start();
68     }
69 
70 
71     /**
72      * Test New/Save a text document
73      *
74      * @throws Exception
75      */
76     @Test
testSaveNewODT()77     public void testSaveNewODT() throws Exception {
78         saveNewDocument("helloworld_saveas.odt");
79     }
80 
81     @Test
testSaveNewOTT()82     public void testSaveNewOTT() throws Exception {
83         saveNewDocument("helloworld_saveas.ott");
84     }
85 
86     @Test
testSaveNewSXW()87     public void testSaveNewSXW() throws Exception {
88         saveNewDocument("helloworld_saveas.sxw");
89     }
90 
91     @Test
testSaveNewSTW()92     public void testSaveNewSTW() throws Exception {
93         saveNewDocument("helloworld_saveas.stw");
94     }
95 
96     @Test
testSaveNewDOC()97     public void testSaveNewDOC() throws Exception {
98         saveNewDocument("helloworld_saveas.doc");
99     }
100 
101     @Test
testSaveNewTXT()102     public void testSaveNewTXT() throws Exception {
103         saveNewDocument("helloworld_saveas.txt");
104     }
105 
saveNewDocument(String file)106     private void saveNewDocument(String file) {
107         String saveTo = "temp/" + file;
108         String text = "@AOO";
109         newTextDocument();
110         writer.typeKeys(text);
111         sleep(1);
112         // Verify the text via system clip board
113         String result = copyAll();
114         sleep(1);
115         Assert.assertEquals("The typed text into writer", text, result);
116         result = null;
117 
118         // menuItem("Text Properties...").select();
119         app.dispatch(".uno:FontDialog");
120         effectsPage.select();
121         effectsPageColor.select(6);
122         effectsPage.ok();
123         sleep(1);
124 
125         // Save the text document
126         deleteFile(saveTo);
127         saveAs(saveTo);
128         close();
129         open(saveTo);
130         // Reopen the saved file
131         writer.waitForExistence(10, 2);
132         sleep(1);
133         // Verify if the text still exists in the file
134         result = copyAll();
135         sleep(1);
136         Assert.assertEquals("The typed text into writer is saved!", text, result);
137     }
138 
139     @Test
testSaveNewODS()140     public void testSaveNewODS() throws Exception {
141         saveNewSpreadsheet("helloworld_saveas.ods");
142     }
143 
144     @Test
testSaveNewOTS()145     public void testSaveNewOTS() throws Exception {
146         saveNewSpreadsheet("helloworld_saveas.ots");
147     }
148 
149     @Test
testSaveNewSXC()150     public void testSaveNewSXC() throws Exception {
151         saveNewSpreadsheet("helloworld_saveas.sxc");
152     }
153 
154     @Test
testSaveNewSTC()155     public void testSaveNewSTC() throws Exception {
156         saveNewSpreadsheet("helloworld_saveas.stc");
157     }
158 
159     // @Test
160     // public void testSaveNewCSV() throws Exception {
161     // saveNewSpreadsheet("helloworld_saveas.csv");
162     // }
163 
164     @Test
testSaveNewXLS()165     public void testSaveNewXLS() throws Exception {
166         saveNewSpreadsheet("helloworld_saveas.xls");
167     }
168 
saveNewSpreadsheet(String file)169     private void saveNewSpreadsheet(String file) {
170         String saveTo = "temp/" + file;
171         String text = "@AOO";
172         newSpreadsheet();
173         SCTool.selectRange("A65536");
174         calc.typeKeys(text);
175         deleteFile(saveTo);
176         saveAs(saveTo);
177         close();
178         open(saveTo);
179         calc.waitForExistence(10, 2);
180         sleep(1);
181         Assert.assertEquals("The typed text is saved!", text, SCTool.getCellText("A65536"));
182     }
183 
184     @Test
testSaveNewODP()185     public void testSaveNewODP() throws Exception {
186         saveNewPresentation("helloworld_saveas.odp");
187     }
188 
189     @Test
testSaveNewOTP()190     public void testSaveNewOTP() throws Exception {
191         saveNewPresentation("helloworld_saveas.otp");
192     }
193 
194     @Test
testSaveNewPPT()195     public void testSaveNewPPT() throws Exception {
196         saveNewPresentation("helloworld_saveas.ppt");
197     }
198 
199     @Test
testSaveNewPOT()200     public void testSaveNewPOT() throws Exception {
201         saveNewPresentation("helloworld_saveas.pot");
202     }
203 
204     @Test
testSaveNewSXI()205     public void testSaveNewSXI() throws Exception {
206         saveNewPresentation("helloworld_saveas.sxi");
207     }
208 
209     @Test
testSaveNewSTI()210     public void testSaveNewSTI() throws Exception {
211         saveNewPresentation("helloworld_saveas.sti");
212     }
213 
saveNewPresentation(String file)214     private void saveNewPresentation(String file) {
215         String saveTo = "temp/" + file;
216         String text = "@AOO";
217         newPresentation();
218         impress.typeKeys(text);
219         impress.doubleClick(0.1, 0.5);
220         deleteFile(saveTo);
221         saveAs(saveTo);
222         close();
223         open(saveTo);
224         impress.waitForExistence(10, 2);
225         sleep(1);
226         impress.typeKeys("<tab><enter>");
227         sleep(1);
228         String result = copyAll();
229         sleep(1);
230         Assert.assertEquals("The typed text is saved!", text, result.trim());
231     }
232 
233     // drawing
234 
235     /**
236      * Test save a new drawing as .odg
237      */
238     @Test
testSaveNewODG()239     public void testSaveNewODG() throws Exception {
240         saveNewDrawing("draw_saveas.odg");
241     }
242 
243     /**
244      * Test save a new drawing as .otg
245      */
246     @Test
testSaveNewOTG()247     public void testSaveNewOTG() throws Exception {
248         saveNewDrawing("draw_saveas.otg");
249     }
250 
251     /**
252      * Test save a new drawing as .sxd
253      */
254     @Test
testSaveNewSXD()255     public void testSaveNewSXD() throws Exception {
256         saveNewDrawing("draw_saveas.sxd");
257     }
258 
259     /**
260      * Test save a new drawing as .std
261      */
262     @Test
testSaveNewSTD()263     public void testSaveNewSTD() throws Exception {
264         saveNewDrawing("draw_saveas.std");
265     }
266 
267     /**
268      * New/Save a draw document 1. New a draw document 2. Insert a picture 3.
269      * Save it as the input filename 4. Reopen the saved file 5. Check if the
270      * picture is still there
271      *
272      * @param filename
273      *            : filename to be saved
274      * @throws Exception
275      */
saveNewDrawing(String filename)276     public void saveNewDrawing(String filename) {
277         String saveTo = "temp/" + filename;
278         String bmp_green = prepareData("image/green_256x256.bmp");
279         // Create a new drawing document
280         newDrawing();
281         // Insert a picture fully filled with green
282         app.dispatch(".uno:InsertGraphic");
283         submitOpenDlg(bmp_green);
284         // Focus on edit pane
285         draw.click(5, 5);
286         sleep(1);
287         // Verify if the picture is inserted successfully
288         Rectangle rectangle = GraphicsUtil.findRectangle(draw.getScreenRectangle(), 0xFF00FF00);
289         assertNotNull("Green rectangle: " + rectangle, rectangle);
290         deleteFile(saveTo);
291         saveAs(saveTo);
292         close();
293         open(saveTo);
294         draw.waitForExistence(10, 2);
295         sleep(1);
296         // Verify if the picture still exists in the file
297         Rectangle rectangle1 = GraphicsUtil.findRectangle(draw.getScreenRectangle(), 0xFF00FF00);
298         assertNotNull("Green rectangle: " + rectangle1, rectangle1);
299     }
300 
301     // math
302     /**
303      * Test save a new math as .odf
304      */
305     @Test
testSaveNewODF()306     public void testSaveNewODF() throws Exception {
307         saveNewMath("math_saveas.odf");
308     }
309 
310     /**
311      * Test save a new math as .sxm
312      */
313     @Test
testSaveNewSXM()314     public void testSaveNewSXM() throws Exception {
315         saveNewMath("math_saveas.sxm");
316     }
317 
318     /**
319      * Test save a new math as .mml
320      */
321     @Test
testSaveNewMML()322     public void testSaveNewMML() throws Exception {
323         saveNewMath("math_saveas.mml");
324     }
325 
326     /**
327      * New/Save a math 1. New a math 2. Insert a formula 3. Save it as the input
328      * filename 4. Reopen the saved file 5. Check if the formula is still there
329      *
330      * @param filename
331      *            : filename to be saved
332      * @throws Exception
333      */
saveNewMath(String filename)334     public void saveNewMath(String filename) {
335         String saveTo = "temp/" + filename;
336         String text = "5 times 3 = 15";
337         // Create a new math
338         newFormula();
339         // Insert a formula
340         mathEditWindow.typeKeys(text);
341         sleep(1);
342         // Verify the text via system clip board
343         String result = copyAll();
344         sleep(1);
345         assertEquals("The typed formula into math", text, result);
346         result = null;
347 
348         // Save the formula
349         deleteFile(saveTo);
350         saveAs(saveTo);
351         close();
352         open(saveTo);
353         mathEditWindow.waitForExistence(10, 2);
354         sleep(1);
355         mathEditWindow.focus();
356         result = copyAll();
357         sleep(1);
358         assertEquals("The typed formula into math is saved", text, result);
359     }
360 }
361