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