diff --git a/pom.xml b/pom.xml
index cc67a5d..115ba0f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
org.robotframework
javafxlibrary
jar
- 0.5.5-SNAPSHOT
+ 0.7.0-SNAPSHOT
UTF-8
1.44
@@ -381,7 +381,7 @@
junit
junit
- 4.13
+ 4.13.1
org.testfx
diff --git a/src/main/java/JavaFXLibrary.java b/src/main/java/JavaFXLibrary.java
index f56137c..13adf21 100644
--- a/src/main/java/JavaFXLibrary.java
+++ b/src/main/java/JavaFXLibrary.java
@@ -41,8 +41,9 @@
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
+import static org.testfx.util.WaitForAsyncUtils.*;
import static javafxlibrary.utils.HelperFunctions.*;
-import static org.testfx.util.WaitForAsyncUtils.waitFor;
+
import java.util.ResourceBundle;
public class JavaFXLibrary extends AnnotationLibrary {
@@ -51,6 +52,66 @@ public class JavaFXLibrary extends AnnotationLibrary {
public static final String ROBOT_LIBRARY_VERSION = loadRobotLibraryVersion();
public static final TestListener ROBOT_LIBRARY_LISTENER = new TestListener();
+ static List noLibraryKeywordTimeoutKeywords = new ArrayList() {{
+ add("launchJavafxApplication");
+ add("launchSwingApplication");
+ add("launchSwingApplicationInSeparateThread");
+ add("closeJavafxApplication");
+ add("closeSwingApplication");
+ add("waitForEventsInFxApplicationThread");
+ add("waitUntilElementDoesNotExists");
+ add("waitUntilElementExists");
+ add("waitUntilNodeIsEnabled");
+ add("waitUntilNodeIsNotEnabled");
+ add("waitUntilNodeIsNotVisible");
+ add("waitUntilNodeIsVisible");
+ add("waitUntilProgressBarIsFinished");
+ }};
+
+ static List noWrappedAsyncFxKeywords = new ArrayList() {{
+ add("callObjectMethodInFxApplicationThread");
+ add("captureImage");
+ add("capturePrimaryScreen");
+ add("captureSceneContainingNode");
+ add("clearObjectMap");
+ add("closeJavafxApplication");
+ add("closeSwingApplication");
+ add("dragFrom");
+ add("dropTo");
+ add("dropToCoordinates");
+ add("getCurrentApplication");
+ add("getLibraryVersion");
+ add("getScreenshot Directory");
+ add("getScreenshotDirectory");
+ add("getSystemProperty");
+ add("isJavaAgent");
+ add("launchJavafxApplication");
+ add("launchSwingApplication");
+ add("launchSwingApplicationInSeparateThread");
+ add("logApplicationClasspath");
+ add("logSystemProperties");
+ add("moveTo");
+ add("nodeShouldBeHoverable");
+ add("nodeShouldNotBeHoverable");
+ add("pushManyTimes");
+ add("setImageLogging");
+ add("setSafeClicking");
+ add("setScreenshotDirectory");
+ add("setSystemProperty");
+ add("setTimeout");
+ add("setToClasspath");
+ add("setWriteSpeed");
+ add("waitForEventsInFxApplicationThread");
+ add("waitUntilElementDoesNotExists");
+ add("waitUntilElementExists");
+ add("waitUntilNodeIsEnabled");
+ add("waitUntilNodeIsNotEnabled");
+ add("waitUntilNodeIsNotVisible");
+ add("waitUntilNodeIsVisible");
+ add("waitUntilProgressBarIsFinished");
+ add("writeTo");
+ }};
+
static List includePatterns = new ArrayList() {{
add("javafxlibrary/keywords/AdditionalKeywords/*.class");
add("javafxlibrary/keywords/Keywords/*.class");
@@ -91,11 +152,9 @@ public static String loadRobotLibraryVersion() {
@Override
public Object runKeyword(String keywordName, List args, Map kwargs) {
-
if (kwargs == null) {
kwargs = new HashMap();
}
-
List finalArgs;
Map finalKwargs;
@@ -108,114 +167,70 @@ public Object runKeyword(String keywordName, List args, Map kwargs) {
finalKwargs = kwargs;
}
+ // Run keyword either in async or asyncFx thread with or without timeout
+ // Execution collects retval and retExcep from keyword
AtomicReference