summaryrefslogtreecommitdiffstats
path: root/qadevOOo/tests/java/mod/_sc
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/java/mod/_sc')
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java202
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java161
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java175
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java145
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java129
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java166
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java143
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java198
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java238
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java200
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java173
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java232
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java191
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java149
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java185
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java124
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java97
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java294
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellObj.java183
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java279
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java224
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java162
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java328
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java200
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java71
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java174
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java219
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScModelObj.java209
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScShapeObj.java101
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java143
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScStyleObj.java193
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTabViewObj.java233
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java384
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLContentExporter.java190
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLContentImporter.java180
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLExporter.java199
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLImporter.java176
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java181
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java171
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java182
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java199
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java185
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java196
-rw-r--r--qadevOOo/tests/java/mod/_sc/package.html23
44 files changed, 8187 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java
new file mode 100644
index 000000000..ed9e5da9a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java
@@ -0,0 +1,202 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+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.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+
+public class AccessibleEditableTextPara_HeaderFooter extends TestCase {
+ protected static XComponent xCalcDoc = null;
+ protected static XMultiServiceFactory msf = null;
+ protected static XAccessibleAction action = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XAccessibleContext oObj = null;
+ Object toolkit = msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ DiagThread psDiag = new DiagThread(xCalcDoc, msf);
+ psDiag.start();
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ Object atw = tk.getActiveTopWindow();
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ atw);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XAccessibleContext ok_button = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON,
+ "Cancel");
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PARAGRAPH);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + oObj.getAccessibleName());
+ log.println("ParentDescription " +
+ oObj.getAccessibleParent().getAccessibleContext()
+ .getAccessibleDescription());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, ok_button);
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ XAccessibleEditableText eText = UnoRuntime.queryInterface(
+ XAccessibleEditableText.class,
+ oObj);
+
+ eText.setText("LEFT");
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("Destroy", "AccessibleEditableTextPara_PreviewCell");
+
+ final XAccessibleEditableText editText = eText;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ editText.setText("LEFT_EVENT");
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the dialog using accessible button 'OK' found in
+ * <code>createTestEnvironment()</code>.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" disposing xCalcDoc ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xCalcDoc);
+ }
+
+ /**
+ * Opens new writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ msf = Param.getMSF();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xCalcDoc = UnoRuntime.queryInterface(XComponent.class,
+ SOF.createCalcDoc(
+ null));
+ }
+
+
+ /**
+ * Thread for opening modal dialog 'Print Settings'.
+ */
+ private class DiagThread extends Thread {
+ private XComponent xCalcDoc = null;
+ private XMultiServiceFactory msf = null;
+
+ private DiagThread(XComponent xCalcDoc, XMultiServiceFactory msf) {
+ this.xCalcDoc = xCalcDoc;
+ this.msf = msf;
+ }
+
+ @Override
+ public void run() {
+ XModel aModel = UnoRuntime.queryInterface(XModel.class,
+ xCalcDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ //Opening HeaderFooterDialog
+ try {
+ String aSlotID = ".uno:EditHeaderAndFooter";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ msf.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 = aSlotID;
+ 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) {
+ log.println("Couldn't open dialog");
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
new file mode 100644
index 000000000..b8ecfbfc2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
@@ -0,0 +1,161 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+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.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+
+public class AccessibleEditableTextPara_PreviewCell extends TestCase {
+ XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for a one of cell in preview mode.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XCell xCell = null;
+
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ xCell = oSheet.getCellByPosition(0, 0);
+
+ xCell.setFormula("Value");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ 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 );
+
+ XAccessibleContext oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentWindow(
+ xModel));
+ if (xRoot != null) {
+ AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE_CELL, true);
+ xRoot = AccessibilityTools.SearchedAccessible;
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.PARAGRAPH);
+ if (oObj != null) {
+ break;
+ }
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRoot.HEADER object");
+ }
+ log.println("No TABLE_CELL/PARAGRAPH found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + oObj.getAccessibleName());
+ log.println("Parent " + utils.getImplName(oObj.getAccessibleParent()));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EditOnly", "AccessibleEditableTextPara_PreviewCell");
+ tEnv.addObjRelation("Destroy", "AccessibleEditableTextPara_PreviewCell");
+
+ final XCell cell_to_change = xCell;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ cell_to_change.setFormula("NewString");
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java
new file mode 100644
index 000000000..1ec596a09
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java
@@ -0,0 +1,175 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XColumnRowRange;
+import com.sun.star.table.XTableColumns;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a cell in the spreadsheet. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleTable</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleTable
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleTable
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessibleCell extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TABLE_CELL, "B1");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // relation for XAccessibleEventBroadcaster
+ XCell xCell = null;
+ final String text = "XAccessibleText";
+ try {
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(1, 0) ;
+ xCell.setFormula(text);
+ XColumnRowRange oColumnRowRange = UnoRuntime.queryInterface(XColumnRowRange.class, oSheet);
+ XTableColumns oColumns = oColumnRowRange.getColumns();
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, oColumns);
+ XPropertySet column = UnoRuntime.queryInterface(
+ XPropertySet.class,oIndexAccess.getByIndex(1));
+ column.setPropertyValue("OptimalWidth", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ }
+
+ tEnv.addObjRelation("EditOnly",
+ "This method is only supported if the Cell is in edit mode");
+
+ final XCell fCell = xCell ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ fCell.setFormula("firing event");
+ fCell.setFormula(text);
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleText.Text", text);
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java
new file mode 100644
index 000000000..3e4be0a8f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java
@@ -0,0 +1,145 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScAccessibleCsvCell extends TestCase {
+
+ static XAccessibleAction accAction = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.PUSH_BUTTON, "Cancel");
+
+ accAction = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TABLE, true);
+
+ XAccessibleContext cont = UnoRuntime.queryInterface(XAccessibleContext.class, oObj);
+
+ String name = "";
+ try {
+ XAccessible acc = cont.getAccessibleChild(3);
+ name = acc.getAccessibleContext().getAccessibleName();
+ log.println("Child: "+ name);
+ log.println("ImplementationName " + utils.getImplName(acc));
+ oObj = acc;
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {}
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+ tEnv.addObjRelation("XAccessibleText.Text", name);
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " closing Dialog " );
+ try {
+ accAction.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iae) {
+ log.println("Couldn't close dialog");
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("opening dialog");
+
+ PropertyValue[] args = new PropertyValue[1];
+ try {
+ args[0] = new PropertyValue();
+ args[0].Name = "InteractionHandler";
+ args[0].Value = Param.getMSF().createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler");
+ } catch(com.sun.star.uno.Exception e) {
+ }
+
+ String url= utils.getFullTestURL("10test.csv");
+ log.println("loading "+url);
+ SOF.loadDocument(url,args);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java
new file mode 100644
index 000000000..0e7aefc2b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java
@@ -0,0 +1,129 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScAccessibleCsvGrid extends TestCase {
+
+ static XAccessibleAction accAction = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.PUSH_BUTTON, "Cancel");
+
+ accAction = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TABLE, true);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " closing Dialog " );
+ try {
+ accAction.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iae) {
+ log.println("Couldn't close dialog");
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("opening dialog");
+
+ PropertyValue[] args = new PropertyValue[1];
+ try {
+ args[0] = new PropertyValue();
+ args[0].Name = "InteractionHandler";
+ args[0].Value = Param.getMSF().createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler");
+ } catch(com.sun.star.uno.Exception e) {
+ }
+
+ String url= utils.getFullTestURL("10test.csv");
+ log.println("loading "+url);
+ SOF.loadDocument(url,args);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java
new file mode 100644
index 000000000..d3cd92464
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java
@@ -0,0 +1,166 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScAccessibleCsvRuler extends TestCase {
+
+ static XAccessibleAction accAction = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory msf = Param.getMSF();
+
+ XInterface oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PUSH_BUTTON,
+ "Cancel");
+
+ accAction = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ XAccessibleContext acc = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.RADIO_BUTTON);
+
+ log.println("Click on: " + acc.getAccessibleName());
+
+ XAccessibleAction accAction2 = UnoRuntime.queryInterface(
+ XAccessibleAction.class, acc);
+
+ try {
+ accAction2.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iae) {
+ }
+
+
+ AccessibilityTools.printAccessibleTree(log, xRoot);
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TEXT,
+ "Ruler", true);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ int lastone = 100;
+
+ for (int i = 0; i < 1000; i++) {
+ try {
+ text.getCharacterBounds(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ lastone = i - 1;
+
+ break;
+ }
+ }
+
+ tEnv.addObjRelation("LimitedBounds", Integer.valueOf(lastone));
+ tEnv.addObjRelation("PreviousUsed",new int[]{11,22,33,44,55,66,77,88,99});
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("opening dialog");
+
+ PropertyValue[] args = new PropertyValue[1];
+ try {
+ args[0] = new PropertyValue();
+ args[0].Name = "InteractionHandler";
+ args[0].Value = Param.getMSF().createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler");
+ } catch(com.sun.star.uno.Exception e) {
+ }
+
+ String url= utils.getFullTestURL("10test.csv");
+ log.println("loading "+url);
+ SOF.loadDocument(url,args);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java
new file mode 100644
index 000000000..348e8a6bc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java
@@ -0,0 +1,143 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for object which is represented by accessible component of
+ * a spreadsheet document.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessibleDocument extends TestCase {
+
+ static XComponent xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Obtains accessible object for the spreadsheet document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpages" );
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT, "");
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XWindow xDocWin = xWindow;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle rect = xDocWin.getPosSize();
+ xDocWin.setPosSize(rect.X,rect.Y,rect.Height,rect.Width-10,com.sun.star.awt.PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ util.DesktopTools.closeDoc(xSpreadsheetDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ String url = utils.getFullTestURL("calcshapes.sxc");
+ log.println("loading document "+url);
+ xSpreadsheetDoc = SOF.loadDocument(url);
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java
new file mode 100644
index 000000000..6474f8d84
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java
@@ -0,0 +1,198 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a spreadsheet page in 'Page Preview' mode.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessibleDocumentPagePreview extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ 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);
+ XSpreadsheet oSheet = null;
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(1));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessibleDocumentPagePreview - Page 2");
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(2));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessibleDocumentPagePreview - Page 3");
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessibleDocumentPagePreview");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating document page preview :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating document page preview :");
+ e.printStackTrace(log);
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // switching to 'Page Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().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 );
+
+ util.utils.shortWait();
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.DOCUMENT, "");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XDesktop desk = util.DesktopTools.createDesktop(Param.getMSF());
+ final XWindow win = desk.getCurrentFrame().getComponentWindow();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle rec = win.getPosSize();
+ win.setPosSize(rec.X,rec.Y,rec.Height-10,rec.Width, com.sun.star.awt.PosSize.POSSIZE);
+ win.setPosSize(rec.X,rec.Y,rec.Height,rec.Width,com.sun.star.awt.PosSize.POSSIZE );
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ String url = utils.getFullTestURL("calcshapes.sxc");
+ log.println("loading document "+url);
+ xSpreadsheetDoc = UnoRuntime.queryInterface(
+ XSpreadsheetDocument.class,SOF.loadDocument(url));
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
new file mode 100644
index 000000000..74670742c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
@@ -0,0 +1,238 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+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.DisposedException;
+import com.sun.star.sheet.XHeaderFooterContent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.table.XCell;
+import com.sun.star.text.XText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a printed header in 'Page Preview' mode.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessiblePageHeader extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // inserting some content to have non-empty page preview
+ XCell xCell = null;
+ try {
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessiblePageHeader");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating page header :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating page header :");
+ e.printStackTrace(log);
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // switching to 'Page Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().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 );
+
+ XInterface oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.HEADER, "");
+ if (oObj != null) {
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRoot.HEADER object");
+ }
+ log.println("No HEADER found yet, retrying");
+ }
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSpreadsheetDoc );
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+ XStyle StdStyle = null;
+
+ XNameAccess PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),
+ StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class), PageStyles.getByName("Default"));
+
+ //get the property-set
+ final XPropertySet PropSet = UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
+
+ XHeaderFooterContent RPHC = null;
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ RPHC = (XHeaderFooterContent) AnyConverter.toObject(
+ new Type(XHeaderFooterContent.class),
+ PropSet.getPropertyValue("RightPageHeaderContent"));
+
+ final XHeaderFooterContent RPHC2 = RPHC;
+
+ final XText center = RPHC2.getCenterText();
+ final XText left = RPHC2.getLeftText();
+ final XText right = RPHC2.getRightText();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ center.setString("CENTER");
+ left.setString("LEFT");
+ right.setString("RIGHT");
+ try {
+ PropSet.setPropertyValue("RightPageHeaderContent",RPHC2);
+ } 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) {}
+ }
+ });
+
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ try {
+ XCloseable oComp = UnoRuntime.queryInterface (XCloseable.class, xSpreadsheetDoc) ;
+ oComp.close(true);
+ } catch(com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document: "+e.getMessage());
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java
new file mode 100644
index 000000000..87f1c5a74
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java
@@ -0,0 +1,200 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleStateSet;
+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.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a printed header in 'Page Preview' mode.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessiblePageHeaderArea extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ 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);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessiblePageHeaderArea");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating page header area :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating page header area :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception creating page header area :");
+ e.printStackTrace(log);
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // switching to 'Page Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().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 );
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.HEADER, "").getAccessibleChild(0);
+ XAccessibleContext cont = UnoRuntime.queryInterface(XAccessibleContext.class, oObj);
+ XAccessibleStateSet StateSet = cont.getAccessibleStateSet();
+ if (StateSet.contains((short)27)) {
+ log.println("Object is transient");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XAccessibleContext zoomIn =
+ AccessibilityTools.getAccessibleObjectForRole(xRoot,AccessibleRole.PUSH_BUTTON, "Zoom In");
+
+ final XAccessibleAction pressZoom = UnoRuntime.queryInterface(XAccessibleAction.class, zoomIn);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ pressZoom.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ibe) {
+ System.out.println("caught exception: " + ibe);
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ try {
+ XCloseable oComp = UnoRuntime.queryInterface (XCloseable.class, xSpreadsheetDoc) ;
+ oComp.close(true);
+ }catch(com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document: "+e.getMessage());
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java
new file mode 100644
index 000000000..d645c407a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java
@@ -0,0 +1,173 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+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.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleValue</code>
+ * </li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessiblePreviewCell extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for a one of cell in preview mode.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XCell xCell = null;
+
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ xCell = oSheet.getCellByPosition(0, 0);
+
+ xCell.setFormula("Value");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ 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 );
+
+ XInterface oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentWindow(
+ xModel));
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE_CELL, true);
+ if (oObj != null) {
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRole.TABLE_CELL object");
+ }
+ log.println("No TABLE_CELL found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ System.out.println("Fire Event");
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java
new file mode 100644
index 000000000..911b65aec
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java
@@ -0,0 +1,232 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+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.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.util.XURLTransformer;
+
+
+/**
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleValue</code>
+ * </li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessiblePreviewHeaderCell extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ if (xSheetDoc != null) {
+ try {
+ XCloseable oComp = UnoRuntime.queryInterface(
+ XCloseable.class, xSheetDoc);
+ oComp.close(true);
+ xSheetDoc = null;
+ } catch (com.sun.star.util.CloseVetoException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("document already disposed");
+ xSheetDoc = null;
+ }
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Sets a value of the cell 'A1'. Sets the property 'PrintHeaders'
+ * of the style 'Default' of the family 'PageStyles' to true.
+ * Switch the document to preview mode and then obtains the
+ * accessible object for the header cell.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ if (xSheetDoc != null) {
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class,
+ xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //setting value of cell A1
+ XCell xCell = null;
+
+ log.println("Getting spreadsheet");
+
+ XSpreadsheets oSheets = xSheetDoc.getSheets();
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(
+ XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet");
+ xCell = oSheet.getCellByPosition(0, 0);
+
+ xCell.setFormula("Value");
+
+ //setting property 'PrintHeaders' of the style 'Default'
+ XStyleFamiliesSupplier xSFS = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSheetDoc);
+ XNameAccess xNA = xSFS.getStyleFamilies();
+ XPropertySet xPropSet = null;
+
+ Object oPageStyles = xNA.getByName("PageStyles");
+ xNA = UnoRuntime.queryInterface(XNameAccess.class,
+ oPageStyles);
+
+ Object oDefStyle = xNA.getByName("Default");
+ xPropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oDefStyle);
+
+ xPropSet.setPropertyValue("PrintHeaders", Boolean.TRUE);
+
+ //switching to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ Param.getMSF()
+ .createInstance("com.sun.star.util.URLTransformer"));
+ 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);
+ }
+
+ XInterface oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentWindow(
+ xModel));
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE, "A");
+ if (oObj == null) {
+ log.println("Version with a fixed #103863#?");
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE_CELL, true);
+ }
+ if (oObj != null) {
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRole.TABLE/TABLE_CELL object");
+ }
+ log.println("No TABLE/TABLE_CELL found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java
new file mode 100644
index 000000000..fece4f3d1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java
@@ -0,0 +1,191 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+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.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleTable</code>
+ * </li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleTable
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessiblePreviewTable extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for a table in preview mode.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(final TestParameters Param,
+ final PrintWriter log) throws Exception {
+
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ XCell xCell = oSheet.getCellByPosition(0, 0);
+ xCell.setFormula("Value");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ 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 );
+
+ XAccessible xRoot;
+ XInterface oObj;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentContainerWindow(
+ xModel));
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE);
+ if (oObj != null) {
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRole.TABLE/PUSH_BUTTON object");
+ }
+ log.println("No TABLE/PUSH_BUTTON found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XAccessibleContext zoomIn =
+ AccessibilityTools.getAccessibleObjectForRole(xRoot,AccessibleRole.PUSH_BUTTON, "Zoom In");
+
+ log.println("Getting \"" + zoomIn.getAccessibleName() + "\" which is a \"" + UnoRuntime.queryInterface(com.sun.star.lang.XServiceInfo.class, zoomIn).getImplementationName() + "\"");
+
+ final XAccessibleAction pressZoom = UnoRuntime.queryInterface(XAccessibleAction.class, zoomIn);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ pressZoom.doAccessibleAction(0);
+ // the action is not triggered on the preview table
+ // but some toolbar button - this will indirectly
+ // trigger a table event but only from VCL main loop
+ utils.waitForEventIdle(Param.getMSF());
+ // sadly it turns out that idle is not enough...
+ Thread.sleep(500);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ibe) {
+ log.println("ScAccessiblePreviewTable: IndexOutOfBoundsException from pressZoom.doAccessibleAction(0)");
+ } catch (InterruptedException ex) {}
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java
new file mode 100644
index 000000000..dd177b7e3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java
@@ -0,0 +1,149 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for accessible object of spreadsheet document.<p>
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleTable</code>
+ * </li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleTable
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessibleSpreadsheet extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for the spreadsheet.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(xModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE );
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // relation for XAccessibleEventBroadcaster
+ XCell xCell = null;
+ final String text = "Text for testing of the interface XAccessibleText";
+ try {
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(5, 5) ;
+ xCell.setFormula(text);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating accessible text :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating accessible text :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception creating accessible text :");
+ e.printStackTrace(log);
+ }
+
+ final XCell fCell = xCell ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ fCell.setFormula("firing event");
+ fCell.setFormula(text);
+ }
+ });
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java b/qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java
new file mode 100644
index 000000000..21cae1a41
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java
@@ -0,0 +1,185 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetAnnotation;
+import com.sun.star.sheet.XSheetAnnotationAnchor;
+import com.sun.star.sheet.XSheetAnnotationShapeSupplier;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.utils;
+
+import java.io.PrintWriter;
+import util.DefaultDsc;
+import util.InstCreator;
+
+
+/**
+* Test for object which represents some text annotation
+* anchored to some cell in spreadsheet (implement
+* <code>com.sun.star.sheet.CellAnnotation</code>).<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XSimpleText</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::sheet::XSheetAnnotation</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.sheet.CellAnnotation
+* @see com.sun.star.text.XSimpleText
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.sheet.XSheetAnnotation
+* @see ifc.text._XSimpleText
+* @see ifc.text._XTextRange
+* @see ifc.sheet._XSheetAnnotation
+*/
+public class ScAnnotationShapeObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF =
+ SOfficeFactory.getFactory(tParam
+ .getMSF());
+
+ log.println("creating a Spreadsheet document");
+ log.println("Loading: "+utils.getFullTestURL(
+ "ScAnnotationShapeObj.sxc"));
+ xSheetDoc =
+ UnoRuntime.queryInterface(XSpreadsheetDocument.class,
+ SOF.loadDocument(utils.getFullTestURL(
+ "ScAnnotationShapeObj.sxc")));
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp =
+ UnoRuntime.queryInterface(XComponent.class,
+ xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one them. Then a single cell is retrieved, and
+ * using its <code>com.sun.star.sheet.XSheetAnnotationAnchor</code>
+ * interface an annotation is got.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CELLPOS'</code> for
+ * {@link ifc.sheet._XSheetAnnotation} (of <code>
+ * com.sun.star.table.CellAddress</code> type) which
+ * contains the annotation cell address.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ CellAddress cellPos = new CellAddress((short) 0, 1, 2);
+
+ log.println("Getting test object ");
+
+ XSpreadsheetDocument xArea =
+ UnoRuntime.queryInterface(XSpreadsheetDocument.class,
+ xSheetDoc);
+ XSpreadsheets oSheets = xArea.getSheets();
+
+ XIndexAccess XAccess =
+ UnoRuntime.queryInterface(XIndexAccess.class,
+ oSheets);
+ XCell oCell = null;
+
+ XSpreadsheet oSheet =
+ (XSpreadsheet) AnyConverter.toObject(new Type(
+ XSpreadsheet.class),
+ XAccess.getByIndex(cellPos.Sheet));
+ XCellRange oCRange =
+ UnoRuntime.queryInterface(XCellRange.class,
+ oSheet);
+ oCell =
+ oCRange.getCellByPosition(cellPos.Column, cellPos.Row);
+
+ XSheetAnnotationAnchor oAnnoA =
+ UnoRuntime.queryInterface(XSheetAnnotationAnchor.class,
+ oCell);
+ XSheetAnnotation oAnno = oAnnoA.getAnnotation();
+
+ XSimpleText xAnnoText =
+ UnoRuntime.queryInterface(XSimpleText.class,
+ oAnno);
+ xAnnoText.setString("ScAnnotationShapeObj");
+
+ XSheetAnnotationShapeSupplier xSheetAnnotationShapeSupplier =
+ UnoRuntime.queryInterface(XSheetAnnotationShapeSupplier.class,
+ oAnno);
+
+ oObj = xSheetAnnotationShapeSupplier.getAnnotationShape();
+
+ log.println("ImplementationName: "
+ + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding ObjRelation for RotationDescriptor
+ tEnv.addObjRelation("NoShear", Boolean.TRUE);
+
+ //adding ObjRelation for XText
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.DateTime");
+
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation(
+ "XTEXTINFO", new InstCreator( xSheetDoc, tDsc ) );
+
+ return tEnv;
+ }
+}
+ // finish class ScAnnotationShapeObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java b/qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java
new file mode 100644
index 000000000..caa2e2a91
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java
@@ -0,0 +1,124 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetAnnotation;
+import com.sun.star.sheet.XSheetAnnotationAnchor;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.document.XDocumentInsertable
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.text.XParagraphCursor
+ * @see com.sun.star.text.XSentenceCursor
+ * @see com.sun.star.text.XTextCursor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XWordCursor
+ * @see com.sun.star.util.XSortable
+ *
+ */
+public class ScAnnotationTextCursor extends TestCase {
+
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ CellAddress cellPos = new CellAddress((short)0, 1, 2);
+
+ log.println("Getting test object ") ;
+
+ XSpreadsheetDocument xArea = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+
+ XSpreadsheets oSheets = xArea.getSheets();
+
+ XIndexAccess XAccess = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+
+ XSpreadsheet oSheet = (XSpreadsheet)XAccess.getByIndex(cellPos.Sheet);
+
+ XCellRange oCRange = UnoRuntime.queryInterface(XCellRange.class, oSheet);
+
+ XCell oCell = oCRange.getCellByPosition(cellPos.Column, cellPos.Row);
+
+ XSheetAnnotationAnchor oAnnoA = UnoRuntime.queryInterface(XSheetAnnotationAnchor.class, oCell);
+
+ XSheetAnnotation oAnno = oAnnoA.getAnnotation();
+ XSimpleText aText = UnoRuntime.queryInterface(XSimpleText.class,oAnno);
+ aText.setString("A nice little Test");
+ oObj = aText.createTextCursor();
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Other parameters required for interface tests
+
+ return tEnv;
+ }
+
+} // finish class ScAnnotationTextCursor
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java b/qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java
new file mode 100644
index 000000000..a97d3bbb4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java
@@ -0,0 +1,97 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.TableAutoFormatField</code>.
+* In StarCalc application there is a collection of autoformats
+* for tables (you can select a predefined format for a
+* table or create your own). Each autoformat has a number
+* of fields with definitions of font parameters, number
+* formats etc. for different parts of a table (column and
+* row names, footers, data). This object represents the
+* field of the same kind. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sheet::TableAutoFormatField</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.sheet.TableAutoFormatField
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.sheet._TableAutoFormatField
+* @see ifc.beans._XPropertySet
+*/
+public class ScAutoFormatFieldObj extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Using SOffice ServiceManager an instance of
+ * <code>com.sun.star.sheet.TableAutoFormatField</code> service
+ * is created. From this collection one Format is retrieved
+ * and then from this format one of its compound fields is
+ * retrieved.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log ) throws StatusException {
+
+ XInterface oObj = null;
+
+ try {
+
+ log.println ("create Object ...") ;
+ // creation of testobject here
+ XInterface formats = (XInterface)Param.getMSF().createInstance
+ ("com.sun.star.sheet.TableAutoFormats");
+ XIndexAccess formatsIndex = UnoRuntime.queryInterface
+ (XIndexAccess.class, formats);
+ XInterface format = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),formatsIndex.getByIndex(0));
+ XIndexAccess formatIndex = UnoRuntime.queryInterface
+ (XIndexAccess.class, format);
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),formatIndex.getByIndex(0));
+
+ } catch (com.sun.star.uno.Exception e) {
+ log.println ("Exception occurred while creating test Object.") ;
+ e.printStackTrace(log) ;
+ }
+
+ TestEnvironment tEnv = new TestEnvironment(oObj) ;
+
+ return tEnv;
+ }
+
+} // finish class ScAutoFormatFieldObj
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java b/qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java
new file mode 100644
index 000000000..fe155bba8
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java
@@ -0,0 +1,294 @@
+/*
+ * 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 mod._sc;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetCellRange;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCellCursor</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::sheet::XUsedAreaCursor</code></li>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::table::XCellRange</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeAddressable</code></li>
+* <li> <code>com::sun::star::table::XCellCursor</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellCursor</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::sheet::XArrayFormulaRange</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRange</code></li>
+* <li> <code>com::sun::star::sheet::SheetCellRange</code></li>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::util::XMergeable</code></li>
+* <li> <code>com::sun::star::table::XColumnRowRange</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCellCursor
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.sheet.XUsedAreaCursor
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.table.XCellRange
+* @see com.sun.star.sheet.XCellRangeAddressable
+* @see com.sun.star.table.XCellCursor
+* @see com.sun.star.sheet.XSheetCellCursor
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.sheet.XArrayFormulaRange
+* @see com.sun.star.sheet.XSheetCellRange
+* @see com.sun.star.sheet.SheetCellRange
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.util.XMergeable
+* @see com.sun.star.table.XColumnRowRange
+* @see ifc.style._ParagraphProperties
+* @see ifc.sheet._XUsedAreaCursor
+* @see ifc.table._CellProperties
+* @see ifc.table._XCellRange
+* @see ifc.sheet._XCellRangeAddressable
+* @see ifc.table._XCellCursor
+* @see ifc.sheet._XSheetCellCursor
+* @see ifc.style._CharacterProperties
+* @see ifc.sheet._XSheetOperation
+* @see ifc.sheet._XArrayFormulaRange
+* @see ifc.sheet._XSheetCellRange
+* @see ifc.sheet._SheetCellRange
+* @see ifc.chart._XChartData
+* @see ifc.beans._XPropertySet
+* @see ifc.util._XMergeable
+* @see ifc.table._XColumnRowRange
+*/
+public class ScCellCursorObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one of them, retrieves some cell range and creates cursor range
+ * that is instance of the service
+ * <code>com.sun.star.sheet.SheetCellCursor</code>,
+ * fills some cells in the cell range.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SHEET'</code> for
+ * {@link ifc.table._XCellCursor},
+ * {@link ifc.sheet._XArrayFormulaRange} (the spreadsheet that was
+ * retrieved from collection)</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ TestEnvironment tEnv = null;
+ XSpreadsheet oSheet = null;
+ XCellRange testRange = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ XSpreadsheets oSpreadsheets = UnoRuntime.queryInterface(
+ XSpreadsheetDocument.class,
+ xSheetDoc).getSheets();
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oSpreadsheets.getByName(
+ oSpreadsheets.getElementNames()[0]));
+
+ testRange = oSheet.getCellRangeByName("$A$1:$D$4");
+
+ XSheetCellRange testSheetRange = UnoRuntime.queryInterface(
+ XSheetCellRange.class,
+ testRange);
+ oObj = oSheet.createCursorByRange(testSheetRange);
+ oSheet.getCellByPosition(1, 1).setValue(1);
+ oSheet.getCellByPosition(4, 5).setValue(1);
+ oSheet.getCellByPosition(3, 2).setFormula("xTextDoc");
+ oSheet.getCellByPosition(3, 3).setFormula("xTextDoc");
+
+ log.println("Test object successfully created.");
+
+ tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("CRDESC",
+ "Column and RowDescriptions can't be changed for this Object");
+
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B1";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B2";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B3 ... Sheet1.C1 ... Sheet1.D1";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A2;Sheet1.C2";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+
+ tEnv.addObjRelation("NewData",
+ new Object[][]
+ {
+ { "", "", "", "" },
+ { "", "2", "3", "4" },
+ { "", "2", "3", "4" },
+ { "", "2", "3", "4" }
+ });
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet", PropSet);
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XCellRange oTable = testRange;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ try {
+ oTable.getCellByPosition(0, 0).setValue(4);
+ oTable.getCellByPosition(0, 1).setFormula("b");
+ oTable.getCellByPosition(0, 2).setValue(3);
+ oTable.getCellByPosition(0, 3).setValue(23);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[4];
+
+ for (int i = 0; i < 4; i++) {
+ try {
+ XCell cell = oTable.getCellByPosition(0, i);
+ value[i] = cell.getFormula();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ out.println("Sorting ascending");
+
+ String[] rightVal = { "3", "4", "23", "b" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ }
+} // finish class ScCellCursorObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellObj.java b/qadevOOo/tests/java/mod/_sc/ScCellObj.java
new file mode 100644
index 000000000..1c5e02d37
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellObj.java
@@ -0,0 +1,183 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCell</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::text::XSimpleText</code></li>
+* <li> <code>com::sun::star::table::XCell</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::document::XActionLockable</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::text::XText</code></li>
+* <li> <code>com::sun::star::sheet::XCellAddressable</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCell
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.text.XSimpleText
+* @see com.sun.star.table.XCell
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.document.XActionLockable
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.text.XText
+* @see com.sun.star.sheet.XCellAddressable
+* @see ifc.table._CellProperties
+* @see ifc.text._XSimpleText
+* @see ifc.table._XCell
+* @see ifc.text._XTextRange
+* @see ifc.beans._XPropertySet
+* @see ifc.style._CharacterProperties
+* @see ifc.document._XActionLockable
+* @see ifc.style._ParagraphProperties
+* @see ifc.text._XText
+* @see ifc.sheet._XCellAddressable
+*/
+public class ScCellObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "Creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one of them. Retrieves some cell from the spreadsheet
+ * that is instance of the service <code>com.sun.star.sheet.SheetCell</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XTEXTINFO',</code> for
+ * {@link ifc.text._XText} </li>
+ * </ul>
+ * @see com.sun.star.sheet.SheetCell
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ XSpreadsheet oSheet = null;
+ XCell cell = null;
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ oObj = oSheet.getCellByPosition(2, 3) ;
+ cell = UnoRuntime.queryInterface(XCell.class, oObj);
+
+ log.println( "creating a new environment for ScCellObj object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Object relations for interface tests
+ DefaultDsc tDsc = new DefaultDsc(
+ "com.sun.star.text.XTextContent", "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xSheetDoc, tDsc ) );
+ // add the sheet
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.C4";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.C4";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.C4";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.C4";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+ tEnv.addObjRelation("XCellRangesQuery.CREATEENTRIES", Boolean.TRUE);
+
+ // make entries in this cell at the interface test
+ tEnv.addObjRelation("XTextFieldsSupplier.MAKEENTRY", Boolean.TRUE);
+ tEnv.addObjRelation("MAKEENTRYINCELL", cell);
+
+ // for XSearchable and XReplaceable interface test
+ tEnv.addObjRelation("XSearchable.MAKEENTRYINCELL", cell);
+ tEnv.addObjRelation("EXCLUDEFINDNEXT", Boolean.TRUE);
+
+ // for XFormulaQuery interface test
+ tEnv.addObjRelation("EXPECTEDDEPENDENTVALUES", new int[]{2,2,3,3});
+ tEnv.addObjRelation("EXPECTEDPRECEDENTVALUES", new int[]{0,3,0,0});
+ tEnv.addObjRelation("RANGEINDICES", new int[]{0,0});
+
+ // XTextFieldsSupplier
+ tEnv.addObjRelation("SPREADSHEET", xSheetDoc);
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet",PropSet);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ScCellObj
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java b/qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java
new file mode 100644
index 000000000..c37e04015
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java
@@ -0,0 +1,279 @@
+/*
+ * 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 mod._sc;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCellRange</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::util::XMergeable</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeAddressable</code></li>
+* <li> <code>com::sun::star::sheet::XArrayFormulaRange</code></li>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::table::XColumnRowRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::table::XCellRange</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::sheet::SheetCellRange</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCellRange
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.util.XMergeable
+* @see com.sun.star.sheet.XCellRangeAddressable
+* @see com.sun.star.sheet.XArrayFormulaRange
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.table.XColumnRowRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.table.XCellRange
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.sheet.SheetCellRange
+* @see ifc.table._CellProperties
+* @see ifc.util._XMergeable
+* @see ifc.sheet._XCellRangeAddressable
+* @see ifc.sheet._XArrayFormulaRange
+* @see ifc.chart._XChartData
+* @see ifc.table._XColumnRowRange
+* @see ifc.beans._XPropertySet
+* @see ifc.style._CharacterProperties
+* @see ifc.sheet._XSheetOperation
+* @see ifc.table._XCellRange
+* @see ifc.style._ParagraphProperties
+* @see ifc.sheet._SheetCellRange
+*/
+public class ScCellRangeObj extends TestCase {
+ XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one of them. Retrieves some cell range from the spreadsheet.
+ * The retrieved cell range is instance of the service
+ * <code>com.sun.star.sheet.SheetCellRange</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SHEET'</code> for
+ * {@link ifc.sheet._XArrayFormulaRange} (the spreadsheet which the cell
+ * range was retrieved from)</li>
+ * </ul>
+ * @see com.sun.star.sheet.XSpreadsheet
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XCellRange testRange;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ XSpreadsheets oSpreadsheets = UnoRuntime.queryInterface(
+ XSpreadsheetDocument.class,
+ xSheetDoc).getSheets();
+ XNameAccess oNames = UnoRuntime.queryInterface(
+ XNameAccess.class, oSpreadsheets);
+
+ XSpreadsheet oSheet = null;
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oNames.getByName(oNames.getElementNames()[0]));
+
+ oObj = oSheet.getCellRangeByPosition(0, 0, 3, 4);
+ testRange = UnoRuntime.queryInterface(
+ XCellRange.class, oObj);
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B1:C1;Sheet1.B3";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B2:B3";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B5 ... Sheet1.C3 ... Sheet1.D1";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "Sheet1.C2";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A2:A4;Sheet1.C2:D4";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+ tEnv.addObjRelation("XCellRangesQuery.CREATEENTRIES", Boolean.TRUE);
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet", PropSet);
+
+ // XSearchable: Add a cell to make a searchable entry
+ try {
+ tEnv.addObjRelation("XSearchable.MAKEENTRYINCELL", new XCell[] {
+ testRange.getCellByPosition(0,0), testRange.getCellByPosition(0,1)});
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e){
+ e.printStackTrace(log);
+ log.println("Cannot make required object relation 'XSearchable.MAKEENTRYINCELL'.");
+ }
+
+ // XCellRangeData
+/* Object[][] newData = new Object[5][4];
+ for (int i=0; i<newData.length; i++) {
+ for (int j=0; j<newData[i].length; j++) {
+ newData[i][j] = new Double(i*10+j);
+ }
+ }
+ tEnv.addObjRelation("NewData", newData); */
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XCellRange oTable = testRange;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ try {
+ oTable.getCellByPosition(0, 0).setValue(4);
+ oTable.getCellByPosition(0, 1).setFormula("b");
+ oTable.getCellByPosition(0, 2).setValue(3);
+ oTable.getCellByPosition(0, 3).setValue(23);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[4];
+
+ for (int i = 0; i < 4; i++) {
+ try {
+ XCell cell = oTable.getCellByPosition(0, i);
+ value[i] = cell.getFormula();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ out.println("Sorting ascending");
+
+ String[] rightVal = { "3", "4", "23", "b" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ }
+} // finish class ScCellRangeObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java b/qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java
new file mode 100644
index 000000000..1dfbcfc1e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java
@@ -0,0 +1,224 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCellRanges</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::container::XNameReplace</code></li>
+* <li> <code>com::sun::star::container::XNameContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRangeContainer</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRanges</code></li>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCellRanges
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.container.XNameReplace
+* @see com.sun.star.container.XNameContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.sheet.XSheetCellRangeContainer
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.sheet.XSheetCellRanges
+* @see com.sun.star.container.XNameAccess
+* @see ifc.table._CellProperties
+* @see ifc.container._XNameReplace
+* @see ifc.container._XNameContainer
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.container._XEnumerationAccess
+* @see ifc.sheet._XSheetCellRangeContainer
+* @see ifc.sheet._XSheetOperation
+* @see ifc.sheet._XSheetCellRanges
+* @see ifc.container._XNameAccess
+*/
+public class ScCellRangesObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a sheetdocument" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp =
+ UnoRuntime.queryInterface (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sheet.SheetCellRanges</code> and fills some cells.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> for
+ * {@link ifc.container._XNameReplace},
+ * {@link ifc.container._XNameContainer} (type of
+ * <code>XCellRange</code>)</li>
+ * <li> <code>'THRCNT'</code> for
+ * {@link ifc.container._XNameReplace}(the number of the running threads
+ * that was retrieved from the method parameter <code>Param</code>)</li>
+ * <li> <code>'NameReplaceIndex'</code> for
+ * {@link ifc.container._XNameReplace} </li>
+ * </ul>
+ * @see com.sun.star.table.XCellRange
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oRange = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+
+ log.println("Getting test object ");
+
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc);
+
+ oObj = (XInterface)
+ SOF.createInstance(oComp, "com.sun.star.sheet.SheetCellRanges");
+
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndSheets = UnoRuntime.queryInterface (XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = null;
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class), oIndSheets.getByIndex(0));
+ XNameContainer oRanges = UnoRuntime.queryInterface(XNameContainer.class, oObj);
+
+ oRange = oSheet.getCellRangeByName("C1:D4");
+ oRanges.insertByName("Range1", oRange);
+ oRange = oSheet.getCellRangeByName("E2:F5");
+ oRanges.insertByName("Range2", oRange);
+ oRange = oSheet.getCellRangeByName("G2:H3");
+ oRanges.insertByName("Range3", oRange);
+ oRange = oSheet.getCellRangeByName("I7:J8");
+ oRanges.insertByName("Range4", oRange);
+
+ log.println("filling some cells");
+ for (int i = 0; i < 10; i++) {
+ for (int j = 0; j < 5; j++) {
+ oSheet.getCellByPosition(i, j).setFormula("a");
+ }
+ }
+ for (int i = 0; i < 10; i++) {
+ for (int j = 5; j < 10; j++) {
+ oSheet.getCellByPosition(i, j).setValue(i + j);
+ }
+ }
+
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // NameReplaceIndex : _XNameReplace
+ log.println( "adding NameReplaceIndex as mod relation to environment" );
+ tEnv.addObjRelation("NameReplaceIndex", "0");
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println( "adding INSTANCEn as mod relation to environment" );
+
+ int THRCNT = 1;
+ if ((String)Param.get("THRCNT") != null) {
+ THRCNT= Integer.parseInt((String)Param.get("THRCNT"));
+ }
+ int a = 0;
+ int b = 0;
+ for (int n = 1; n < (THRCNT + 1) ; n++) {
+ a = n * 2;
+ b = a + 1;
+ oRange = oSheet.getCellRangeByName("A" + a + ":B" + b);
+ log.println(
+ "adding INSTANCE" + n + " as mod relation to environment" );
+
+ tEnv.addObjRelation("INSTANCE" + n, oRange);
+ }
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet",PropSet);
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.I7:J8";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.I7:J8";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.C2:D4"; // first range, first line invisible
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+
+ // for XSearchable and XReplaceable interface test
+ tEnv.addObjRelation("SEARCHSTRING", "15");
+
+ // for XFormulaQuery interface test
+ tEnv.addObjRelation("EXPECTEDDEPENDENTVALUES", new int[]{4,5,1,4});
+ tEnv.addObjRelation("EXPECTEDPRECEDENTVALUES", new int[]{4,5,1,4});
+ return tEnv ;
+ }
+
+} // finish class ScCellRangesObj
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java b/qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java
new file mode 100644
index 000000000..882f25702
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java
@@ -0,0 +1,162 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.text.XText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.TextCursor</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XTextCursor</code></li>
+* <li> <code>com::sun::star::text::XWordCursor</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::text::XSentenceCursor</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::text::XParagraphCursor</code></li>
+* <li> <code>com::sun::star::document::XDocumentInsertable</code></li>
+* <li> <code>com::sun::star::util::XSortable</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+* </ul>
+* @see com.sun.star.text.TextCursor
+* @see com.sun.star.text.XTextCursor
+* @see com.sun.star.text.XWordCursor
+* @see com.sun.star.style.CharacterPropertiesComplex
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XContentEnumerationAccess
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.text.XSentenceCursor
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.text.XParagraphCursor
+* @see com.sun.star.document.XDocumentInsertable
+* @see com.sun.star.util.XSortable
+* @see com.sun.star.style.CharacterPropertiesAsian
+* @see ifc.text._XTextCursor
+* @see ifc.text._XWordCursor
+* @see ifc.style._CharacterPropertiesComplex
+* @see ifc.text._XTextRange
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XContentEnumerationAccess
+* @see ifc.beans._XPropertyState
+* @see ifc.style._CharacterProperties
+* @see ifc.text._XSentenceCursor
+* @see ifc.style._ParagraphProperties
+* @see ifc.text._XParagraphCursor
+* @see ifc.document._XDocumentInsertable
+* @see ifc.util._XSortable
+* @see ifc.style._CharacterPropertiesAsian
+*/
+public class ScCellTextCursor extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Retrieves the cell from the spreadsheet
+ * and creates text cursor of the cell using the interface
+ * <code>XText</code>. This text cursor is the instance of
+ * the service <code>com.sun.star.text.TextCursor</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XTEXT'</code> for
+ * {@link ifc.text._XTextRange} (type of
+ * <code>XEnumerationAccess</code> that was retrieved from the
+ * collection of visible cells)</li>
+ * </ul>
+ * @see com.sun.star.text.XText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XCell aCell = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ // get a soffice factory object
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ aCell = oSheet.getCellByPosition(1,1) ;
+
+ XText aText = UnoRuntime.queryInterface(XText.class, aCell);
+ aText.setString("ScCellTextCursor");
+ oObj = aText.createTextCursor();
+
+ log.println( "creating a new environment for ScCellTextCursor object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Object relations for interface tests
+ tEnv.addObjRelation("XTEXT", aText);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ScCellTextCursor
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java b/qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java
new file mode 100644
index 000000000..47f43fd1d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java
@@ -0,0 +1,328 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.DataPilotFieldOrientation;
+import com.sun.star.sheet.XDataPilotDescriptor;
+import com.sun.star.sheet.XDataPilotField;
+import com.sun.star.sheet.XDataPilotTables;
+import com.sun.star.sheet.XDataPilotTablesSupplier;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.DataPilotField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::sheet::DataPilotField</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.sheet.DataPilotField
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.sheet.DataPilotField
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.container._XNamed
+* @see ifc.sheet._DataPilotField
+* @see ifc.beans._XPropertySet
+*/
+public class ScDataPilotItemObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * A field is filled some values. This integer determines the size of the
+ * field in x and y direction.
+ */
+ private static final int mMaxFieldIndex = 6;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Fills some table in the spreadsheet.
+ * Obtains the collection of data pilot tables using the interface
+ * <code>XDataPilotTablesSupplier</code>. Creates a data pilot descriptor
+ * for the filled table and inserts new data pilot table with this descriptor
+ * to the collection. Obtains the collection of all the data pilot fields
+ * using the interface <code>XDataPilotDescriptor</code>. Retrieves from
+ * the collection the data pilot field with index 0. This data pilot field
+ * is the instance of the service <code>com.sun.star.sheet.DataPilotField</code>.
+ * @see com.sun.star.sheet.DataPilotField
+ * @see com.sun.star.sheet.XDataPilotTablesSupplier
+ * @see com.sun.star.sheet.XDataPilotDescriptor
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ // the cell range
+ CellRangeAddress sCellRangeAddress = new CellRangeAddress();
+ sCellRangeAddress.Sheet = 0;
+ sCellRangeAddress.StartColumn = 1;
+ sCellRangeAddress.StartRow = 0;
+ sCellRangeAddress.EndColumn = mMaxFieldIndex - 1;
+ sCellRangeAddress.EndRow = mMaxFieldIndex - 1;
+
+ // position of the data pilot table
+ CellAddress sCellAddress = new CellAddress();
+ sCellAddress.Sheet = 0;
+ sCellAddress.Column = 7;
+ sCellAddress.Row = 8;
+
+ log.println("Getting a sheet");
+
+ XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
+ XSpreadsheet oSheet = null;
+ XSpreadsheet oSheet2 = null;
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(
+ XIndexAccess.class, xSpreadsheets);
+ // Make sure there are at least two sheets
+ xSpreadsheets.insertNewByName("Some Sheet", (short)0);
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexAccess.getByIndex(0));
+ oSheet2 = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexAccess.getByIndex(1));
+
+ log.println("Filling a table");
+
+ for (int i = 1; i < mMaxFieldIndex; i++) {
+ oSheet.getCellByPosition(i, 0).setFormula("Col" + i);
+ oSheet.getCellByPosition(0, i).setFormula("Row" + i);
+ oSheet2.getCellByPosition(i, 0).setFormula("Col" + i);
+ oSheet2.getCellByPosition(0, i).setFormula("Row" + i);
+ }
+
+ for (int i = 1; i < mMaxFieldIndex; i++)
+ for (int j = 1; j < mMaxFieldIndex; j++) {
+ oSheet.getCellByPosition(i, j).setValue(i * (j + 1));
+ oSheet2.getCellByPosition(i, j).setValue(i * (j + 2));
+ }
+
+ oSheet.getCellByPosition(1, 5);
+
+ int x = sCellAddress.Column;
+ int y = sCellAddress.Row + 3;
+
+
+ oSheet.getCellByPosition(x, y);
+
+
+ // create the test objects
+ log.println("Getting test objects");
+
+ XDataPilotTablesSupplier DPTS = UnoRuntime.queryInterface(
+ XDataPilotTablesSupplier.class,
+ oSheet);
+ XDataPilotTables DPT = DPTS.getDataPilotTables();
+ XDataPilotDescriptor DPDsc = DPT.createDataPilotDescriptor();
+ DPDsc.setSourceRange(sCellRangeAddress);
+
+ XPropertySet fieldPropSet = null;
+
+ Object oDataPilotField = DPDsc.getDataPilotFields().getByIndex(0);
+ fieldPropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oDataPilotField);
+
+ fieldPropSet.setPropertyValue("Function",
+ com.sun.star.sheet.GeneralFunction.SUM);
+ fieldPropSet.setPropertyValue("Orientation",
+ com.sun.star.sheet.DataPilotFieldOrientation.DATA);
+
+ log.println("Insert the DataPilotTable");
+
+ if (DPT.hasByName("DataPilotTable")) {
+ DPT.removeByName("DataPilotTable");
+ }
+
+ XIndexAccess IA = DPDsc.getDataPilotFields();
+ getSRange(IA);
+
+ DPT.insertNewByName("DataPilotTable", sCellAddress, DPDsc);
+
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class), IA.getByIndex(0));
+
+ log.println("Creating object - " +
+ ((oObj == null) ? "FAILED" : "OK"));
+
+ XDataPilotField xDataPilotField = UnoRuntime.queryInterface(
+ XDataPilotField.class, oObj);
+
+ XIndexAccess xIA = xDataPilotField.getItems();
+
+ oObj = UnoRuntime.queryInterface(XInterface.class,
+ xIA.getByIndex(0));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("Implementationname: " + util.utils.getImplName(oObj));
+
+ // Other parameters required for interface tests
+ tEnv.addObjRelation("NoSetName", "ScDataPilotItemObj");
+ return tEnv;
+ }
+
+ private void getSRange(XIndexAccess IA) {
+ int fieldsAmount = IA.getCount() + 1;
+
+ int i = -1;
+ int cnt = 0;
+
+ while ((++i) < fieldsAmount) {
+ Object field;
+
+ try {
+ field = IA.getByIndex(i);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+
+ return;
+ }
+
+ XNamed named = UnoRuntime.queryInterface(XNamed.class,
+ field);
+ String name = named.getName();
+
+ log.println("**Field : '" + name + "' ... ");
+
+ if (!name.equals("Data")) {
+
+ XPropertySet props = UnoRuntime.queryInterface(
+ XPropertySet.class, field);
+
+ try {
+ switch (cnt % 5) {
+ case 0:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.COLUMN);
+ log.println(" Column");
+
+ break;
+
+ case 1:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.ROW);
+ log.println(" Row");
+
+ break;
+
+ case 2:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.DATA);
+ log.println(" Data");
+
+ break;
+
+ case 3:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.HIDDEN);
+ log.println(" Hidden");
+
+ break;
+
+ case 4:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.PAGE);
+ log.println(" Page");
+
+ break;
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+
+ return;
+ }
+
+ if ((++cnt) > 4) {
+ break;
+ }
+ } else {
+ return;
+ }
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java b/qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java
new file mode 100644
index 000000000..65630bd00
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java
@@ -0,0 +1,200 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XCellRangeAddressable;
+import com.sun.star.sheet.XCellRangeReferrer;
+import com.sun.star.sheet.XDatabaseRanges;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XImportable;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.DatabaseRange</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::sheet::DatabaseRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::sheet::XDatabaseRange</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeReferrer</code></li>
+* </ul>
+* @see com.sun.star.sheet.DatabaseRange
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.sheet.DatabaseRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.sheet.XDatabaseRange
+* @see com.sun.star.sheet.XCellRangeReferrer
+* @see ifc.container._XNamed
+* @see ifc.sheet._DatabaseRange
+* @see ifc.beans._XPropertySet
+* @see ifc.sheet._XDatabaseRange
+* @see ifc.sheet._XCellRangeReferrer
+*/
+public class ScDatabaseRangeObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of database ranges in the document.
+ * If the database range with name <code>'dbRange'</code> exists
+ * in the collection then removes it from the collection.
+ * Creates new database range and adds it to the collection with the name
+ * <code>'dbRange'</code>.The database range that was added to the collection
+ * is the instance of the service <code>com.sun.star.sheet.DatabaseRange</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'DATAAREA'</code> for
+ * {@link ifc.sheet._XCellRangeReferrer}(of type
+ * <code>CellRangeAddress</code>)</li>
+ * <li> <code>'XCELLRANGE'</code> (of type <code>XCellRange</code>):
+ * cell range of the spreadsheet with database range</li>
+ * </ul>
+ * @see com.sun.star.sheet.DatabaseRange
+ * @see com.sun.star.table.CellRangeAddress
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ log.println("Getting test object ");
+
+ XPropertySet docProps = UnoRuntime.queryInterface(
+ XPropertySet.class, xSheetDoc);
+
+ XSpreadsheets sheets = xSheetDoc.getSheets();
+ String[] names = sheets.getElementNames();
+ XDatabaseRanges dbRanges = null;
+ XImportable xImp = null;
+
+ Object sheet = sheets.getByName(names[0]);
+ xImp = UnoRuntime.queryInterface(XImportable.class,
+ sheet);
+ dbRanges = (XDatabaseRanges) AnyConverter.toObject(
+ new Type(XDatabaseRanges.class),
+ docProps.getPropertyValue("DatabaseRanges"));
+ _doImport(xImp);
+
+ String dbName = "dbRange";
+
+ if (dbRanges.hasByName(dbName)) {
+ dbRanges.removeByName(dbName);
+ }
+
+
+ CellRangeAddress aRange = null;
+
+ XNameAccess dbrNA = UnoRuntime.queryInterface(
+ XNameAccess.class, dbRanges);
+ // we need to add it
+ dbRanges.addNewByName(dbName,new CellRangeAddress((short)0, 0, 0, 0, 5));
+
+ UnoRuntime.queryInterface(XNamed.class,
+ dbrNA.getByName(
+ dbName));
+
+ XCellRangeReferrer aReferrer = UnoRuntime.queryInterface(
+ XCellRangeReferrer.class,
+ dbrNA.getByName(dbName));
+ XCellRangeAddressable aRangeA = UnoRuntime.queryInterface(
+ XCellRangeAddressable.class,
+ aReferrer.getReferredCells());
+ aRange = aRangeA.getRangeAddress();
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),
+ dbrNA.getByName(dbName));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ // Other parameters required for interface tests
+ tEnv.addObjRelation("DATAAREA", aRange);
+
+ XCellRange xCellRange = UnoRuntime.queryInterface(
+ XCellRange.class, sheets.getByName(names[0]));
+
+ tEnv.addObjRelation("XCELLRANGE", xCellRange);
+
+ return tEnv;
+ }
+
+ public void _doImport(XImportable imp) {
+ PropertyValue[] descriptor = imp.createImportDescriptor(false);
+
+ log.print("Setting the ImportDescriptor (Bibliograpy, SQL, select Identifier from biblio) -- ");
+ descriptor[0].Value = "Bibliography";
+ descriptor[1].Value = com.sun.star.sheet.DataImportMode.SQL;
+ descriptor[2].Value = "select Identifier from biblio";
+ log.println("done");
+
+ log.print("Importing data (Bibliograpy, Table, biblio) -- ");
+ imp.doImport(descriptor);
+ log.println("done");
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java b/qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java
new file mode 100644
index 000000000..1add5a952
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java
@@ -0,0 +1,71 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+
+public class ScDocumentConfiguration extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a sheetdocument");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+ DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ xSheetDoc);
+ Object oObj = docMSF.createInstance("com.sun.star.sheet.DocumentSettings");
+
+ log.println("Implementationname: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment((XInterface) oObj);
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java
new file mode 100644
index 000000000..f91682023
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java
@@ -0,0 +1,174 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+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 com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.TextCursor</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XTextCursor</code></li>
+* <li> <code>com::sun::star::text::XWordCursor</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::text::XSentenceCursor</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::text::XParagraphCursor</code></li>
+* <li> <code>com::sun::star::document::XDocumentInsertable</code></li>
+* <li> <code>com::sun::star::util::XSortable</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+* </ul>
+* @see com.sun.star.text.TextCursor
+* @see com.sun.star.text.XTextCursor
+* @see com.sun.star.text.XWordCursor
+* @see com.sun.star.style.CharacterPropertiesComplex
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XContentEnumerationAccess
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.text.XSentenceCursor
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.text.XParagraphCursor
+* @see com.sun.star.document.XDocumentInsertable
+* @see com.sun.star.util.XSortable
+* @see com.sun.star.style.CharacterPropertiesAsian
+* @see ifc.text._XTextCursor
+* @see ifc.text._XWordCursor
+* @see ifc.style._CharacterPropertiesComplex
+* @see ifc.text._XTextRange
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XContentEnumerationAccess
+* @see ifc.beans._XPropertyState
+* @see ifc.style._CharacterProperties
+* @see ifc.text._XSentenceCursor
+* @see ifc.style._ParagraphProperties
+* @see ifc.text._XParagraphCursor
+* @see ifc.document._XDocumentInsertable
+* @see ifc.util._XSortable
+* @see ifc.style._CharacterPropertiesAsian
+*/
+public class ScHeaderFooterTextCursor extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of style families available in the document
+ * using the interface <code>XStyleFamiliesSupplier</code>.
+ * Obtains default style from the style family <code>'PageStyles'</code>.
+ * Retrieves value of the property <code>'RightPageHeaderContent'</code>.
+ * Sets some string for the text which is printed in the center part of the
+ * header or footer using the interface <code>XHeaderFooterContent</code>
+ * and sets new value of the property <code>'RightPageHeaderContent'</code>.
+ * Creates text cursor for the text which is printed in the center part of
+ * the header or footer. This text cursor is the instance of the service
+ * <code>com.sun.star.text.TextCursor</code>.
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XPropertySet PropSet;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSpreadsheetDoc );
+
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Default"));
+
+ //get the property-set
+ PropSet = UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
+
+ XHeaderFooterContent RPHC = null;
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ RPHC = (XHeaderFooterContent) AnyConverter.toObject(
+ new Type(XHeaderFooterContent.class),
+ PropSet.getPropertyValue("RightPageHeaderContent"));
+
+ XText center = RPHC.getCenterText();
+ center.setString("CENTER");
+
+ PropSet.setPropertyValue("RightPageHeaderContent",RPHC);
+
+ // create testobject here
+ oObj = center.createTextCursor();
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // add relation for XTextRange
+ tEnv.addObjRelation("XTEXT",
+ UnoRuntime.queryInterface(XText.class,center));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class ScHeaderFooterTextCursor
diff --git a/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java
new file mode 100644
index 000000000..990d6183a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java
@@ -0,0 +1,219 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+
+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.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.Text</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XTextRangeMover</code></li>
+* <li> <code>com::sun::star::text::XSimpleText</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::text::XRelativeTextContentInsert</code></li>
+* <li> <code>com::sun::star::text::XTextRangeCompare</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::text::XText</code></li>
+* </ul>
+* @see com.sun.star.text.Text
+* @see com.sun.star.text.XTextRangeMover
+* @see com.sun.star.text.XSimpleText
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.text.XRelativeTextContentInsert
+* @see com.sun.star.text.XTextRangeCompare
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.text.XText
+* @see ifc.text._XTextRangeMover
+* @see ifc.text._XSimpleText
+* @see ifc.text._XTextRange
+* @see ifc.text._XRelativeTextContentInsert
+* @see ifc.text._XTextRangeCompare
+* @see ifc.container._XElementAccess
+* @see ifc.container._XEnumerationAccess
+* @see ifc.text._XText
+*/
+public class ScHeaderFooterTextObj extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of style families available in the document
+ * using the interface <code>XStyleFamiliesSupplier</code>.
+ * Obtains default style from the style family <code>'PageStyles'</code>.
+ * Retrieves value of the property <code>'RightPageHeaderContent'</code>.
+ * Creates text cursor for the text which is printed in the center part of
+ * the header or footer using the interface <code>XHeaderFooterContent</code>.
+ * Insert some lines using the created cursor and sets new value of the
+ * property <code>'RightPageHeaderContent'</code>. The value of the property
+ * <code>'RightPageHeaderContent'</code> is the instance of the service
+ * <code>com.sun.star.text.Text</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'RangeForMove'</code> for
+ * {@link ifc.text._XTextRangeMover} (the range to be moved)</li>
+ * <li> <code>'XTextRange'</code> for
+ * {@link ifc.text._XTextRangeMover} (the range that includes moving
+ * range)</li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert}(the instance creator
+ * which can create instances of some text content service)</li>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert}(the instance creator
+ * which can create instances of <code>com.sun.star.text.Paragraph</code>
+ * service)</li>
+ * </ul>
+ * @see com.sun.star.text.Text
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XPropertySet PropSet;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSpreadsheetDoc );
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Default"));
+
+ //get the property-set
+ PropSet = UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
+
+ XHeaderFooterContent RPHC = null;
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ RPHC = (XHeaderFooterContent) AnyConverter.toObject(
+ new Type(XHeaderFooterContent.class),
+ PropSet.getPropertyValue("RightPageHeaderContent"));
+
+ XText center = RPHC.getCenterText();
+
+ XTextRange text_to_move = null;
+
+ log.println( "inserting some lines" );
+ XTextCursor oCursor = center.createTextCursor();
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ center.insertString(oCursor,"Paragraph 1", false);
+ center.insertString(oCursor,": ScHeaderFooterTextObj", false);
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertString(oCursor, "THE QUICK BROWN FOX JUMPS OVER THE" +
+ " LAZY DOG: ScHeaderFooterTextObj", false );
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ oCursor.setString("TextForMove");
+ text_to_move = oCursor;
+
+ XTextCursor oCursor1 = center.createTextCursorByRange(center.getEnd());
+ center.insertString(oCursor1,"Paragraph 2", false);
+ center.insertString(oCursor1,": ScHeaderFooterTextObj", false);
+ center.insertControlCharacter(
+ oCursor1, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertString( oCursor1, "THE QUICK BROWN FOX JUMPS OVER THE" +
+ " LAZY DOG: ScHeaderFooterTextObj", false);
+ center.insertControlCharacter(
+ oCursor1, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertControlCharacter(
+ oCursor1, ControlCharacter.LINE_BREAK, false );
+
+ PropSet.setPropertyValue("RightPageHeaderContent", RPHC);
+
+ // create testobject here
+ oObj = center;
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ DefaultDsc tDsc = new DefaultDsc(
+ "com.sun.star.text.XTextContent","com.sun.star.text.TextField.Time");
+
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation(
+ "XTEXTINFO", new InstCreator( xSpreadsheetDoc, tDsc ) );
+
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation( "PARA", new InstCreator(xSpreadsheetDoc, pDsc) );
+
+ log.println("adding TextRange for XTextRangeMover" );
+ tEnv.addObjRelation("RangeForMove", text_to_move);
+ tEnv.addObjRelation("XTextRange", RPHC.getCenterText());
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+} // finish class ScHeaderFooterTextObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScModelObj.java b/qadevOOo/tests/java/mod/_sc/ScModelObj.java
new file mode 100644
index 000000000..e4a89b971
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScModelObj.java
@@ -0,0 +1,209 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XSelectionSupplier;
+import ifc.view._XPrintJobBroadcaster;
+import java.io.File;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SpreadsheetDocument</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sheet::XSpreadsheetDocument</code></li>
+* <li> <code>com::sun::star::sheet::SpreadsheetDocumentSettings</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::frame::XModel</code></li>
+* <li> <code>com::sun::star::sheet::SpreadsheetDocument</code></li>
+* <li> <code>com::sun::star::util::XNumberFormatsSupplier</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.sheet.SpreadsheetDocument
+* @see com.sun.star.sheet.XSpreadsheetDocument
+* @see com.sun.star.sheet.SpreadsheetDocumentSettings
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.frame.XModel
+* @see com.sun.star.sheet.SpreadsheetDocument
+* @see com.sun.star.util.XNumberFormatsSupplier
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.sheet._XSpreadsheetDocument
+* @see ifc.sheet._SpreadsheetDocumentSettings
+* @see ifc.lang._XComponent
+* @see ifc.frame._XModel
+* @see ifc.sheet._SpreadsheetDocument
+* @see ifc.util._XNumberFormatsSupplier
+* @see ifc.beans._XPropertySet
+*/
+public class ScModelObj extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc;
+ private XSpreadsheetDocument xSecondsheetDoc;
+
+ /**
+ * Disposes Spreadsheet documents.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+
+ oComp = UnoRuntime.queryInterface(XComponent.class,
+ xSecondsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Disposes the spreadsheet documents if they were created already.
+ * Creates two spreadsheet documents. Retrieves the current controller for
+ * each of them. Obtains the collection of spreadsheets, takes one of them
+ * and takes some cell from the spreadsheet. The created documents are the instances
+ * of the service <code>com.sun.star.sheet.SpreadsheetDocument</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SELSUPP'</code> for
+ * {@link ifc.frame._XModel}( the interface
+ * <code>XSelectionSupplier</code> that was queried from the current
+ * controller of the spreadsheet)</li>
+ * <li> <code>'TOSELECT'</code> for
+ * {@link ifc.frame._XModel}( the cell that was retrieved from the
+ * spreadsheet)</li>
+ * <li> <code>'CONT2'</code> for
+ * {@link ifc.frame._XModel}( the current controller of the second
+ * spreadsheet)</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ // creation of the testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ if (xSpreadsheetDoc != null) {
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ if (xSecondsheetDoc != null) {
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSecondsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ log.println("creating two spreadsheet documents");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ xSecondsheetDoc = SOF.createCalcDoc(null);
+
+ XModel model1 = UnoRuntime.queryInterface(XModel.class,
+ xSpreadsheetDoc);
+ XModel model2 = UnoRuntime.queryInterface(XModel.class,
+ xSecondsheetDoc);
+ XInterface oObj = model1;
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XController cont1 = model1.getCurrentController();
+ XController cont2 = model2.getCurrentController();
+ cont1.getFrame().setName("cont1");
+ cont2.getFrame().setName("cont2");
+
+ XSelectionSupplier sel = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, cont1);
+
+ XCell toSel = null;
+ XCell[] xCalculatableCells = null;
+ log.println("Getting spreadsheet");
+
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets();
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(
+ XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet");
+ toSel = oSheet.getCellByPosition(2, 3);
+ // create a simple formula for XCalculatable
+ oSheet.getCellByPosition(4, 5).setValue(15);
+ oSheet.getCellByPosition(5, 5).setValue(10);
+ oSheet.getCellByPosition(6, 5).setFormula("= E6 * F6");
+ xCalculatableCells = new XCell[]{
+ oSheet.getCellByPosition(4, 5),
+ oSheet.getCellByPosition(5, 5),
+ oSheet.getCellByPosition(6, 5)
+ };
+
+ // Make sure there are at least two sheets:
+ oSheets.insertNewByName("Some Sheet", (short) 1);
+
+ log.println("Adding SelectionSupplier and Shape to select for XModel");
+ tEnv.addObjRelation("SELSUPP", sel);
+ tEnv.addObjRelation("TOSELECT", toSel);
+
+ log.println("Adding cells for XCalculatable");
+ tEnv.addObjRelation("XCalculatable.Cells", xCalculatableCells);
+ log.println("adding Controller as ObjRelation for XModel");
+ tEnv.addObjRelation("CONT2", cont2);
+
+ // create object relation for XPrintJobBroadcaster
+ String fileName = utils.getOfficeTempDirSys(Param.getMSF())+"printfile.prt" ;
+ File f = new File(fileName);
+ if (f.exists()) {
+ boolean bDeleteOk = f.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+ _XPrintJobBroadcaster.MyPrintJobListener listener = new _XPrintJobBroadcaster.MyPrintJobListener(oObj, fileName);
+ tEnv.addObjRelation("XPrintJobBroadcaster.XPrintJobListener", listener);
+
+ return tEnv;
+ }
+
+} // finish class ScModelObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScShapeObj.java b/qadevOOo/tests/java/mod/_sc/ScShapeObj.java
new file mode 100644
index 000000000..335f2f848
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScShapeObj.java
@@ -0,0 +1,101 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScShapeObj extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a sheetdoc" );
+ xSheetDoc = UnoRuntime.queryInterface(XComponent.class, SOF.createCalcDoc(null));
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.drawing.EllipseShape</code> as tested component
+ * and adds it to the document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Style1', 'Style2'</code> for
+ * {@link ifc.drawing._Shape} :
+ * two values of 'Style' property. The first is taken
+ * from the shape tested, the second from another
+ * shape added to the draw page. </li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} :
+ * creator which can create instances of
+ * <code>com.sun.star.text.TextField.URL</code>
+ * service. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xSheetDoc,5000, 3500, 7500, 5000,"Rectangle");
+ DrawTools.getShapes(DrawTools.getDrawPage(xSheetDoc,0)).add(oShape);
+ oObj = oShape ;
+
+ for (int i=0; i < 10; i++) {
+ DrawTools.getShapes(DrawTools.getDrawPage(xSheetDoc,0)).add(
+ SOF.createShape(xSheetDoc,
+ 5000, 3500, 7510 + 10 * i, 5010 + 10 * i, "Rectangle"));
+ }
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oShape );
+
+ log.println("Implementation name: "+util.utils.getImplName(oObj));
+ tEnv.addObjRelation("DOCUMENT",xSheetDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ScShapeObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java b/qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java
new file mode 100644
index 000000000..5e30fa9e5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java
@@ -0,0 +1,143 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetLinkable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetLink</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::util::XRefreshable</code></li>
+* <li> <code>com::sun::star::sheet::SheetLink</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> ScSheetLinksObj.sdc </b> : for creating link </li>
+* </ul> <p>
+* @see com.sun.star.sheet.SheetLink
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.util.XRefreshable
+* @see com.sun.star.sheet.SheetLink
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.container._XNamed
+* @see ifc.util._XRefreshable
+* @see ifc.sheet._SheetLink
+* @see ifc.beans._XPropertySet
+*/
+public class ScSheetLinkObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Links the sheet to another sheet in another
+ * document using the interface <code>XSheetLinkable</code>. Obtains the
+ * value of the property <code>'SheetLinks'</code> that is the collection of
+ * sheet links. Retrieves from the collection one of the sheet link that
+ * is the instance of the service <code>com.sun.star.sheet.SheetLink</code>.
+ * @see com.sun.star.sheet.SheetLink
+ * @see com.sun.star.sheet.XSheetLinkable
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+ XSpreadsheet oSheet = null;
+
+ log.println("Getting test object ") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ XSheetLinkable SL = UnoRuntime.queryInterface(XSheetLinkable.class, oSheet);
+
+ // creating link. Doesn't matter that it refers to unexistent object.
+ // this is for proper work of XAccess tests.
+ String sURL = utils.getFullTestDocName("ScSheetLinksObj.ods");
+ SL.link(sURL, "Sheet1", "", "", com.sun.star.sheet.SheetLinkMode.VALUE);
+
+ // Getting links.
+ XPropertySet docProps = UnoRuntime.queryInterface(XPropertySet.class, xSheetDoc);
+ Object oLinks = docProps.getPropertyValue("SheetLinks");
+
+ XNameAccess links = UnoRuntime.queryInterface(XNameAccess.class, oLinks);
+
+ String[] names = links.getElementNames();
+
+ oObj = (XInterface)AnyConverter.toObject(
+ new Type(XInterface.class),links.getByName(names[0]));
+
+ log.println("Creating object - " +
+ ((oObj == null) ? "FAILED" : "OK"));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScStyleObj.java b/qadevOOo/tests/java/mod/_sc/ScStyleObj.java
new file mode 100644
index 000000000..8705c6d7d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScStyleObj.java
@@ -0,0 +1,193 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.style.Style</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::style::Style</code></li>
+* <li> <code>com::sun::star::style::XStyle</code></li>
+* </ul>
+* @see com.sun.star.style.Style
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.style.Style
+* @see com.sun.star.style.XStyle
+* @see ifc.container._XNamed
+* @see ifc.style._Style
+* @see ifc.style._XStyle
+*/
+public class ScStyleObj extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of style families from the document
+ * using the interface <code>XStyleFamiliesSupplier</code>.
+ * Obtains style family with index 0 from the collection and obtains
+ * style with index 0 from this style family. Creates the instance of the
+ * service <code>com.sun.star.style.CellStyle</code>. Inserts the created
+ * style to the obtained style family. Retrieves a collection of spreadsheets
+ * from the document and takes one of them. Gets a cell from the spreadsheet
+ * and sets the value of property <code>'CellStyle'</code> to the created
+ * style. The created style is the instance of the service
+ * <code>com.sun.star.style.Style</code> also.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PoolStyle'</code> for
+ * {@link ifc.style._XStyle}(the style with index 0 that was obtained
+ * from the collection)</li>
+ * </ul>
+ * @see com.sun.star.style.CellStyle
+ * @see com.sun.star.style.Style
+ * @see com.sun.star.style.XStyleFamiliesSupplier
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+
+ // creation of the testobject here
+ // first we write what we are intend to do to log file
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oStyleFamiliesSupplier = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class, xSpreadsheetDoc);
+ XNameAccess oStyleFamilies = oStyleFamiliesSupplier.getStyleFamilies();
+ XIndexAccess oStyleFamiliesIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, oStyleFamilies);
+ XNameAccess oStyleFamilyNameAccess = null;
+ XStyle oStyle = null;
+ oStyleFamilyNameAccess = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),
+ oStyleFamiliesIndexAccess.getByIndex(0));
+
+ XIndexAccess oStyleFamilyIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class,
+ oStyleFamilyNameAccess);
+ oStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oStyleFamilyIndexAccess.getByIndex(0));
+
+ log.println("Creating a user-defined style");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, xSpreadsheetDoc);
+
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.CellStyle");
+ XStyle oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+ XNameContainer oStyleFamilyNameContainer = UnoRuntime.
+ queryInterface(XNameContainer.class, oStyleFamilyNameAccess);
+
+ if (oStyleFamilyNameContainer.hasByName("My Style")) {
+ oStyleFamilyNameContainer.removeByName("My Style");
+ }
+
+ oStyleFamilyNameContainer.insertByName("My Style", oMyStyle);
+
+
+ //using the style
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+
+ XCell aCell = null;
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ log.println("Getting a cell from sheet") ;
+ aCell = oSheet.getCellByPosition(2,3) ;
+
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, aCell);
+
+ xProp.setPropertyValue("CellStyle", oMyStyle.getName());
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment(oMyStyle);
+
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ tEnv.addObjRelation("PropertyNames", getPropertyNames
+ (UnoRuntime.queryInterface
+ (XPropertySet.class, oMyStyle)));
+
+ return tEnv;
+ }
+
+ public String[] getPropertyNames(XPropertySet props) {
+ Property[] the_props = props.getPropertySetInfo().getProperties();
+ ArrayList<String> names = new ArrayList<String>() ;
+
+ for (int i=0;i<the_props.length;i++) {
+ boolean isWritable =
+ ((the_props[i].Attributes & PropertyAttribute.READONLY) == 0);
+ if (isWritable) {
+ names.add(the_props[i].Name);
+ }
+ }
+ return names.toArray(new String[names.size()]) ;
+ }
+} // finish class ScStyleObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScTabViewObj.java b/qadevOOo/tests/java/mod/_sc/ScTabViewObj.java
new file mode 100644
index 000000000..a00b2724d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScTabViewObj.java
@@ -0,0 +1,233 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.form.XForm;
+import com.sun.star.lang.WrappedTargetException;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XCellRangeAddressable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.sheet.SpreadsheetView</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::sheet::XViewSplitable</code></li>
+ * <li> <code>com::sun::star::sheet::XViewFreezable</code></li>
+ * <li> <code>com::sun::star::sheet::SpreadsheetViewSettings</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::sheet::XSpreadsheetView</code></li>
+ * <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+ * </ul>
+ * @see com.sun.star.sheet.XViewSplitable
+ * @see com.sun.star.sheet.XViewFreezable
+ * @see com.sun.star.sheet.SpreadsheetViewSettings
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.sheet.XSpreadsheetView
+ * @see com.sun.star.view.XSelectionSupplier
+ * @see ifc.sheet._XViewSplitable
+ * @see ifc.sheet._XViewFreezable
+ * @see ifc.sheet._SpreadsheetViewSettings
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.sheet._XSpreadsheetView
+ * @see ifc.view._XSelectionSupplier
+ */
+public class ScTabViewObj extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc;
+ private XSpreadsheetDocument xSpreadsheetDoc2;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ public void initialize( TestParameters Param, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println("creating two spreadsheet documents");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xSpreadsheetDoc2 = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ XComponent oComp2 = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc2) ;
+ util.DesktopTools.closeDoc(oComp2);
+ }
+
+ /*
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the current controller of the spreadsheet document using the
+ * interface <code>XModel</code>. The controller is the instance of the
+ * service <code>com.sun.star.sheet.SpreadsheetView</code>. Retrieves
+ * a collection of spreadsheets from the document and takes one of them.
+ * Fills two cells in the spreadsheet.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Sheet'</code> for
+ * {@link ifc.sheet._XSpreadsheetView}(the retrieved spreadsheet)</li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.sheet.SpreadsheetView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XDrawPage oDrawPage = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XModel aSecondModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc2);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ log.println("getting sheets");
+ XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets();
+
+ log.println("getting a sheet");
+ XSpreadsheet oSheet = null;
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class), oIndexAccess.getByIndex(1));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XDispatchProvider.URL", ".uno:Copy") ;
+
+ log.println("adding 'Sheet' as ObjRelation");
+ tEnv.addObjRelation("Sheet", oSheet);
+ tEnv.addObjRelation("Frame",aModel.getCurrentController().getFrame());
+ tEnv.addObjRelation("SecondModel",aSecondModel);
+ tEnv.addObjRelation("FirstModel",aModel);
+
+ //Relation for XControlAccess
+ tEnv.addObjRelation("DOCUMENT", UnoRuntime.queryInterface(XComponent.class,xSpreadsheetDoc));
+ tEnv.addObjRelation("XControlAccess.isSheet", Boolean.TRUE);
+ //Relations for XSelectionSupplier
+ XCell cell_1 = null;
+ XCell cell_2 = null;
+ Object cellRange = null;
+ cellRange = oSheet.getCellRangeByPosition(0, 0, 3, 3);
+ cell_1 = oSheet.getCellByPosition(5,5);
+ cell_2 = oSheet.getCellByPosition(7,7);
+ cell_2.setValue(17.5);
+ cell_1.setValue(5.5);
+
+ Object[] selections = {oSheet, cellRange, cell_1, cell_2};
+ tEnv.addObjRelation("Selections", selections);
+
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XCellRangeAddressable adr1 = UnoRuntime.queryInterface(XCellRangeAddressable.class, o1);
+ XCellRangeAddressable adr2 = UnoRuntime.queryInterface(XCellRangeAddressable.class, o2);
+ if (adr1 == null || adr2 == null) return -1;
+ CellRangeAddress range1 = adr1.getRangeAddress();
+ CellRangeAddress range2 = adr2.getRangeAddress();
+ return ValueComparer.equalValue(range1, range2) ? 0 : 1 ;
+ }});
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ // XForm for com.sun.star.view.XFormLayerAccess
+
+ XForm myForm = null;
+ String kindOfControl="CommandButton";
+ XShape aShape = null;
+ log.println("adding control shape '" + kindOfControl + "'");
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc) ;
+
+ aShape = FormTools.createControlShape(oComp, 3000, 4500, 15000, 10000, kindOfControl);
+
+ log.println("adding relation for com.sun.star.view.XFormLayerAccess: XForm");
+ try {
+ log.println( "getting Drawpages" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class,xSpreadsheetDoc);
+ XDrawPages oDP = oDPS.getDrawPages();
+ oDP.insertNewByIndex(1);
+ oDP.insertNewByIndex(2);
+ oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDP.getByIndex(0));
+ if (oDrawPage == null)
+ log.println("ERROR: could not get DrawPage: null");
+
+ oDrawPage.add(aShape);
+ log.println("getting XForm");
+ XNameContainer xForm = FormTools.getForms(oDrawPage);
+ try {
+ myForm = (XForm) AnyConverter.toObject(new Type(XForm.class),xForm.getByName("Standard"));
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not XForm 'Standard': " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not XForm 'Standard': " + ex.toString());
+ } catch (NoSuchElementException ex) {
+ log.println("ERROR: could not XForm 'Standard': " + ex.toString());
+ }
+ if (myForm == null)
+ log.println("ERROR: could not get XForm: null");
+ tEnv.addObjRelation("XFormLayerAccess.XForm", myForm);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ }
+ return tEnv;
+ }
+
+} // finish class ScTabViewObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java b/qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java
new file mode 100644
index 000000000..436901258
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java
@@ -0,0 +1,384 @@
+/*
+ * 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 mod._sc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.sheet.XScenariosSupplier;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+import ifc.sheet._XCellRangesQuery;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.Spreadsheet</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::table::XTableChartsSupplier</code></li>
+* <li> <code>com::sun::star::sheet::XSpreadsheet</code></li>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetAnnotationsSupplier</code></li>
+* <li> <code>com::sun::star::table::XCellRange</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeAddressable</code></li>
+* <li> <code>com::sun::star::sheet::XDataPilotTablesSupplier</code></li>
+* <li> <code>com::sun::star::sheet::Spreadsheet</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeMovement</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::sheet::XScenariosSupplier</code></li>
+* <li> <code>com::sun::star::sheet::XSheetPageBreak</code></li>
+* <li> <code>com::sun::star::sheet::XArrayFormulaRange</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRange</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::sheet::SheetCellRange</code></li>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::util::XMergeable</code></li>
+* <li> <code>com::sun::star::table::XColumnRowRange</code></li>
+* </ul>
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.table.XTableChartsSupplier
+* @see com.sun.star.sheet.XSpreadsheet
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.sheet.XSheetAnnotationsSupplier
+* @see com.sun.star.table.XCellRange
+* @see com.sun.star.sheet.XCellRangeAddressable
+* @see com.sun.star.sheet.XDataPilotTablesSupplier
+* @see com.sun.star.sheet.Spreadsheet
+* @see com.sun.star.sheet.XCellRangeMovement
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.sheet.XScenariosSupplier
+* @see com.sun.star.sheet.XSheetPageBreak
+* @see com.sun.star.sheet.XArrayFormulaRange
+* @see com.sun.star.sheet.XSheetCellRange
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.sheet.SheetCellRange
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.util.XMergeable
+* @see com.sun.star.table.XColumnRowRange
+* @see ifc.style._ParagraphProperties
+* @see ifc.table._XTableChartsSupplier
+* @see ifc.sheet._XSpreadsheet
+* @see ifc.table._CellProperties
+* @see ifc.sheet._XSheetAnnotationsSupplier
+* @see ifc.table._XCellRange
+* @see ifc.sheet._XCellRangeAddressable
+* @see ifc.sheet._XDataPilotTablesSupplier
+* @see ifc.sheet._Spreadsheet
+* @see ifc.sheet._XCellRangeMovement
+* @see ifc.style._CharacterProperties
+* @see ifc.sheet._XSheetOperation
+* @see ifc.sheet._XScenariosSupplier
+* @see ifc.sheet._XSheetPageBreak
+* @see ifc.sheet._XArrayFormulaRange
+* @see ifc.sheet._XSheetCellRange
+* @see ifc.container._XNamed
+* @see ifc.sheet._SheetCellRange
+* @see ifc.chart._XChartData
+* @see ifc.beans._XPropertySet
+* @see ifc.util._XMergeable
+* @see ifc.table._XColumnRowRange
+*/
+public class ScTableSheetObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a sheetdocument");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ try {
+ XCloseable oCloser = UnoRuntime.queryInterface(
+ XCloseable.class, xSheetDoc);
+ oCloser.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Document already disposed");
+ } catch (NullPointerException e) {
+ log.println("Couldn't get XCloseable");
+ }
+
+ util.utils.pause(500);
+
+ log.println("... Done");
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from the document and takes one of
+ * them. Fills some cell in the spreadsheet. The retrieved spreadsheet is the
+ * instance of the service <code>com.sun.star.sheet.Spreadsheet</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'noArray'</code> for
+ * {@link ifc.sheet._XArrayFormulaRange}(to avoid the test of
+ * the interface <code>XArrayFormulaRange</code>)</li>
+ * </ul>
+ * @see com.sun.star.sheet.XArrayFormulaRange
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ log.println("getting sheets");
+
+ XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
+
+ log.println("getting a sheet");
+
+ XSpreadsheet oSheet = null;
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(
+ XIndexAccess.class, xSpreadsheets);
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexAccess.getByIndex(0));
+
+ log.println("filling some cells");
+
+ oSheet.getCellByPosition(5, 5).setValue(15);
+ oSheet.getCellByPosition(1, 4).setValue(10);
+ oSheet.getCellByPosition(2, 0).setValue(-5.15);
+ oSheet.getCellByPosition(8, 8).setFormula("= B5 + C1");
+ // fill cells for XSheetOtline::autooutline
+ oSheet.getCellByPosition(6, 6).setValue(3);
+ oSheet.getCellByPosition(7, 6).setValue(3);
+ oSheet.getCellByPosition(8, 6).setFormula("= SUM(G7:H7)");
+ oSheet.getCellByPosition(9, 6).setFormula("= G7*I7");
+
+ oObj = UnoRuntime.queryInterface(XInterface.class, oSheet);
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // set the address ranges of the cells (see values set above): for e.g. XSheetOutline test
+ tEnv.addObjRelation("CellRangeAddress",
+ new CellRangeAddress((short)0, 6, 6, 8, 8));
+ tEnv.addObjRelation("CellRangeSubAddress",
+ new CellRangeAddress((short)0, 6, 6, 7, 8));
+ // pick a cell with a formula for XSheetAuditing, a dependent cell and a precedent cell
+ tEnv.addObjRelation("XSheetAuditing.CellAddress", new CellAddress((short)0, 8, 6));
+ tEnv.addObjRelation("XSheetAuditing.PrecedentCellAddress", new CellAddress((short)0, 7, 6));
+ tEnv.addObjRelation("XSheetAuditing.DependentCellAddress", new CellAddress((short)0, 9, 6));
+
+ // add an existing sheet for linking
+ tEnv.addObjRelation("XSheetLinkable.LinkSheet", "ScSheetLinksObj.ods");
+
+ //adding Scenario and with that a ScenarioSheet-Relation for Scenario and XScenarioEnhanced
+ XScenariosSupplier scene = UnoRuntime.queryInterface(
+ XScenariosSupplier.class,
+ tEnv.getTestObject());
+ scene.getScenarios()
+ .addNewByName("Scenario",
+ new CellRangeAddress[] {
+ new CellRangeAddress((short) 0, 0, 0, 10, 10)
+ }, "Comment");
+
+ XSpreadsheet sSheet = null;
+
+ try {
+ sSheet = UnoRuntime.queryInterface(
+ XSpreadsheet.class,
+ xSpreadsheets.getByName("Scenario"));
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("Couldn't get Scenario");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't get Scenario");
+ }
+
+ tEnv.addObjRelation("ScenarioSheet", sSheet);
+
+ log.println("adding ObjRelation 'noArray' to avoid the test" +
+ " 'XArrayFormulaRange'");
+ tEnv.addObjRelation("noArray", "ScTableSheetObj");
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet", PropSet);
+ tEnv.addObjRelation("SHEET", oSheet);
+
+ // add expected results for the XCellRangesQuery interface test
+ String[] expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B5;Sheet1.C1";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B5;Sheet1.C1;Sheet1.F6";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B6 ... Sheet1.C2 ... Sheet1.D1 ... Sheet1.F1 ... Sheet1.F7 ... Sheet1.G1";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "Sheet1.I7:J7;Sheet1.I9";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A5;Sheet1.C1";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS",
+ expectedResults);
+
+ // for XFormulaQuery interface test
+ try {
+ tEnv.addObjRelation("MAKEENTRYINCELL",
+ oSheet.getCellByPosition(15, 15));
+ tEnv.addObjRelation("RANGEINDICES", new int[] { 0, 0 });
+ tEnv.addObjRelation("EXPECTEDDEPENDENTVALUES",
+ new int[] { 0, 255, 0, 65535 });
+ tEnv.addObjRelation("EXPECTEDPRECEDENTVALUES",
+ new int[] { 0, 255, 0, 65535 });
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println(
+ "Cannot add the necessary object relation for XFormulaQuery test.");
+ }
+
+ // XSearchable interface test
+ try {
+ tEnv.addObjRelation("XSearchable.MAKEENTRYINCELL",
+ new XCell[] {
+ oSheet.getCellByPosition(15, 15),
+ oSheet.getCellByPosition(15, 16)
+ });
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ log.println(
+ "Cannot make required object relation 'XSearchable.MAKEENTRYINCELL'.");
+ }
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XCellRange oTable = oSheet;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ try {
+ oTable.getCellByPosition(0, 0).setValue(4);
+ oTable.getCellByPosition(0, 1).setFormula("b");
+ oTable.getCellByPosition(0, 2).setValue(3);
+ oTable.getCellByPosition(0, 3).setValue(23);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[4];
+
+ for (int i = 0; i < 4; i++) {
+ try {
+ XCell cell = oTable.getCellByPosition(0, i);
+ value[i] = cell.getFormula();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ out.println("Sorting ascending");
+
+ String[] rightVal = { "3", "4", "23", "b" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/XMLContentExporter.java b/qadevOOo/tests/java/mod/_sc/XMLContentExporter.java
new file mode 100644
index 000000000..098866ff0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLContentExporter.java
@@ -0,0 +1,190 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLContentExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLContentExporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLContentExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. A cell in the sheet is set to some value. This made
+ * for checking if this value is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String CELL_TEXT = "XMLContentExporter";
+
+ ContentFilterChecker Filter = new ContentFilterChecker(log);
+
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLContentExporter",
+ new Object[] {arg} );
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ // Setting some string to a cell
+ XSpreadsheetDocument xSpreadsheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+ XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets();
+ XIndexAccess xSheetsIndexArray = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+ XSpreadsheet xSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),xSheetsIndexArray.getByIndex(0));
+ XCell xCell = xSheet.getCellByPosition(0, 0);
+ xCell.setFormula(CELL_TEXT);
+
+ log.println("fill sheet 1 with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc, 1, 1, 1, 5, 5);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag("office:document-content");
+ Filter.addTagEnclosed("office:body", "office:document-content");
+ Filter.addTagEnclosed("office:script", "office:document-content");
+ Filter.addTagEnclosed("table:table", "office:body");
+ Filter.addTagEnclosed("table:table-column", "table:table");
+ Filter.addTagEnclosed("table:table-row", "table:table");
+ Filter.addTagEnclosed("table:table-cell", "table:table-row");
+ Filter.addTagEnclosed("text:p", "table:table-cell");
+ Filter.addCharactersEnclosed(CELL_TEXT, "text:p");
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter);
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class ContentFilterChecker extends XMLTools.XMLTagsChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private ContentFilterChecker(PrintWriter log) {
+ super(log) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return checkTags();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLContentImporter.java b/qadevOOo/tests/java/mod/_sc/XMLContentImporter.java
new file mode 100644
index 000000000..5f3d65547
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLContentImporter.java
@@ -0,0 +1,180 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLContentImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLContentImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLContentImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only content tags including table
+ * with test table name.
+ * After import table name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLContentImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp);
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relations
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ final String impValue = "XMLContentImporter_test" ;
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-content",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table",
+ "office:class", "CDATA", "spreadsheet"
+ },
+ {"start", "office:body"},
+ {"start", "table:table",
+ "table:name", "CDATA", impValue},
+ {"end", "table:table"},
+ {"end", "office:body"},
+ {"end", "office:document-content"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ //save to log content before import
+ final PrintWriter fLog = log;
+ final XSpreadsheets xSheets = xSheetDoc.getSheets();
+
+ log.println("Sheets before importing :") ;
+ String[] names = xSheets.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ fLog.println("Sheet names :") ;
+ String[] snames = xSheets.getElementNames() ;
+ for (int i = 0; i < snames.length; i++) {
+ fLog.println(" " + snames[i]) ;
+ }
+ return xSheets.hasByName(impValue) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLExporter.java b/qadevOOo/tests/java/mod/_sc/XMLExporter.java
new file mode 100644
index 000000000..c9edb37ab
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLExporter.java
@@ -0,0 +1,199 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. Checking whether tags for table corresponding to some sheet
+ * is exported.<p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker Filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+ final String SHEET_NAME = "XMLExporter_SheetTestName";
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLExporter", new Object[] {arg} );
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ //set name of sheet
+ XSpreadsheetDocument xSpreadsheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+ XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets();
+ XIndexAccess xSheetsIndexArray = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+ XSpreadsheet xSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),xSheetsIndexArray.getByIndex(0));
+ XNamed xSheetNamed = UnoRuntime.queryInterface(XNamed.class, xSheet);
+ xSheetNamed.setName(SHEET_NAME);
+
+ log.println("fill sheet with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheet, 3, 3, 50, 50);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag( new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:meta"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:settings"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:script"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:styles"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:body"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("table:table"),
+ new XMLTools.Tag("office:body") );
+ Filter.addTag(
+ new XMLTools.Tag("table:table", "table:name", SHEET_NAME) );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLImporter.java b/qadevOOo/tests/java/mod/_sc/XMLImporter.java
new file mode 100644
index 000000000..ff5e94063
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLImporter.java
@@ -0,0 +1,176 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ XSpreadsheetDocument xSpreadsheetDoc = SOF.createCalcDoc( null );
+ xSheetDoc = UnoRuntime.queryInterface
+ (XComponent.class, xSpreadsheetDoc);
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported tags contain new value for table name.
+ * After import table name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impValue = "XMLImporter_test" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance("com.sun.star.comp.Calc.XMLImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(xSheetDoc);
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xSheetDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table",
+ "office:class", "CDATA", "spreadsheet"
+ },
+ {"start", "office:body"},
+ {"start", "table:table",
+ "table:name", "CDATA", impValue},
+ {"end", "table:table"},
+ {"end", "office:body"},
+ {"end", "office:document"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter fLog = log ;
+ XSpreadsheetDocument xSpreadsheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+ final XSpreadsheets sheets = xSpreadsheetDoc.getSheets() ;
+ log.println("Sheets before importing :") ;
+ String[] names = sheets.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ fLog.println("Sheet names :") ;
+ String[] snames = sheets.getElementNames() ;
+ for (int i = 0; i < snames.length; i++) {
+ fLog.println(" " + snames[i]) ;
+ }
+
+ return sheets.hasByName(impValue) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java b/qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java
new file mode 100644
index 000000000..0f49662c1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java
@@ -0,0 +1,181 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLMetaExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLMetaExporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLMetaExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. A meta property 'Title' is set to some value. This made
+ * for checking if this value is successfully exported within
+ * the document meta information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ // Checking tags existence and changed property value
+ filter.addTag(new XMLTools.Tag ("office:document-meta"));
+ filter.addTag(new XMLTools.Tag ("office:meta"));
+ filter.addCharactersEnclosed("TestDocument",
+ new XMLTools.Tag ("dc:title"));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLMetaExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ // Obtaining and changing property values
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xSheetDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ xDocProps.setTitle("TestDocument");
+
+ log.println("fill sheet 1 with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc,1, 3, 3, 50, 50);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java b/qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java
new file mode 100644
index 000000000..b7e26d0bb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java
@@ -0,0 +1,171 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLMetaImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLMetaImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLMetaImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only meta tags including title tag
+ * with test title name.
+ * After import title name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impTitle = "XMLMetaImporter" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLMetaImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp) ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-meta" ,
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:meta", "CDATA", "http://openoffice.org/2000/meta",
+ "xmlns:dc", "CDATA", "http://purl.org/dc/elements/1.1/"},
+ {"start", "office:meta"} ,
+ {"start", "dc:title"},
+ {"chars", impTitle},
+ {"end", "dc:title"},
+ {"end", "office:meta"},
+ {"end", "office:document-meta"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xSheetDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String title = xDocProps.getTitle();
+ logF.println("Title returned = '" + title + "'") ;
+ return impTitle.equals(title) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java b/qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java
new file mode 100644
index 000000000..9386a233d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java
@@ -0,0 +1,182 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLSettingsExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLSettingsExporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLSettingsExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. Sets settings' property 'ShowGrid' to 'false', then checks
+ * it in the exported xml document.<p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ SettingsFilterChecker filter = new SettingsFilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), filter);
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLSettingsExporter",
+ new Object[] {arg} );
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ //set some settings
+ XModel xSheetModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+ XController xController = xSheetModel.getCurrentController();
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+ xPropSet.setPropertyValue("ShowGrid", "false");
+
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc, 0, 3, 3, 50, 50);
+
+ //Create and prepare filter
+ // adding tags which must be contained in XML output
+ filter.addTag(new XMLTools.Tag("office:document-settings") );
+ filter.addTagEnclosed(
+ new XMLTools.Tag("office:settings"),
+ new XMLTools.Tag("office:document-settings") );
+ filter.addCharactersEnclosed(
+ "false",
+ new XMLTools.Tag("config:config-item", "config:name", "ShowGrid") );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class SettingsFilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private SettingsFilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java b/qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java
new file mode 100644
index 000000000..fc83d3e3b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java
@@ -0,0 +1,199 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XImporter;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLSettingsImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLSettingsImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLSettingsImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only settings tags including tag
+ * with new number of iteration steps.
+ * After import 'IterationCount' property getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ final XPropertySet xPropSet ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLSettingsImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp) ;
+
+ XModel xSheetModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+ XController xController = xSheetModel.getCurrentController();
+ xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-settings",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink",
+ "xmlns:config", "CDATA", "http://openoffice.org/2001/config"},
+ {"start", "office:settings"},
+ {"start", "config:config-item-set",
+ "config:name", "CDATA", "view-settings"},
+ {"start", "config:config-item-map-indexed",
+ "config:name", "CDATA", "Views"},
+ {"start", "config:config-item-map-entry"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ShowGrid",
+ "config:type", "CDATA", "boolean"},
+ {"chars", "false"},
+ {"end", "config:config-item"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ZoomType",
+ "config:type", "CDATA", "short"},
+ {"chars", "0"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ZoomValue",
+ "config:type", "CDATA", "int"},
+ {"chars", "124"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item-map-entry"},
+ {"end", "config:config-item-map-indexed"},
+ {"end", "config:config-item-set"},
+ {"end", "office:settings"},
+ {"end", "office:document-settings"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ Object gVal = xPropSet.getPropertyValue("ShowGrid") ;
+ logF.println("ShowGrid = " + gVal ) ;
+ return "false".equals(gVal) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java
new file mode 100644
index 000000000..36b1bc7e7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java
@@ -0,0 +1,185 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLStylesExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLStylesExporter extends TestCase {
+ static XComponent xSheetDoc;
+ protected int counter = 0;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLStylesExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. New style 'NewStyle' added to style family "Cell Styles".
+ * This made for checking if this style is successfully exported within
+ * the document styles information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ String newName = "NewStyle" + counter++;
+ // Adding tags for checking existence of head tag and property value
+ filter.addTag(new XMLTools.Tag("office:document-styles"));
+ filter.addTag(new XMLTools.Tag("style:style","style:name", newName));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLStylesExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ // Obtaining and changing property values
+ XStyleFamiliesSupplier styleSup = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class, xSheetDoc);
+ XNameAccess StyleFamilies = styleSup.getStyleFamilies();
+ String[] styleFamiliesNames = StyleFamilies.getElementNames();
+ XNameContainer StyleFamilyName = (XNameContainer)
+ AnyConverter.toObject(new Type(XNameContainer.class),
+ StyleFamilies.getByName(styleFamiliesNames[0]));
+ Object SC = SOF.createInstance(
+ xSheetDoc, "com.sun.star.style.CellStyle");
+ XStyle StyleCell = UnoRuntime.queryInterface(XStyle.class,SC);
+ StyleFamilyName.insertByName(newName, StyleCell);
+
+ log.println("fill sheet 1 with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc, 0, 3, 3, 50, 100);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java
new file mode 100644
index 000000000..49cb036de
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java
@@ -0,0 +1,196 @@
+/*
+ * 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 mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLStylesImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLStylesImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLStylesImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only style tags including tag
+ * with new style name.
+ * After import style names getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLStylesImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp) ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ final String impStyleName = "XMLStylesImporter" ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-styles",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:style", "CDATA", "http://openoffice.org/2000/style",
+ "xmlns:fo", "CDATA", "http://www.w3.org/1999/XSL/Format",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table"},
+ {"start", "office:styles"},
+ {"start", "style:style",
+ "style:name", "CDATA", impStyleName,
+ "style:family", "CDATA", "table-cell",
+ "style:parent-style-name", "CDATA", "Default"},
+ { "start", "style:properties",
+ "fo:width", "CDATA", "12cm",
+ "fo:background-color", "CDATA", "light-grey"},
+ {"end", "style:properties"},
+ {"end", "style:style"},
+ {"end", "office:styles"},
+ {"end", "office:document-styles"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XNameAccess styles = null ;
+ try {
+ XStyleFamiliesSupplier sup = UnoRuntime.queryInterface
+ (XStyleFamiliesSupplier.class, xSheetDoc);
+ XNameAccess oStyleFamilies = sup.getStyleFamilies();
+ Object family = oStyleFamilies.getByName("CellStyles") ;
+ styles = UnoRuntime.queryInterface
+ (XNameAccess.class, family) ;
+ log.println("Styles before:") ;
+ String[] names = styles.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ }
+ final XNameAccess stylesF = styles ;
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ logF.println("Styles after:") ;
+ String[] names = stylesF.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ logF.println(" " + names[i]) ;
+ }
+ return stylesF.hasByName(impStyleName) ;
+ }
+ }) ;
+
+ return tEnv ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/package.html b/qadevOOo/tests/java/mod/_sc/package.html
new file mode 100644
index 000000000..198d6b17d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * 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 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'sc'.</P>
+</BODY>
+</HTML>