xref: /AOO41X/test/testuno/source/fvt/uno/sc/formula/TestFormulaRoundTrip.java (revision e931ed57a5c8e704b420022c99a7e6d42e09a673)
1*e931ed57SDamjan Jovanovic /**************************************************************
2*e931ed57SDamjan Jovanovic  *
3*e931ed57SDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4*e931ed57SDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5*e931ed57SDamjan Jovanovic  * distributed with this work for additional information
6*e931ed57SDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7*e931ed57SDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8*e931ed57SDamjan Jovanovic  * "License"); you may not use this file except in compliance
9*e931ed57SDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10*e931ed57SDamjan Jovanovic  *
11*e931ed57SDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12*e931ed57SDamjan Jovanovic  *
13*e931ed57SDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14*e931ed57SDamjan Jovanovic  * software distributed under the License is distributed on an
15*e931ed57SDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*e931ed57SDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17*e931ed57SDamjan Jovanovic  * specific language governing permissions and limitations
18*e931ed57SDamjan Jovanovic  * under the License.
19*e931ed57SDamjan Jovanovic  *
20*e931ed57SDamjan Jovanovic  *************************************************************/
21*e931ed57SDamjan Jovanovic 
22*e931ed57SDamjan Jovanovic 
23*e931ed57SDamjan Jovanovic package fvt.uno.sc.formula;
24*e931ed57SDamjan Jovanovic 
25*e931ed57SDamjan Jovanovic import static org.junit.Assert.assertEquals;
26*e931ed57SDamjan Jovanovic 
27*e931ed57SDamjan Jovanovic import java.util.Arrays;
28*e931ed57SDamjan Jovanovic import java.util.Collection;
29*e931ed57SDamjan Jovanovic 
30*e931ed57SDamjan Jovanovic import org.junit.After;
31*e931ed57SDamjan Jovanovic import org.junit.Before;
32*e931ed57SDamjan Jovanovic import org.junit.Test;
33*e931ed57SDamjan Jovanovic import org.junit.runner.RunWith;
34*e931ed57SDamjan Jovanovic import org.junit.runners.Parameterized;
35*e931ed57SDamjan Jovanovic import org.junit.runners.Parameterized.Parameters;
36*e931ed57SDamjan Jovanovic 
37*e931ed57SDamjan Jovanovic import org.openoffice.test.common.Testspace;
38*e931ed57SDamjan Jovanovic import org.openoffice.test.uno.UnoApp;
39*e931ed57SDamjan Jovanovic 
40*e931ed57SDamjan Jovanovic import testlib.uno.SCUtil;
41*e931ed57SDamjan Jovanovic import static testlib.uno.TestUtil.*;
42*e931ed57SDamjan Jovanovic 
43*e931ed57SDamjan Jovanovic import com.sun.star.beans.PropertyValue;
44*e931ed57SDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
45*e931ed57SDamjan Jovanovic import com.sun.star.frame.XStorable;
46*e931ed57SDamjan Jovanovic import com.sun.star.lang.XComponent;
47*e931ed57SDamjan Jovanovic import com.sun.star.sheet.XSpreadsheet;
48*e931ed57SDamjan Jovanovic import com.sun.star.sheet.XSpreadsheetDocument;
49*e931ed57SDamjan Jovanovic import com.sun.star.sheet.XSpreadsheets;
50*e931ed57SDamjan Jovanovic import com.sun.star.table.XCell;
51*e931ed57SDamjan Jovanovic 
52*e931ed57SDamjan Jovanovic public class TestFormulaRoundTrip {
53*e931ed57SDamjan Jovanovic     private UnoApp unoApp = new UnoApp();
54*e931ed57SDamjan Jovanovic 
55*e931ed57SDamjan Jovanovic     private XSpreadsheetDocument scDocument = null;
56*e931ed57SDamjan Jovanovic     private XComponent scComponent = null;
57*e931ed57SDamjan Jovanovic 
58*e931ed57SDamjan Jovanovic     @Before
setUp()59*e931ed57SDamjan Jovanovic     public void setUp() throws Exception {
60*e931ed57SDamjan Jovanovic         unoApp.start();
61*e931ed57SDamjan Jovanovic         scComponent = unoApp.newDocument("scalc");
62*e931ed57SDamjan Jovanovic         scDocument = SCUtil.getSCDocument(scComponent);
63*e931ed57SDamjan Jovanovic     }
64*e931ed57SDamjan Jovanovic 
65*e931ed57SDamjan Jovanovic     @After
tearDown()66*e931ed57SDamjan Jovanovic     public void tearDown() throws Exception {
67*e931ed57SDamjan Jovanovic         unoApp.closeDocument(scComponent);
68*e931ed57SDamjan Jovanovic         unoApp.close();
69*e931ed57SDamjan Jovanovic     }
70*e931ed57SDamjan Jovanovic 
71*e931ed57SDamjan Jovanovic     @Test
testMSExcel2003XMLFormulaRoundTrip()72*e931ed57SDamjan Jovanovic     public void testMSExcel2003XMLFormulaRoundTrip() throws Exception {
73*e931ed57SDamjan Jovanovic         XSpreadsheet sheet = SCUtil.getCurrentSheet(scDocument);
74*e931ed57SDamjan Jovanovic         SCUtil.setTextToCell(sheet, 0, 0, "Hello world");
75*e931ed57SDamjan Jovanovic         SCUtil.setFormulaToCell(sheet, 0, 1, "=A1");
76*e931ed57SDamjan Jovanovic         String formulaValue = SCUtil.getTextFromCell(sheet, 0, 1);
77*e931ed57SDamjan Jovanovic         assertEquals("Hello world", formulaValue);
78*e931ed57SDamjan Jovanovic 
79*e931ed57SDamjan Jovanovic         String storeUrl = Testspace.getUrl("output/sc/temp.xml");
80*e931ed57SDamjan Jovanovic         PropertyValue[] storeProps = new PropertyValue[2];
81*e931ed57SDamjan Jovanovic         storeProps[0] = new PropertyValue();
82*e931ed57SDamjan Jovanovic         storeProps[0].Name = "FilterName";
83*e931ed57SDamjan Jovanovic         storeProps[0].Value = "MS Excel 2003 XML";
84*e931ed57SDamjan Jovanovic         storeProps[1] = new PropertyValue();
85*e931ed57SDamjan Jovanovic         storeProps[1].Name = "Overwrite";
86*e931ed57SDamjan Jovanovic         storeProps[1].Value = new Boolean(true);
87*e931ed57SDamjan Jovanovic         XStorable scStorable =
88*e931ed57SDamjan Jovanovic             (XStorable) UnoRuntime.queryInterface(XStorable.class, scComponent);
89*e931ed57SDamjan Jovanovic         scStorable.storeAsURL(storeUrl, storeProps);
90*e931ed57SDamjan Jovanovic 
91*e931ed57SDamjan Jovanovic         unoApp.closeDocument(scComponent);
92*e931ed57SDamjan Jovanovic 
93*e931ed57SDamjan Jovanovic         scDocument = (XSpreadsheetDocument) UnoRuntime.queryInterface(
94*e931ed57SDamjan Jovanovic             XSpreadsheetDocument.class, unoApp.loadDocument(Testspace.getPath("output/sc/temp.xml")));
95*e931ed57SDamjan Jovanovic         sheet = SCUtil.getCurrentSheet(scDocument);
96*e931ed57SDamjan Jovanovic         String formulaValue2 = SCUtil.getTextFromCell(sheet, 0, 1);
97*e931ed57SDamjan Jovanovic         assertEquals("Hello world", formulaValue2);
98*e931ed57SDamjan Jovanovic         String formula2 = SCUtil.getFormulaFromCell(sheet, 0, 1);
99*e931ed57SDamjan Jovanovic         assertEquals("=A1", formula2);
100*e931ed57SDamjan Jovanovic     }
101*e931ed57SDamjan Jovanovic }
102