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