diff --git a/sc/JunitTest_sc_complex.mk b/sc/JunitTest_sc_complex.mk index cfd869b91917..43b8f356fc88 100644 --- a/sc/JunitTest_sc_complex.mk +++ b/sc/JunitTest_sc_complex.mk @@ -9,9 +9,6 @@ $(eval $(call gb_JunitTest_JunitTest,sc_complex)) -# sc/qa/complex/calcPreview/ tests do not work automatically (they request "Press -# any key after resizing" etc.) - $(eval $(call gb_JunitTest_add_classes,sc_complex, \ complex.sc.CalcRTL \ )) diff --git a/sc/qa/complex/calcPreview/TestDocument.java b/sc/qa/complex/calcPreview/TestDocument.java deleted file mode 100644 index 1ab9bdd3fe5b..000000000000 --- a/sc/qa/complex/calcPreview/TestDocument.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -package complex.calcPreview; - -import java.io.File; -import org.openoffice.test.OfficeFileUrl; - -final class TestDocument { - public static String getUrl(String name) { - return OfficeFileUrl.getAbsolute(new File("test_documents", name)); - } - - private TestDocument() {} -} diff --git a/sc/qa/complex/calcPreview/ViewForwarder.java b/sc/qa/complex/calcPreview/ViewForwarder.java deleted file mode 100644 index d1490013a9fa..000000000000 --- a/sc/qa/complex/calcPreview/ViewForwarder.java +++ /dev/null @@ -1,1003 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -package complex.calcPreview; - -import com.sun.star.awt.XWindow; -import com.sun.star.container.XIndexAccess; -import com.sun.star.frame.XController; -import com.sun.star.frame.XDispatch; -import com.sun.star.frame.XDispatchProvider; -import com.sun.star.frame.XModel; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.sheet.XSpreadsheet; -import com.sun.star.sheet.XSpreadsheets; -import com.sun.star.table.XCell; -import com.sun.star.uno.AnyConverter; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XInterface; -import com.sun.star.util.URL; -import com.sun.star.util.XURLTransformer; -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleText; -import com.sun.star.accessibility.XAccessibleValue; -import com.sun.star.accessibility.XAccessibleComponent; -import com.sun.star.accessibility.XAccessibleContext; - -import util.AccessibilityTools; -import util.SOfficeFactory; -import util.utils; - -import com.sun.star.beans.XPropertySet; -import com.sun.star.container.XNameAccess; -import com.sun.star.lang.XComponent; -import com.sun.star.sheet.XHeaderFooterContent; -import com.sun.star.sheet.XSpreadsheetDocument; -import com.sun.star.style.XStyle; -import com.sun.star.style.XStyleFamiliesSupplier; -import com.sun.star.text.XText; - -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.openoffice.test.OfficeConnection; -import static org.junit.Assert.*; - -/** - * A complex test for the preview of Calc documents. This complex test - * needs interaction from the user: documents have to be resized and moved. - */ -public class ViewForwarder { - - /** The MultiServiceFactory **/ - private XMultiServiceFactory mXMSF = null; - - /** - * Get a MultiServiceFactory from the Office before the test. - */ - @Before public void before() - { - mXMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager()); - } - - - /** Create a spreadsheet document, insert some text, header and footer. - * Let the user resize the document and check the contents. - */ - @Test public void checkPositiveViewForwarder() { - SOfficeFactory SOF = SOfficeFactory.getFactory( mXMSF ); - XSpreadsheetDocument xSpreadsheetDoc = null; - - try { - System.out.println("Creating a spreadsheet document"); - xSpreadsheetDoc = SOF.createCalcDoc(null); - } catch (com.sun.star.uno.Exception e) { - fail(e.getMessage()); - return; - } - - XInterface oObj = null; - - // inserting some content to have non-empty page preview - XCell xCell = null; - try { - XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ; - XIndexAccess oIndexSheets = - UnoRuntime.queryInterface(XIndexAccess.class, oSheets); - Object o = oIndexSheets.getByIndex(0); - XSpreadsheet oSheet = (XSpreadsheet)AnyConverter.toObject( - new com.sun.star.uno.Type(XSpreadsheet.class), o); - xCell = oSheet.getCellByPosition(0, 0) ; - xCell.setFormula("ScAccessiblePageHeader"); - - xCell = oSheet.getCellByPosition(0, 1) ; - xCell.setFormula("Cell 1"); - xCell = oSheet.getCellByPosition(0, 2) ; - xCell.setFormula("Cell 2"); - } catch(com.sun.star.lang.IllegalArgumentException e) { - System.out.println("Exception creating relation :"); - fail(e.getMessage()); - } catch(com.sun.star.lang.WrappedTargetException e) { - System.out.println("Exception creating relation :"); - fail(e.getMessage()); - } catch(com.sun.star.lang.IndexOutOfBoundsException e) { - System.out.println("Exception creating relation :"); - fail(e.getMessage()); - } - - XModel aModel = - UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc); - - XController xController = aModel.getCurrentController(); - - // get page styles - XStyleFamiliesSupplier StyleFam = - UnoRuntime.queryInterface( - XStyleFamiliesSupplier.class, - xSpreadsheetDoc ); - XNameAccess StyleFamNames = StyleFam.getStyleFamilies(); - XStyle StdStyle = null; - - try{ - Object o = StyleFamNames.getByName("PageStyles"); - XNameAccess PageStyles = (XNameAccess)AnyConverter.toObject( - new com.sun.star.uno.Type(XNameAccess.class), o); - - o = PageStyles.getByName("Default"); - StdStyle = (XStyle)AnyConverter.toObject( - new com.sun.star.uno.Type(XStyle.class), o); - } catch(com.sun.star.lang.IllegalArgumentException e) { - fail(e.getMessage()); - } catch(com.sun.star.lang.WrappedTargetException e){ - fail(e.getMessage()); - return; - } catch(com.sun.star.container.NoSuchElementException e){ - fail(e.getMessage()); - return; - } - - //get the property-set - final XPropertySet PropSet = - UnoRuntime.queryInterface(XPropertySet.class, StdStyle); - - XHeaderFooterContent RPHFC = null; - - // get the header - try { - Object o = PropSet.getPropertyValue("RightPageHeaderContent"); - RPHFC = (XHeaderFooterContent)AnyConverter.toObject( - new com.sun.star.uno.Type(XHeaderFooterContent.class), o); - - } catch(com.sun.star.lang.IllegalArgumentException e) { - fail(e.getMessage()); - } catch(com.sun.star.lang.WrappedTargetException e){ - fail(e.getMessage()); - return; - } catch(com.sun.star.beans.UnknownPropertyException e){ - fail(e.getMessage()); - return; - } - - // insert text into header - XText center = RPHFC.getCenterText(); - center.setString("First line \n\r Second line \n\r third line "); - try { - PropSet.setPropertyValue("RightPageHeaderContent",RPHFC); - } catch (com.sun.star.beans.UnknownPropertyException e) { - } catch (com.sun.star.beans.PropertyVetoException e) { - } catch (com.sun.star.lang.IllegalArgumentException e) { - } catch (com.sun.star.lang.WrappedTargetException e) {} - - // get footer - RPHFC = null; - try { - Object o = PropSet.getPropertyValue("RightPageHeaderContent"); - RPHFC = (XHeaderFooterContent)AnyConverter.toObject( - new com.sun.star.uno.Type(XHeaderFooterContent.class), o); - } catch(com.sun.star.lang.IllegalArgumentException e) { - fail(e.getMessage()); - } catch(com.sun.star.lang.WrappedTargetException e){ - fail(e.getMessage()); - return; - } catch(com.sun.star.beans.UnknownPropertyException e){ - fail(e.getMessage()); - return; - } - - // insert text into footer - center = RPHFC.getCenterText(); - center.setString("Third last line\n\r Second last line\n\r last line"); - try { - PropSet.setPropertyValue("RightPageFooterContent",RPHFC); - } catch (com.sun.star.beans.UnknownPropertyException e) { - } catch (com.sun.star.beans.PropertyVetoException e) { - } catch (com.sun.star.lang.IllegalArgumentException e) { - } catch (com.sun.star.lang.WrappedTargetException e) {} - - // switching to 'Page Preview' mode - try { - XDispatchProvider xDispProv = - UnoRuntime.queryInterface(XDispatchProvider.class, xController); - XURLTransformer xParser = - UnoRuntime.queryInterface(XURLTransformer.class, - mXMSF.createInstance("com.sun.star.util.URLTransformer")); - // Because it's an in/out parameter we must use an - // array of URL objects. - URL[] aParseURL = new URL[1]; - aParseURL[0] = new URL(); - aParseURL[0].Complete = ".uno:PrintPreview"; - xParser.parseStrict(aParseURL); - URL aURL = aParseURL[0]; - XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0); - if(xDispatcher != null) - { - xDispatcher.dispatch( aURL, null ); - } - } catch (com.sun.star.uno.Exception e) { - fail("Couldn't change mode"); - return; - } - - util.utils.waitForEventIdle(mXMSF); - - System.out.println("Press any key after resizing "); - try{ - byte[]b = new byte[16]; - System.in.read(b); - } catch (Exception e) { - e.printStackTrace(); - } - - XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel); - XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow); - XAccessible parent = null; - - try { - parent = AccessibilityTools.getAccessibleObjectForRole - (xRoot, AccessibleRole.HEADER, "").getAccessibleChild(0); - oObj = parent.getAccessibleContext().getAccessibleChild(0); - } catch (com.sun.star.lang.IndexOutOfBoundsException iabe) { - fail(iabe.getMessage()); - return; - } - - System.out.println("ImplementationName " + utils.getImplName(oObj)); - - XAccessibleComponent accPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, parent); - - System.out.println("Parent-BoundsX= "+accPC.getBounds().X); - System.out.println("Parent-BoundsY= "+accPC.getBounds().Y); - System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width); - System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height); - - XAccessibleComponent accPPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, - parent.getAccessibleContext().getAccessibleParent()); - - System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X); - System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y); - System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width); - System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height); - - util.utils.waitForEventIdle(mXMSF); - - System.out.println("Press any key when the second line is on top"); - try{ - byte[]b = new byte[16]; - System.in.read(b); - } catch (Exception e) { - e.printStackTrace(); - } - - try { - System.out.println("ChildCount: "+ - parent.getAccessibleContext().getAccessibleChildCount()); - System.out.println("Getting child 0 again"); - oObj = parent.getAccessibleContext().getAccessibleChild(0); - } catch (com.sun.star.lang.IndexOutOfBoundsException iabe) { - fail(iabe.getMessage()); - return; - } - - XAccessibleText accT = - UnoRuntime.queryInterface(XAccessibleText.class, oObj); - System.out.println("Getting the text: "+accT.getText()); - - XAccessibleComponent accC = - UnoRuntime.queryInterface(XAccessibleComponent.class, oObj); - System.out.println("BoundsX= "+accC.getBounds().X); - System.out.println("BoundsY= "+accC.getBounds().Y); - System.out.println("BoundsWidth= "+accC.getBounds().Width); - System.out.println("BoundsHeight= "+accC.getBounds().Height); - - accPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, parent); - - System.out.println("Parent-BoundsX= "+accPC.getBounds().X); - System.out.println("Parent-BoundsY= "+accPC.getBounds().Y); - System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width); - System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height); - - accPPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, - parent.getAccessibleContext().getAccessibleParent()); - - System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X); - System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y); - System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width); - System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height); - - - - System.out.println("Press any key when the footer is visible."); - try{ - byte[]b = new byte[16]; - System.in.read(b); - } catch (Exception e) { - e.printStackTrace(); - } - - try { - parent = AccessibilityTools.getAccessibleObjectForRole - (xRoot, AccessibleRole.FOOTER, "").getAccessibleChild(0); - } catch (com.sun.star.lang.IndexOutOfBoundsException iabe) { - fail(iabe.getMessage()); - return; - } - - accPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, parent); - - try { - System.out.println("ChildCount: "+ - parent.getAccessibleContext().getAccessibleChildCount()); - System.out.println("Getting child 0 again"); - oObj = parent.getAccessibleContext().getAccessibleChild(0); - } catch (com.sun.star.lang.IndexOutOfBoundsException iabe) { - fail(iabe.getMessage()); - return; - } - - accT = - UnoRuntime.queryInterface(XAccessibleText.class, oObj); - System.out.println("Getting the text: "+accT.getText()); - - accC = - UnoRuntime.queryInterface(XAccessibleComponent.class, oObj); - System.out.println("BoundsX= "+accC.getBounds().X); - System.out.println("BoundsY= "+accC.getBounds().Y); - System.out.println("BoundsWidth= "+accC.getBounds().Width); - System.out.println("BoundsHeight= "+accC.getBounds().Height); - - accPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, parent); - - System.out.println("Parent-BoundsX= "+accPC.getBounds().X); - System.out.println("Parent-BoundsY= "+accPC.getBounds().Y); - System.out.println("Parent-BoundsWidth= "+accPC.getBounds().Width); - System.out.println("Parent-BoundsHeight= "+accPC.getBounds().Height); - - accPPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, - parent.getAccessibleContext().getAccessibleParent()); - - System.out.println("P-Parent-BoundsX= "+accPPC.getBounds().X); - System.out.println("P-Parent-BoundsY= "+accPPC.getBounds().Y); - System.out.println("P-Parent-BoundsWidth= "+accPPC.getBounds().Width); - System.out.println("P-Parent-BoundsHeight= "+accPPC.getBounds().Height); - - - System.out.println("Press any key when the page content is on top"); - try{ - byte[]b = new byte[16]; - System.in.read(b); - } catch (Exception e) { - e.printStackTrace(); - } - - try { - parent = AccessibilityTools.getAccessibleObjectForRole - (xRoot, AccessibleRole.DOCUMENT, "").getAccessibleChild(0); - } catch (com.sun.star.lang.IndexOutOfBoundsException iabe) { - fail(iabe.getMessage()); - return; - } - System.out.println("PARENT: " + parent.getAccessibleContext().getAccessibleName()); - accPC = - UnoRuntime.queryInterface(XAccessibleComponent.class, parent); - - long cCount = 0; - try { - cCount = - parent.getAccessibleContext().getAccessibleChildCount(); - System.out.println("ChildCount: "+cCount); - System.out.println("Getting child 0 again"); - oObj = parent.getAccessibleContext().getAccessibleChild(0); - } catch (com.sun.star.lang.IndexOutOfBoundsException iabe) { - fail(iabe.getMessage()); - return; - } - - for (long i=0; i