summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java55
1 files changed, 33 insertions, 22 deletions
diff --git a/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
index 535e92d11cda..26e9ff14449b 100644
--- a/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
+++ b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.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;
@@ -86,7 +87,6 @@ public class AccessibleEditableTextPara_PreviewCell extends TestCase {
*/
protected synchronized TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
- XAccessibleContext oObj = null;
XCell xCell = null;
try {
@@ -136,19 +136,38 @@ public class AccessibleEditableTextPara_PreviewCell extends TestCase {
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);
+ XAccessibleContext 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) {
+ 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());
@@ -169,12 +188,4 @@ public class AccessibleEditableTextPara_PreviewCell extends TestCase {
return tEnv;
}
-
- protected void shortWait() {
- try {
- Thread.sleep(1000) ;
- } catch (InterruptedException e) {
- System.out.println("While waiting :" + e);
- }
- }
}