diff options
-rw-r--r-- | qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java index 0419b9e2ccf9..e9fea34ed9a8 100644 --- a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java +++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java @@ -38,6 +38,7 @@ 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.lang.XMultiServiceFactory; import com.sun.star.sheet.XSpreadsheet; @@ -118,8 +119,6 @@ public class ScAccessiblePreviewHeaderCell extends TestCase { */ protected synchronized TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) { - XInterface oObj = null; - if (xSheetDoc != null) { XComponent oComp = UnoRuntime.queryInterface( XComponent.class, xSheetDoc); @@ -241,20 +240,37 @@ public class ScAccessiblePreviewHeaderCell extends TestCase { throw new StatusException(Status.failed("Couldn't change mode")); } - shortWait(); - - AccessibilityTools at = new AccessibilityTools(); - - XWindow xWindow = AccessibilityTools.getCurrentWindow( (XMultiServiceFactory) Param.getMSF(), xModel); - XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow); - - 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); + XInterface oObj = null; + for (int i = 0;; ++i) { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + try { + XAccessible xRoot = AccessibilityTools.getAccessibleObject( + AccessibilityTools.getCurrentWindow( + (XMultiServiceFactory) Param.getMSF(), 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 AccessibleRolte.TABLE/TABLE_CELL object"); + } + log.println("No TABLE/TABLE_CELL found yet, retrying"); } log.println("ImplementationName " + utils.getImplName(oObj)); @@ -269,16 +285,4 @@ public class ScAccessiblePreviewHeaderCell extends TestCase { return tEnv; } - - /** - * Sleeps for 0.5 sec. to allow StarOffice to react on <code> - * reset</code> call. - */ - private void shortWait() { - try { - Thread.sleep(500); - } catch (InterruptedException e) { - System.out.println("While waiting :" + e); - } - } } |