Files
loongoffice/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
Stephan Bergmann 89fbed7e29 Revert "Java cleanup, AccessibilityTools.."
This reverts commit d702dd4396161f8e2e7396f5c24554088b752fcb, which reproducibly
broke JunitTest_sc_unoapi:

java.lang.NullPointerException
 at util.AccessibilityTools.getAccessibleObjectForRole_(AccessibilityTools.java:177)
 at util.AccessibilityTools.getAccessibleObjectForRole(AccessibilityTools.java:95)
 at mod._sc.AccessibleEditableTextPara_PreviewCell.createTestEnvironment(AccessibleEditableTextPara_PreviewCell.java:149)
 at lib.TestCase.getTestEnvironment(TestCase.java:121)
 at base.java_fat.getTestEnvironment(java_fat.java:319)
 at base.java_fat.executeTest(java_fat.java:167)
 at org.openoffice.Runner.run(Runner.java:234)
 at org.openoffice.test.UnoApiTest.test(UnoApiTest.java:38)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601)
 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
 at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
 at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
 at org.junit.runners.Suite.runChild(Suite.java:128)
 at org.junit.runners.Suite.runChild(Suite.java:24)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
 at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
 at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
 at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
 at org.junit.runner.JUnitCore.runMain(JUnitCore.java:98)
 at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53)
 at org.junit.runner.JUnitCore.main(JUnitCore.java:45)

Change-Id: I3601fe24db21bd63f7dc6cdf0a1eb69f447d962a
2013-05-21 16:56:30 +02:00

180 lines
6.8 KiB
Java

/*
* 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.Status;
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.accessibility.XAccessibleContext;
import com.sun.star.awt.XWindow;
import com.sun.star.container.XIndexAccess;
import com.sun.star.frame.XController;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XDispatchProvider;
import com.sun.star.frame.XModel;
import com.sun.star.lang.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.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 {
static XSpreadsheetDocument xSheetDoc = null;
/**
* Creates a spreadsheet document.
*/
protected void initialize( TestParameters tParam, PrintWriter log ) {
SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory) tParam.getMSF() );
try {
log.println( "creating a Spreadsheet document" );
xSheetDoc = SOF.createCalcDoc(null);
} catch ( com.sun.star.uno.Exception e ) {
// Some exception occures.FAILED
e.printStackTrace( log );
throw new StatusException( "Couldn't create document", e );
}
}
/**
* Disposes a spreadsheet document.
*/
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.
*/
protected synchronized TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
XAccessibleContext oObj = null;
XCell xCell = null;
try {
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);
} catch (com.sun.star.lang.WrappedTargetException e) {
e.printStackTrace(log);
throw new StatusException(
"Error getting cell object from spreadsheet document", e);
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
e.printStackTrace(log);
throw new StatusException(
"Error getting cell object from spreadsheet document", e);
} catch (com.sun.star.lang.IllegalArgumentException e) {
e.printStackTrace(log);
throw new StatusException(
"Error getting cell object from spreadsheet document", e);
}
xCell.setFormula("Value");
XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
XController xController = xModel.getCurrentController();
//switch to 'Print Preview' mode
try {
XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
( (XMultiServiceFactory) 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 );
} catch (com.sun.star.uno.Exception e) {
log.println("Couldn't change mode");
throw new StatusException(Status.failed("Couldn't change mode"));
}
shortWait();
XWindow xWindow = AccessibilityTools.getCurrentWindow( (XMultiServiceFactory) Param.getMSF(), xModel);
XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
//AccessibilityTools.printAccessibleTree(log,xRoot);
AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE_CELL,true);
xRoot = AccessibilityTools.SearchedAccessible;
//AccessibilityTools.printAccessibleTree(log,xRoot);
oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,AccessibleRole.PARAGRAPH);
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;
}
protected void shortWait() {
try {
Thread.sleep(1000) ;
} catch (InterruptedException e) {
System.out.println("While waiting :" + e);
}
}
}