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