diff --git a/engine/pom.xml b/engine/pom.xml
index 9166084f0..63accd064 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -199,16 +199,6 @@
spring-web
-
- org.seleniumhq.selenium
- selenium-java
-
-
-
- io.github.bonigarcia
- webdrivermanager
-
-
org.jetbrains
annotations
@@ -362,15 +352,6 @@
twilio
-
- com.github.romankh3
- image-comparison
-
-
-
- io.appium
- java-client
-
org.cornutum.regexp
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorCollector.java b/engine/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorCollector.java
index 770b958fe..c5dc46b21 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorCollector.java
+++ b/engine/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorCollector.java
@@ -18,7 +18,7 @@
import com.knubisoft.testlum.testing.framework.constant.ExceptionMessage;
@org.springframework.stereotype.Component
-public class LocatorCollector {
+public class LocatorCollector implements LocatorProvider {
private final PageValidator pageValidator;
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/variations/GlobalVariationsProvider.java b/engine/src/main/java/com/knubisoft/testlum/testing/framework/variations/GlobalVariationsProvider.java
index 5c0a58872..69d368549 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/variations/GlobalVariationsProvider.java
+++ b/engine/src/main/java/com/knubisoft/testlum/testing/framework/variations/GlobalVariationsProvider.java
@@ -19,7 +19,7 @@
@RequiredArgsConstructor
@Component
-public class GlobalVariationsProvider {
+public class GlobalVariationsProvider implements VariationsProvider {
private static final String ROUTE_REGEXP = "\\{\\{(.*?)}}";
private static final String NO_VALUE_FOUND_FOR_KEY = "Unable to find value for key <%s>. Available keys: %s";
diff --git a/modules/pom.xml b/modules/pom.xml
index 322d9a1e7..4a1b6d9c1 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -19,7 +19,6 @@
shared-util
repeat-util
- ui-util
db-util
api-util
diff --git a/modules/shared-util/pom.xml b/modules/shared-util/pom.xml
index f0c0302ee..3851046cc 100644
--- a/modules/shared-util/pom.xml
+++ b/modules/shared-util/pom.xml
@@ -35,6 +35,11 @@
selenium-java
+
+ com.github.romankh3
+ image-comparison
+
+
org.projectlombok
lombok
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArguments.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArguments.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArguments.java
rename to modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArguments.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ConditionUtil.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ConditionUtil.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ConditionUtil.java
rename to modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ConditionUtil.java
diff --git a/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProvider.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProvider.java
new file mode 100644
index 000000000..253e400ff
--- /dev/null
+++ b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProvider.java
@@ -0,0 +1,12 @@
+package com.knubisoft.testlum.testing.framework.util;
+
+import java.util.Optional;
+
+public interface DeviceInfoProvider {
+
+ Optional getBrowserInfo(String environment, String alias);
+
+ Optional getMobileBrowserDeviceInfo(String environment, String alias);
+
+ Optional getNativeDeviceInfo(String environment, String alias);
+}
diff --git a/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JsScriptExecutor.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JsScriptExecutor.java
new file mode 100644
index 000000000..5792a9d86
--- /dev/null
+++ b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JsScriptExecutor.java
@@ -0,0 +1,8 @@
+package com.knubisoft.testlum.testing.framework.util;
+
+import org.openqa.selenium.WebDriver;
+
+public interface JsScriptExecutor {
+
+ Object executeJsScript(String script, WebDriver driver, Object... args);
+}
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java
similarity index 97%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java
rename to modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java
index f001afd44..09ce74b12 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java
+++ b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java
@@ -48,8 +48,7 @@
@Slf4j
public class LogUtil {
- private final BrowserUtil browserUtil;
- private final MobileUtil mobileUtil;
+ private final DeviceInfoProvider deviceInfoProvider;
private final StringPrettifier stringPrettifier;
public void logScenarioDetails(final ScenarioArguments scenarioArguments,
@@ -113,19 +112,18 @@ private List getUIInfo(final String variation,
}
private void addBrowserInfo(final List messages, final String env, final String alias) {
- browserUtil.getBrowserBy(env, alias).ifPresent(browser ->
- messages.add(String.format(LogMessage.BROWSER_NAME_LOG, browserUtil.getBrowserInfo(browser))));
+ deviceInfoProvider.getBrowserInfo(env, alias).ifPresent(info ->
+ messages.add(String.format(LogMessage.BROWSER_NAME_LOG, info)));
}
private void addMobileInfo(final List messages, final String env, final String alias) {
- mobileUtil.getMobileBrowserDeviceBy(env, alias).ifPresent(device ->
- messages.add(String.format(LogMessage.MOBILE_BROWSER_LOG,
- mobileUtil.getMobileBrowserDeviceInfo(device))));
+ deviceInfoProvider.getMobileBrowserDeviceInfo(env, alias).ifPresent(info ->
+ messages.add(String.format(LogMessage.MOBILE_BROWSER_LOG, info)));
}
private void addNativeInfo(final List messages, final String env, final String alias) {
- mobileUtil.getNativeDeviceBy(env, alias).ifPresent(device ->
- messages.add(String.format(LogMessage.NATIVE_LOG, mobileUtil.getNativeDeviceInfo(device))));
+ deviceInfoProvider.getNativeDeviceInfo(env, alias).ifPresent(info ->
+ messages.add(String.format(LogMessage.NATIVE_LOG, info)));
}
public void logNonParsedScenarioInfo(final String path, final String exception) {
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ResultUtil.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ResultUtil.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ResultUtil.java
rename to modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ResultUtil.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java
similarity index 67%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java
rename to modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java
index 1733a3598..650c78f74 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java
+++ b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java
@@ -1,7 +1,7 @@
package com.knubisoft.testlum.testing.framework.util;
import com.knubisoft.testlum.testing.framework.scenario.ScenarioContext;
-import com.knubisoft.testlum.testing.framework.variations.GlobalVariationsProvider;
+import com.knubisoft.testlum.testing.framework.variations.VariationsProvider;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@@ -11,7 +11,7 @@
@Component
public class ScenarioInjectionUtil {
- private final GlobalVariationsProvider globalVariationsProvider;
+ private final VariationsProvider variationsProvider;
private final InjectionService injectionService;
public T injectObject(final T t, final ScenarioContext scenarioContext) {
@@ -19,11 +19,11 @@ public T injectObject(final T t, final ScenarioContext scenarioContext) {
}
public T injectObjectVariation(final T t, final Map variation) {
- return injectionService.inject(t, s -> globalVariationsProvider.getValue(s, variation));
+ return injectionService.inject(t, s -> variationsProvider.getValue(s, variation));
}
public T injectObjectVariation(final T t, final Map variation, final ScenarioContext ctx) {
- return injectionService.inject(t, s -> globalVariationsProvider.getValue(s, variation, ctx));
+ return injectionService.inject(t, s -> variationsProvider.getValue(s, variation, ctx));
}
}
diff --git a/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScreenshotHandler.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScreenshotHandler.java
new file mode 100644
index 000000000..65d7938be
--- /dev/null
+++ b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScreenshotHandler.java
@@ -0,0 +1,10 @@
+package com.knubisoft.testlum.testing.framework.util;
+
+import com.knubisoft.testlum.testing.framework.report.CommandResult;
+
+import java.io.File;
+
+public interface ScreenshotHandler {
+
+ void putScreenshotToResult(CommandResult result, File screenshot);
+}
diff --git a/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/variations/VariationsProvider.java b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/variations/VariationsProvider.java
new file mode 100644
index 000000000..2463d1d68
--- /dev/null
+++ b/modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/variations/VariationsProvider.java
@@ -0,0 +1,12 @@
+package com.knubisoft.testlum.testing.framework.variations;
+
+import com.knubisoft.testlum.testing.framework.scenario.ScenarioContext;
+
+import java.util.Map;
+
+public interface VariationsProvider {
+
+ String getValue(String variation, Map variationMap);
+
+ String getValue(String variation, Map variationMap, ScenarioContext scenarioContext);
+}
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArgumentsTest.java b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArgumentsTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArgumentsTest.java
rename to modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArgumentsTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ConditionUtilTest.java b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ConditionUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ConditionUtilTest.java
rename to modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ConditionUtilTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java
similarity index 98%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java
rename to modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java
index bcbc678a9..cabf00e38 100644
--- a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java
+++ b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java
@@ -57,10 +57,7 @@
class LogUtilTest {
@Mock
- private BrowserUtil browserUtil;
-
- @Mock
- private MobileUtil mobileUtil;
+ private DeviceInfoProvider deviceInfoProvider;
@Mock
private StringPrettifier stringPrettifier;
@@ -295,9 +292,9 @@ void logsScenarioDetailsWithException() {
@Test
void logsScenarioDetailsWithUiSteps() {
- when(browserUtil.getBrowserBy(anyString(), anyString())).thenReturn(Optional.empty());
- when(mobileUtil.getMobileBrowserDeviceBy(anyString(), anyString())).thenReturn(Optional.empty());
- when(mobileUtil.getNativeDeviceBy(anyString(), anyString())).thenReturn(Optional.empty());
+ when(deviceInfoProvider.getBrowserInfo(anyString(), anyString())).thenReturn(Optional.empty());
+ when(deviceInfoProvider.getMobileBrowserDeviceInfo(anyString(), anyString())).thenReturn(Optional.empty());
+ when(deviceInfoProvider.getNativeDeviceInfo(anyString(), anyString())).thenReturn(Optional.empty());
ScenarioArguments args = buildArgs(true);
assertDoesNotThrow(() -> logUtil.logScenarioDetails(args, null, Color.GREEN));
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ResultUtilTest.java b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ResultUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ResultUtilTest.java
rename to modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ResultUtilTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java
similarity index 89%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java
rename to modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java
index 05c1469f3..c0e103dff 100644
--- a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java
+++ b/modules/shared-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java
@@ -1,7 +1,7 @@
package com.knubisoft.testlum.testing.framework.util;
import com.knubisoft.testlum.testing.framework.scenario.ScenarioContext;
-import com.knubisoft.testlum.testing.framework.variations.GlobalVariationsProvider;
+import com.knubisoft.testlum.testing.framework.variations.VariationsProvider;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
@@ -22,7 +22,7 @@
class ScenarioInjectionUtilTest {
@Mock
- private GlobalVariationsProvider globalVariationsProvider;
+ private VariationsProvider variationsProvider;
@Mock
private InjectionService injectionService;
@@ -79,7 +79,7 @@ void injectObjectVariationWithTwoArgsDelegatesToGlobalVariationsProvider() {
void injectObjectVariationWithTwoArgsUsesGetValue() {
String input = "test";
Map variation = Map.of("key", "value");
- when(globalVariationsProvider.getValue("key", variation)).thenReturn("resolved-value");
+ when(variationsProvider.getValue("key", variation)).thenReturn("resolved-value");
ArgumentCaptor> captor = ArgumentCaptor.forClass(Function.class);
when(injectionService.inject(eq(input), captor.capture())).thenReturn(input);
@@ -88,7 +88,7 @@ void injectObjectVariationWithTwoArgsUsesGetValue() {
Function operator = captor.getValue();
String result = operator.apply("key");
assertEquals("resolved-value", result);
- verify(globalVariationsProvider).getValue("key", variation);
+ verify(variationsProvider).getValue("key", variation);
}
@Test
@@ -109,7 +109,7 @@ void injectObjectVariationWithThreeArgsDelegatesToGlobalVariationsProvider() {
void injectObjectVariationWithThreeArgsUsesGetValueWithContext() {
String input = "test";
Map variation = Map.of("key", "value");
- when(globalVariationsProvider.getValue("key", variation, scenarioContext)).thenReturn("ctx-resolved");
+ when(variationsProvider.getValue("key", variation, scenarioContext)).thenReturn("ctx-resolved");
ArgumentCaptor> captor = ArgumentCaptor.forClass(Function.class);
when(injectionService.inject(eq(input), captor.capture())).thenReturn(input);
@@ -118,6 +118,6 @@ void injectObjectVariationWithThreeArgsUsesGetValueWithContext() {
Function operator = captor.getValue();
String result = operator.apply("key");
assertEquals("ctx-resolved", result);
- verify(globalVariationsProvider).getValue("key", variation, scenarioContext);
+ verify(variationsProvider).getValue("key", variation, scenarioContext);
}
}
diff --git a/modules/ui/browser-shared/pom.xml b/modules/ui/browser-shared/pom.xml
new file mode 100644
index 000000000..6ce8d2a1b
--- /dev/null
+++ b/modules/ui/browser-shared/pom.xml
@@ -0,0 +1,57 @@
+
+
+ 4.0.0
+
+
+ com.knubisoft
+ testlum-ui
+ 1.0.2
+ ../pom.xml
+
+
+ testlum-browser-shared
+
+
+
+ com.knubisoft
+ testlum-ui-executor
+
+
+
+ com.knubisoft
+ testlum-wait-util
+
+
+
+ org.projectlombok
+ lombok
+ compile
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+ org.springframework
+ spring-test
+ test
+
+
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JavascriptExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JavascriptExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JavascriptExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JavascriptExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutor.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutor.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScript.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScript.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScript.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScript.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/PageScrollScript.java b/modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/util/PageScrollScript.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/PageScrollScript.java
rename to modules/ui/browser-shared/src/main/java/com/knubisoft/testlum/testing/framework/util/PageScrollScript.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JsExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JsExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JsExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JsExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutorTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutorTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScriptTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScriptTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScriptTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScriptTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/PageScrollScriptTest.java b/modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/util/PageScrollScriptTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/PageScrollScriptTest.java
rename to modules/ui/browser-shared/src/test/java/com/knubisoft/testlum/testing/framework/util/PageScrollScriptTest.java
diff --git a/modules/ui/mobilebrowser/pom.xml b/modules/ui/mobilebrowser/pom.xml
index 28984ef44..d2c5ad204 100644
--- a/modules/ui/mobilebrowser/pom.xml
+++ b/modules/ui/mobilebrowser/pom.xml
@@ -16,7 +16,7 @@
com.knubisoft
- testlum-ui-util
+ testlum-browser-shared
@@ -24,5 +24,29 @@
lombok
compile
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+ org.springframework
+ spring-test
+ test
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactory.java b/modules/ui/mobilebrowser/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactory.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactory.java
rename to modules/ui/mobilebrowser/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactory.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutor.java b/modules/ui/mobilebrowser/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutor.java
rename to modules/ui/mobilebrowser/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutor.java b/modules/ui/mobilebrowser/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutor.java
rename to modules/ui/mobilebrowser/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutor.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactoryTest.java b/modules/ui/mobilebrowser/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactoryTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactoryTest.java
rename to modules/ui/mobilebrowser/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactoryTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutorTest.java b/modules/ui/mobilebrowser/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutorTest.java
rename to modules/ui/mobilebrowser/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutorTest.java b/modules/ui/mobilebrowser/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutorTest.java
rename to modules/ui/mobilebrowser/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutorTest.java
diff --git a/modules/ui/native/pom.xml b/modules/ui/native/pom.xml
index 9040da9f4..059d3a8c8 100644
--- a/modules/ui/native/pom.xml
+++ b/modules/ui/native/pom.xml
@@ -16,7 +16,12 @@
com.knubisoft
- testlum-ui-util
+ testlum-ui-executor
+
+
+
+ com.knubisoft
+ testlum-wait-util
@@ -24,5 +29,29 @@
lombok
compile
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+ org.springframework
+ spring-test
+ test
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactory.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactory.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactory.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactory.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutor.java b/modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutor.java
rename to modules/ui/native/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutor.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactoryTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactoryTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactoryTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactoryTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutorTest.java b/modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutorTest.java
rename to modules/ui/native/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutorTest.java
diff --git a/modules/ui/pom.xml b/modules/ui/pom.xml
index 0f63a1d27..734bad55c 100644
--- a/modules/ui/pom.xml
+++ b/modules/ui/pom.xml
@@ -15,6 +15,11 @@
pom
+ ui-configuration
+ ui-image
+ ui-util
+ ui-executor
+ browser-shared
web
native
mobilebrowser
diff --git a/modules/ui-util/pom.xml b/modules/ui/ui-configuration/pom.xml
similarity index 56%
rename from modules/ui-util/pom.xml
rename to modules/ui/ui-configuration/pom.xml
index b20e23d07..2b22ab0d3 100644
--- a/modules/ui-util/pom.xml
+++ b/modules/ui/ui-configuration/pom.xml
@@ -6,12 +6,12 @@
com.knubisoft
- modules
+ testlum-ui
1.0.2
../pom.xml
- testlum-ui-util
+ testlum-ui-configuration
@@ -24,5 +24,23 @@
lombok
compile
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/EnvironmentLoader.java b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/EnvironmentLoader.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/EnvironmentLoader.java
rename to modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/EnvironmentLoader.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/BrowserUtil.java b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/BrowserUtil.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/BrowserUtil.java
rename to modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/BrowserUtil.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ConfigUtil.java b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/ConfigUtil.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ConfigUtil.java
rename to modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/ConfigUtil.java
diff --git a/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProviderImpl.java b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProviderImpl.java
new file mode 100644
index 000000000..fcb1a3f78
--- /dev/null
+++ b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProviderImpl.java
@@ -0,0 +1,32 @@
+package com.knubisoft.testlum.testing.framework.util;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.Optional;
+
+@Component
+@RequiredArgsConstructor
+public class DeviceInfoProviderImpl implements DeviceInfoProvider {
+
+ private final BrowserUtil browserUtil;
+ private final MobileUtil mobileUtil;
+
+ @Override
+ public Optional getBrowserInfo(final String environment, final String alias) {
+ return browserUtil.getBrowserBy(environment, alias)
+ .map(browserUtil::getBrowserInfo);
+ }
+
+ @Override
+ public Optional getMobileBrowserDeviceInfo(final String environment, final String alias) {
+ return mobileUtil.getMobileBrowserDeviceBy(environment, alias)
+ .map(mobileUtil::getMobileBrowserDeviceInfo);
+ }
+
+ @Override
+ public Optional getNativeDeviceInfo(final String environment, final String alias) {
+ return mobileUtil.getNativeDeviceBy(environment, alias)
+ .map(mobileUtil::getNativeDeviceInfo);
+ }
+}
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/MobileUtil.java b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/MobileUtil.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/MobileUtil.java
rename to modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/MobileUtil.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtil.java b/modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtil.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtil.java
rename to modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtil.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/EnvironmentLoaderTest.java b/modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/EnvironmentLoaderTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/EnvironmentLoaderTest.java
rename to modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/EnvironmentLoaderTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/BrowserUtilTest.java b/modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/BrowserUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/BrowserUtilTest.java
rename to modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/BrowserUtilTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ConfigUtilTest.java b/modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/ConfigUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ConfigUtilTest.java
rename to modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/ConfigUtilTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/MobileUtilTest.java b/modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/MobileUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/MobileUtilTest.java
rename to modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/MobileUtilTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtilTest.java b/modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtilTest.java
rename to modules/ui/ui-configuration/src/test/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtilTest.java
diff --git a/modules/ui/ui-executor/pom.xml b/modules/ui/ui-executor/pom.xml
new file mode 100644
index 000000000..37331ba04
--- /dev/null
+++ b/modules/ui/ui-executor/pom.xml
@@ -0,0 +1,84 @@
+
+
+ 4.0.0
+
+
+ com.knubisoft
+ testlum-ui
+ 1.0.2
+ ../pom.xml
+
+
+ testlum-ui-executor
+
+
+
+ com.knubisoft
+ testlum-ui-util
+
+
+
+ com.knubisoft
+ testlum-repeat-util
+
+
+
+ com.knubisoft
+ testlum-variable-util
+
+
+
+ org.reflections
+ reflections
+
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+
+
+
+ org.projectlombok
+ lombok
+ compile
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+ org.springframework
+ spring-test
+ test
+
+
+
diff --git a/modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/AbstractUiInterpreter.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/AbstractUiInterpreter.java
similarity index 100%
rename from modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/AbstractUiInterpreter.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/AbstractUiInterpreter.java
diff --git a/modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunner.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunner.java
similarity index 100%
rename from modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunner.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunner.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImpl.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImpl.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImpl.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImpl.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/AbstractUiExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/AbstractUiExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/AbstractUiExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/AbstractUiExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMap.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMap.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMap.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMap.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClass.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClass.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClass.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClass.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProvider.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProvider.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProvider.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProvider.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScanner.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScanner.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScanner.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScanner.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriver.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriver.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriver.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriver.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractRepeatExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractRepeatExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractRepeatExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractRepeatExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractVariableExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractVariableExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractVariableExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractVariableExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelper.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelper.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelper.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelper.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutor.java b/modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutor.java
rename to modules/ui/ui-executor/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutor.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImplTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImplTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImplTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImplTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMapTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMapTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMapTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMapTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClassTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClassTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClassTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClassTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProviderTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProviderTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProviderTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProviderTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScannerTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScannerTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScannerTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScannerTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriverTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriverTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriverTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriverTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiExecutorTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiExecutorTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelperTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelperTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelperTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelperTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutorTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutorTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutorTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutorTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutorTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutorTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutorTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutorTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutorTest.java b/modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutorTest.java
rename to modules/ui/ui-executor/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutorTest.java
diff --git a/modules/ui/ui-image/pom.xml b/modules/ui/ui-image/pom.xml
new file mode 100644
index 000000000..0b3cac06d
--- /dev/null
+++ b/modules/ui/ui-image/pom.xml
@@ -0,0 +1,57 @@
+
+
+ 4.0.0
+
+
+ com.knubisoft
+ testlum-ui
+ 1.0.2
+ ../pom.xml
+
+
+ testlum-ui-image
+
+
+
+ com.knubisoft
+ testlum-shared-util
+
+
+
+ com.github.romankh3
+ image-comparison
+
+
+
+ org.projectlombok
+ lombok
+ compile
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparator.java b/modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparator.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparator.java
rename to modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparator.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java b/modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java
similarity index 93%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java
rename to modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java
index 8562ae0dd..2d733f829 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java
+++ b/modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java
@@ -28,9 +28,9 @@ public class ImageComparisonUtil {
private static final String WINDOW_INNER_HEIGHT = "return window.innerHeight;";
private static final String STATUS_BAR_HEIGHT = "statBarHeight";
- private final UiUtil uiUtil;
+ private final ScreenshotHandler screenshotHandler;
private final ResultUtil resultUtil;
- private final JavascriptUtil javascriptUtil;
+ private final JsScriptExecutor jsScriptExecutor;
public void processImageComparisonResult(final ImageComparisonResult comparisonResult,
final String expectedImageFullName,
@@ -51,7 +51,7 @@ private void saveAndAttachImage(final ImageComparisonResult comparisonResult,
try {
File actualImage = saveActualImage(
comparisonResult, expectedImageFullName, isHighlightDifference, directoryToSave);
- uiUtil.putScreenshotToResult(result, actualImage);
+ screenshotHandler.putScreenshotToResult(result, actualImage);
} catch (IOException e) {
throw new DefaultFrameworkException(e);
}
@@ -114,8 +114,8 @@ public int getStatusBarHeight(final WebDriver driver) {
if (Objects.nonNull(capability)) {
return (int) ((long) capability);
}
- long screenHeight = (Long) javascriptUtil.executeJsScript(MOBILE_SCREEN_HEIGHT, driver);
- long windowHeight = (Long) javascriptUtil.executeJsScript(WINDOW_INNER_HEIGHT, driver);
+ long screenHeight = (Long) jsScriptExecutor.executeJsScript(MOBILE_SCREEN_HEIGHT, driver);
+ long windowHeight = (Long) jsScriptExecutor.executeJsScript(WINDOW_INNER_HEIGHT, driver);
return (int) (screenHeight - windowHeight);
}
}
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java b/modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java
similarity index 54%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java
rename to modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java
index 8bd9003d4..956afb001 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java
+++ b/modules/ui/ui-image/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java
@@ -2,9 +2,7 @@
import com.knubisoft.testlum.testing.framework.exception.DefaultFrameworkException;
import org.apache.commons.io.FileUtils;
-import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.*;
@@ -16,50 +14,34 @@
@Service
public class ImageCompressor {
- private static final String IMAGE_JPEG = "image" + File.separator + "jpeg";
private static final String EXTENSION_JPEG = "jpeg";
- private static final String IMAGE_PNG = "image" + File.separator + "png";
private static final Integer WIDTH_IMAGE_SIZE = 600;
private static final Integer HEIGHT_IMAGE_SIZE = 400;
- public MultipartFile compress(final File originalImage) {
- final BufferedImage image;
- final MultipartFile multipartFile = tryToGetMultipart(originalImage);
- image = getBufferedImage(multipartFile);
+ public byte[] compress(final File originalImage) {
+ final byte[] fileBytes = readFileBytes(originalImage);
+ final BufferedImage image = getBufferedImage(originalImage);
return (image.getWidth() <= WIDTH_IMAGE_SIZE && image.getHeight() <= HEIGHT_IMAGE_SIZE)
- ? multipartFile : resizeImage(multipartFile.getName(), image);
+ ? fileBytes : resizeImage(image);
}
- private MultipartFile tryToGetMultipart(final File originalImage) {
- final MultipartFile multipartFile;
+ private byte[] readFileBytes(final File originalImage) {
try {
- multipartFile = getMultipartFile(originalImage);
+ return FileUtils.readFileToByteArray(originalImage);
} catch (IOException e) {
throw new DefaultFrameworkException("Image processing error, please recheck the screenshot", e);
}
- return multipartFile;
}
- private BufferedImage getBufferedImage(final MultipartFile multipartFile) {
- final BufferedImage image;
+ private BufferedImage getBufferedImage(final File imageFile) {
try {
- image = ImageIO.read(multipartFile.getInputStream());
+ return ImageIO.read(imageFile);
} catch (IOException e) {
throw new DefaultFrameworkException("Image processing error, please recheck the screenshot", e);
}
- return image;
}
- private MultipartFile getMultipartFile(final File originalImage) throws IOException {
- final byte[] fileInByteArray;
- final MultipartFile multipartFile;
- fileInByteArray = FileUtils.readFileToByteArray(originalImage);
- multipartFile = new MockMultipartFile("image",
- originalImage.getName(), IMAGE_JPEG, fileInByteArray);
- return multipartFile;
- }
-
- private MultipartFile resizeImage(final String name, final BufferedImage avatar) {
+ private byte[] resizeImage(final BufferedImage avatar) {
final Image originalAvatar = avatar.getScaledInstance(WIDTH_IMAGE_SIZE, HEIGHT_IMAGE_SIZE,
Image.SCALE_AREA_AVERAGING);
final BufferedImage resizedAvatar = new BufferedImage(WIDTH_IMAGE_SIZE, HEIGHT_IMAGE_SIZE,
@@ -67,7 +49,7 @@ private MultipartFile resizeImage(final String name, final BufferedImage avatar)
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
resizedAvatar.getGraphics().drawImage(originalAvatar, 0, 0, null);
writeImage(resizedAvatar, byteArrayOutputStream);
- return new MockMultipartFile(name, byteArrayOutputStream.toByteArray());
+ return byteArrayOutputStream.toByteArray();
}
private void writeImage(final BufferedImage resizedAvatar, final ByteArrayOutputStream byteArrayOutputStream) {
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparatorTest.java b/modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparatorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparatorTest.java
rename to modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparatorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java b/modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java
similarity index 94%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java
rename to modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java
index 0e1cd8070..c7de092cd 100644
--- a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java
+++ b/modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java
@@ -28,13 +28,13 @@
class ImageComparisonUtilTest {
@Mock
- private UiUtil uiUtil;
+ private ScreenshotHandler screenshotHandler;
@Mock
private ResultUtil resultUtil;
@Mock
- private JavascriptUtil javascriptUtil;
+ private JsScriptExecutor jsScriptExecutor;
@InjectMocks
private ImageComparisonUtil imageComparisonUtil;
@@ -48,7 +48,7 @@ void doesNothingOnMatch() {
CommandResult result = new CommandResult();
assertDoesNotThrow(() -> imageComparisonUtil.processImageComparisonResult(
comparisonResult, "expected.png", true, new File("/tmp"), result));
- verifyNoInteractions(uiUtil);
+ verifyNoInteractions(screenshotHandler);
}
@Test
@@ -125,8 +125,8 @@ void calculatesFromScreenAndWindowHeight() {
Capabilities caps = mock(Capabilities.class);
when(driver.getCapabilities()).thenReturn(caps);
when(caps.getCapability("statBarHeight")).thenReturn(null);
- when(javascriptUtil.executeJsScript("return screen.height;", driver)).thenReturn(2400L);
- when(javascriptUtil.executeJsScript("return window.innerHeight;", driver)).thenReturn(2300L);
+ when(jsScriptExecutor.executeJsScript("return screen.height;", driver)).thenReturn(2400L);
+ when(jsScriptExecutor.executeJsScript("return window.innerHeight;", driver)).thenReturn(2300L);
int height = imageComparisonUtil.getStatusBarHeight(driver);
assertEquals(100, height);
}
@@ -137,8 +137,8 @@ void returnsZeroWhenScreenAndWindowHeightEqual() {
Capabilities caps = mock(Capabilities.class);
when(driver.getCapabilities()).thenReturn(caps);
when(caps.getCapability("statBarHeight")).thenReturn(null);
- when(javascriptUtil.executeJsScript("return screen.height;", driver)).thenReturn(1000L);
- when(javascriptUtil.executeJsScript("return window.innerHeight;", driver)).thenReturn(1000L);
+ when(jsScriptExecutor.executeJsScript("return screen.height;", driver)).thenReturn(1000L);
+ when(jsScriptExecutor.executeJsScript("return window.innerHeight;", driver)).thenReturn(1000L);
int height = imageComparisonUtil.getStatusBarHeight(driver);
assertEquals(0, height);
}
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java b/modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java
similarity index 81%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java
rename to modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java
index d8083b70c..694d6bb34 100644
--- a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java
+++ b/modules/ui/ui-image/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java
@@ -4,7 +4,6 @@
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
-import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
@@ -32,15 +31,15 @@ class SmallImages {
@Test
void smallImageNotResized() throws IOException {
final File smallImage = createTestImage(100, 100);
- final MultipartFile result = compressor.compress(smallImage);
+ final byte[] result = compressor.compress(smallImage);
assertNotNull(result);
- assertTrue(result.getBytes().length > 0);
+ assertTrue(result.length > 0);
}
@Test
void exactLimitNotResized() throws IOException {
final File exactImage = createTestImage(600, 400);
- final MultipartFile result = compressor.compress(exactImage);
+ final byte[] result = compressor.compress(exactImage);
assertNotNull(result);
}
}
@@ -50,15 +49,15 @@ class LargeImages {
@Test
void largeImageIsResized() throws IOException {
final File largeImage = createTestImage(1200, 800);
- final MultipartFile result = compressor.compress(largeImage);
+ final byte[] result = compressor.compress(largeImage);
assertNotNull(result);
- assertTrue(result.getBytes().length > 0);
+ assertTrue(result.length > 0);
}
@Test
void wideImageIsResized() throws IOException {
final File wideImage = createTestImage(900, 300);
- final MultipartFile result = compressor.compress(wideImage);
+ final byte[] result = compressor.compress(wideImage);
assertNotNull(result);
}
}
diff --git a/modules/ui/ui-util/pom.xml b/modules/ui/ui-util/pom.xml
new file mode 100644
index 000000000..f7a260fb5
--- /dev/null
+++ b/modules/ui/ui-util/pom.xml
@@ -0,0 +1,61 @@
+
+
+ 4.0.0
+
+
+ com.knubisoft
+ testlum-ui
+ 1.0.2
+ ../pom.xml
+
+
+ testlum-ui-util
+
+
+
+ com.knubisoft
+ testlum-ui-configuration
+
+
+
+ io.appium
+ java-client
+
+
+
+ com.knubisoft
+ testlum-ui-image
+
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+
+
+
+ org.projectlombok
+ lombok
+ compile
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstant.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstant.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstant.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstant.java
diff --git a/modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorDependencies.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorDependencies.java
similarity index 100%
rename from modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorDependencies.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorDependencies.java
diff --git a/modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiType.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiType.java
similarity index 100%
rename from modules/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiType.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiType.java
diff --git a/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorProvider.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorProvider.java
new file mode 100644
index 000000000..597cd5333
--- /dev/null
+++ b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorProvider.java
@@ -0,0 +1,8 @@
+package com.knubisoft.testlum.testing.framework.locator;
+
+import com.knubisoft.testlum.testing.model.pages.Locator;
+
+public interface LocatorProvider {
+
+ Locator getLocator(String name);
+}
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ByService.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ByService.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/ByService.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ByService.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java
similarity index 95%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java
index 137762233..5db8afc09 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java
+++ b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java
@@ -16,7 +16,7 @@
@RequiredArgsConstructor
@Component
-public class JavascriptUtil {
+public class JavascriptUtil implements JsScriptExecutor {
private final FileSearcher fileSearcher;
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java
similarity index 94%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java
index fbf4e55d1..1d0fe6b1e 100644
--- a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java
+++ b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java
@@ -7,7 +7,7 @@
import com.knubisoft.testlum.testing.framework.exception.DefaultFrameworkException;
import com.knubisoft.testlum.testing.framework.interpreter.lib.ui.ExecutorDependencies;
import com.knubisoft.testlum.testing.framework.interpreter.lib.ui.UiType;
-import com.knubisoft.testlum.testing.framework.locator.LocatorCollector;
+import com.knubisoft.testlum.testing.framework.locator.LocatorProvider;
import com.knubisoft.testlum.testing.framework.report.CommandResult;
import com.knubisoft.testlum.testing.model.pages.ClassName;
import com.knubisoft.testlum.testing.model.pages.CssSelector;
@@ -32,8 +32,6 @@
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
import java.io.File;
import java.io.IOException;
import java.net.URL;
@@ -41,7 +39,6 @@
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Base64;
-import java.util.Objects;
import java.util.regex.Pattern;
import com.knubisoft.testlum.testing.framework.constant.ExceptionMessage;
@@ -50,7 +47,7 @@
@Slf4j
@Component
@RequiredArgsConstructor
-public class UiUtil {
+public class UiUtil implements ScreenshotHandler {
private static final String FILE_PATH_PREFIX = "file:";
private static final String APPIUM_LOCALHOST_ALIAS = "10.0.2.2";
@@ -59,7 +56,7 @@ public class UiUtil {
private static final Pattern HTTP_PATTERN = Pattern.compile("https?://.+");
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH-mm-ss");
- private final LocatorCollector locatorCollector;
+ private final LocatorProvider locatorProvider;
private final JavascriptUtil javascriptUtil;
private final WebElementFinder webElementFinder;
private final FileSearcher fileSearcher;
@@ -85,7 +82,7 @@ public WebElement findWebElement(final ExecutorDependencies dependencies,
public Locator getLocatorByStrategy(final String locatorId, final LocatorStrategy locatorStrategy) {
if (locatorStrategy == LocatorStrategy.LOCATOR_ID) {
- return locatorCollector.getLocator(locatorId);
+ return locatorProvider.getLocator(locatorId);
}
Locator locator = new Locator();
locator.setLocatorId(locatorId);
@@ -223,16 +220,9 @@ public File takeScreenshot(final WebElement webElement) {
}
public void putScreenshotToResult(final CommandResult result, final File screenshot) {
- final MultipartFile image = imageCompressor.compress(screenshot);
- if (Objects.nonNull(image)) {
- try {
- byte[] screenshotContent = FileUtils.readFileToByteArray(screenshot);
- String encodedScreenshot = Base64.getEncoder().encodeToString(screenshotContent);
- result.setBase64Screenshot(encodedScreenshot);
- } catch (IOException e) {
- throw new DefaultFrameworkException(e);
- }
- }
+ byte[] compressedImage = imageCompressor.compress(screenshot);
+ String encodedScreenshot = Base64.getEncoder().encodeToString(compressedImage);
+ result.setBase64Screenshot(encodedScreenshot);
}
public String getElementAttribute(final WebElement element, final String attributeName, final WebDriver driver) {
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/util/WebElementFinder.java b/modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/WebElementFinder.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/util/WebElementFinder.java
rename to modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/util/WebElementFinder.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstantTest.java b/modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstantTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstantTest.java
rename to modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstantTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ByServiceTest.java b/modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ByServiceTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/ByServiceTest.java
rename to modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/ByServiceTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtilTest.java b/modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtilTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtilTest.java
rename to modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtilTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java b/modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java
similarity index 99%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java
rename to modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java
index a9b479909..04c454499 100644
--- a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java
+++ b/modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java
@@ -6,7 +6,7 @@
import com.knubisoft.testlum.testing.framework.constant.JavascriptConstant;
import com.knubisoft.testlum.testing.framework.exception.DefaultFrameworkException;
import com.knubisoft.testlum.testing.framework.interpreter.lib.ui.UiType;
-import com.knubisoft.testlum.testing.framework.locator.LocatorCollector;
+import com.knubisoft.testlum.testing.framework.locator.LocatorProvider;
import com.knubisoft.testlum.testing.model.global_config.Mobilebrowser;
import com.knubisoft.testlum.testing.model.global_config.Web;
import com.knubisoft.testlum.testing.model.pages.ClassName;
@@ -41,7 +41,7 @@
class UiUtilTest {
@Mock
- private LocatorCollector locatorCollector;
+ private LocatorProvider locatorProvider;
@Mock
private JavascriptUtil javascriptUtil;
@Mock
@@ -122,7 +122,7 @@ class GetLocatorByStrategy {
@Test
void locatorIdDelegatesToCollector() {
Locator expected = new Locator();
- when(locatorCollector.getLocator("myLocator")).thenReturn(expected);
+ when(locatorProvider.getLocator("myLocator")).thenReturn(expected);
Locator result = uiUtil.getLocatorByStrategy("myLocator", LocatorStrategy.LOCATOR_ID);
assertEquals(expected, result);
}
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/util/WebElementFinderTest.java b/modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/WebElementFinderTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/util/WebElementFinderTest.java
rename to modules/ui/ui-util/src/test/java/com/knubisoft/testlum/testing/framework/util/WebElementFinderTest.java
diff --git a/modules/ui/web/pom.xml b/modules/ui/web/pom.xml
index 7ac4132ba..6cf4976c2 100644
--- a/modules/ui/web/pom.xml
+++ b/modules/ui/web/pom.xml
@@ -16,7 +16,12 @@
com.knubisoft
- testlum-ui-util
+ testlum-browser-shared
+
+
+
+ io.github.bonigarcia
+ webdrivermanager
@@ -24,5 +29,29 @@
lombok
compile
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
+ org.springframework
+ spring-test
+ test
+
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactory.java b/modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactory.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactory.java
rename to modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactory.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutor.java b/modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutor.java
rename to modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutor.java b/modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutor.java
rename to modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutor.java b/modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutor.java
rename to modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutor.java
diff --git a/engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutor.java b/modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutor.java
similarity index 100%
rename from engine/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutor.java
rename to modules/ui/web/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutor.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactoryTest.java b/modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactoryTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactoryTest.java
rename to modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactoryTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutorTest.java b/modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutorTest.java
rename to modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutorTest.java b/modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutorTest.java
rename to modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutorTest.java b/modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutorTest.java
rename to modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutorTest.java
diff --git a/engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutorTest.java b/modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutorTest.java
similarity index 100%
rename from engine/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutorTest.java
rename to modules/ui/web/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutorTest.java
diff --git a/pom.xml b/pom.xml
index 01af75a3b..efdc079d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -135,6 +135,7 @@
5.1.2
5.1.0
+ 3.0.0
2.1.3
4.4.0
3.0.0
@@ -325,11 +326,31 @@
testlum-twilio
${project.version}
+
+ com.knubisoft
+ testlum-ui-image
+ ${project.version}
+
+
+ com.knubisoft
+ testlum-ui-configuration
+ ${project.version}
+
com.knubisoft
testlum-ui-util
${project.version}
+
+ com.knubisoft
+ testlum-ui-executor
+ ${project.version}
+
+
+ com.knubisoft
+ testlum-browser-shared
+ ${project.version}
+
com.knubisoft
testlum-variable
@@ -1013,6 +1034,12 @@
${jakarta.xml.bind-api.version}
+
+ jakarta.annotation
+ jakarta.annotation-api
+ ${jakarta.annotation-api.version}
+
+
jakarta.activation
jakarta.activation-api