From 02cacff3aa76e30027f988433d5bb52a2697ae1a Mon Sep 17 00:00:00 2001 From: Bohdan Shakhov Date: Thu, 16 Apr 2026 11:08:10 +0300 Subject: [PATCH] Extract UI testing to separate modules from engine --- engine/pom.xml | 19 ----- .../framework/locator/LocatorCollector.java | 2 +- .../variations/GlobalVariationsProvider.java | 2 +- modules/pom.xml | 1 - modules/shared-util/pom.xml | 5 ++ .../framework/scenario/ScenarioArguments.java | 0 .../testing/framework/util/ConditionUtil.java | 0 .../framework/util/DeviceInfoProvider.java | 12 +++ .../framework/util/JsScriptExecutor.java | 8 ++ .../testing/framework/util/LogUtil.java | 16 ++-- .../testing/framework/util/ResultUtil.java | 0 .../framework/util/ScenarioInjectionUtil.java | 8 +- .../framework/util/ScreenshotHandler.java | 10 +++ .../variations/VariationsProvider.java | 12 +++ .../scenario/ScenarioArgumentsTest.java | 0 .../framework/util/ConditionUtilTest.java | 0 .../testing/framework/util/LogUtilTest.java | 11 +-- .../framework/util/ResultUtilTest.java | 0 .../util/ScenarioInjectionUtilTest.java | 12 +-- modules/ui/browser-shared/pom.xml | 57 +++++++++++++ .../lib/ui/executor/BrowserTabExecutor.java | 0 .../lib/ui/executor/DragAndDropExecutor.java | 0 .../lib/ui/executor/DropDownExecutor.java | 0 .../lib/ui/executor/HoverExecutor.java | 0 .../lib/ui/executor/JavascriptExecutor.java | 0 .../lib/ui/executor/NavigateExecutor.java | 0 .../lib/ui/executor/ScrollToWebExecutor.java | 0 .../lib/ui/executor/ScrollWebExecutor.java | 0 .../ui/executor/SwitchToFrameWebExecutor.java | 0 .../lib/ui/executor/WaitExecutor.java | 0 .../lib/ui/executor/WebVariableExecutor.java | 0 .../framework/util/InnerScrollScript.java | 0 .../framework/util/PageScrollScript.java | 0 .../ui/executor/BrowserTabExecutorTest.java | 0 .../ui/executor/DragAndDropExecutorTest.java | 0 .../lib/ui/executor/DropDownExecutorTest.java | 0 .../lib/ui/executor/HoverExecutorTest.java | 0 .../lib/ui/executor/JsExecutorTest.java | 0 .../lib/ui/executor/NavigateExecutorTest.java | 0 .../ui/executor/ScrollToWebExecutorTest.java | 0 .../ui/executor/ScrollWebExecutorTest.java | 0 .../SwitchToFrameWebExecutorTest.java | 0 .../lib/ui/executor/WaitExecutorTest.java | 0 .../ui/executor/WebVariableExecutorTest.java | 0 .../framework/util/InnerScrollScriptTest.java | 0 .../framework/util/PageScrollScriptTest.java | 0 modules/ui/mobilebrowser/pom.xml | 26 +++++- .../ui/MobileBrowserDriverFactory.java | 0 .../executor/MobileBrowserRepeatExecutor.java | 0 .../executor/MobileCompareImageExecutor.java | 0 .../ui/MobileBrowserDriverFactoryTest.java | 0 .../MobileBrowserRepeatExecutorTest.java | 0 .../MobileCompareImageExecutorTest.java | 0 modules/ui/native/pom.xml | 31 ++++++- .../configuration/ui/NativeDriverFactory.java | 0 .../executor/DragAndDropNativeExecutor.java | 0 .../lib/ui/executor/NativeAssertExecutor.java | 0 .../executor/NativeCompareImageExecutor.java | 0 .../lib/ui/executor/NativeRepeatExecutor.java | 0 .../ui/executor/NativeVariableExecutor.java | 0 .../ui/executor/NavigateNativeExecutor.java | 0 .../lib/ui/executor/RefreshExecutor.java | 0 .../lib/ui/executor/SwipeNativeExecutor.java | 0 .../lib/ui/executor/WaitNativeExecutor.java | 0 .../lib/ui/executor/WebViewExecutor.java | 0 .../ui/NativeDriverFactoryTest.java | 0 .../DragAndDropNativeExecutorTest.java | 0 .../ui/executor/NativeAssertExecutorTest.java | 0 .../NativeCompareImageExecutorTest.java | 0 .../ui/executor/NativeRepeatExecutorTest.java | 0 .../executor/NativeVariableExecutorTest.java | 0 .../executor/NavigateNativeExecutorTest.java | 0 .../lib/ui/executor/RefreshExecutorTest.java | 0 .../ui/executor/SwipeNativeExecutorTest.java | 0 .../ui/executor/WaitNativeExecutorTest.java | 0 .../lib/ui/executor/WebViewExecutorTest.java | 0 modules/ui/pom.xml | 5 ++ .../{ui-util => ui/ui-configuration}/pom.xml | 22 ++++- .../testing/framework/EnvironmentLoader.java | 0 .../testing/framework/util/BrowserUtil.java | 0 .../testing/framework/util/ConfigUtil.java | 0 .../util/DeviceInfoProviderImpl.java | 32 +++++++ .../testing/framework/util/MobileUtil.java | 0 .../framework/util/SeleniumDriverUtil.java | 0 .../framework/EnvironmentLoaderTest.java | 0 .../framework/util/BrowserUtilTest.java | 0 .../framework/util/ConfigUtilTest.java | 0 .../framework/util/MobileUtilTest.java | 0 .../util/SeleniumDriverUtilTest.java | 0 modules/ui/ui-executor/pom.xml | 84 +++++++++++++++++++ .../lib/AbstractUiInterpreter.java | 0 .../interpreter/lib/SubCommandRunner.java | 0 .../interpreter/lib/SubCommandRunnerImpl.java | 0 .../lib/ui/AbstractUiExecutor.java | 0 .../lib/ui/CommandToExecutorClassMap.java | 0 .../interpreter/lib/ui/ExecutorForClass.java | 0 .../interpreter/lib/ui/ExecutorProvider.java | 0 .../interpreter/lib/ui/ExecutorScanner.java | 0 .../interpreter/lib/ui/MockDriver.java | 0 .../ui/executor/AbstractRepeatExecutor.java | 0 .../ui/executor/AbstractVariableExecutor.java | 0 .../lib/ui/executor/AssertEqualityHelper.java | 0 .../lib/ui/executor/AssertExecutor.java | 0 .../lib/ui/executor/ClearExecutor.java | 0 .../lib/ui/executor/ClickExecutor.java | 0 .../lib/ui/executor/InputExecutor.java | 0 .../lib/ui/executor/UiConditionExecutor.java | 0 .../lib/SubCommandRunnerImplTest.java | 0 .../lib/ui/CommandToExecutorClassMapTest.java | 0 .../lib/ui/ExecutorForClassTest.java | 0 .../lib/ui/ExecutorProviderTest.java | 0 .../lib/ui/ExecutorScannerTest.java | 0 .../interpreter/lib/ui/MockDriverTest.java | 0 .../interpreter/lib/ui/UiExecutorTest.java | 0 .../ui/executor/AssertEqualityHelperTest.java | 0 .../lib/ui/executor/AssertExecutorTest.java | 0 .../lib/ui/executor/ClearExecutorTest.java | 0 .../lib/ui/executor/ClickExecutorTest.java | 0 .../lib/ui/executor/InputExecutorTest.java | 0 .../ui/executor/UiConditionExecutorTest.java | 0 modules/ui/ui-image/pom.xml | 57 +++++++++++++ .../framework/util/ImageComparator.java | 0 .../framework/util/ImageComparisonUtil.java | 10 +-- .../framework/util/ImageCompressor.java | 38 +++------ .../framework/util/ImageComparatorTest.java | 0 .../util/ImageComparisonUtilTest.java | 14 ++-- .../framework/util/ImageCompressorTest.java | 13 ++- modules/ui/ui-util/pom.xml | 61 ++++++++++++++ .../constant/JavascriptConstant.java | 0 .../lib/ui/ExecutorDependencies.java | 0 .../framework/interpreter/lib/ui/UiType.java | 0 .../framework/locator/LocatorProvider.java | 8 ++ .../testing/framework/util/ByService.java | 0 .../framework/util/JavascriptUtil.java | 2 +- .../testing/framework/util/UiUtil.java | 24 ++---- .../framework/util/WebElementFinder.java | 0 .../constant/JavascriptConstantTest.java | 0 .../testing/framework/util/ByServiceTest.java | 0 .../framework/util/JavascriptUtilTest.java | 0 .../testing/framework/util/UiUtilTest.java | 6 +- .../framework/util/WebElementFinderTest.java | 0 modules/ui/web/pom.xml | 31 ++++++- .../configuration/ui/WebDriverFactory.java | 0 .../lib/ui/executor/CompareImageExecutor.java | 0 .../lib/ui/executor/DoubleClickExecutor.java | 0 .../lib/ui/executor/HotKeyExecutor.java | 0 .../lib/ui/executor/WebRepeatExecutor.java | 0 .../ui/WebDriverFactoryTest.java | 0 .../ui/executor/CompareImageExecutorTest.java | 0 .../ui/executor/DoubleClickExecutorTest.java | 0 .../lib/ui/executor/HotKeyExecutorTest.java | 0 .../ui/executor/WebRepeatExecutorTest.java | 0 pom.xml | 27 ++++++ 153 files changed, 545 insertions(+), 121 deletions(-) rename {engine => modules/shared-util}/src/main/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArguments.java (100%) rename {engine => modules/shared-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/ConditionUtil.java (100%) create mode 100644 modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProvider.java create mode 100644 modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/JsScriptExecutor.java rename {engine => modules/shared-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/LogUtil.java (97%) rename {engine => modules/shared-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/ResultUtil.java (100%) rename {engine => modules/shared-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtil.java (67%) create mode 100644 modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/util/ScreenshotHandler.java create mode 100644 modules/shared-util/src/main/java/com/knubisoft/testlum/testing/framework/variations/VariationsProvider.java rename {engine => modules/shared-util}/src/test/java/com/knubisoft/testlum/testing/framework/scenario/ScenarioArgumentsTest.java (100%) rename {engine => modules/shared-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/ConditionUtilTest.java (100%) rename {engine => modules/shared-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/LogUtilTest.java (98%) rename {engine => modules/shared-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/ResultUtilTest.java (100%) rename {engine => modules/shared-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/ScenarioInjectionUtilTest.java (89%) create mode 100644 modules/ui/browser-shared/pom.xml rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JavascriptExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutor.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScript.java (100%) rename {engine => modules/ui/browser-shared}/src/main/java/com/knubisoft/testlum/testing/framework/util/PageScrollScript.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/BrowserTabExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DropDownExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HoverExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/JsExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollToWebExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ScrollWebExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwitchToFrameWebExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebVariableExecutorTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/util/InnerScrollScriptTest.java (100%) rename {engine => modules/ui/browser-shared}/src/test/java/com/knubisoft/testlum/testing/framework/util/PageScrollScriptTest.java (100%) rename {engine => modules/ui/mobilebrowser}/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactory.java (100%) rename {engine => modules/ui/mobilebrowser}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutor.java (100%) rename {engine => modules/ui/mobilebrowser}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutor.java (100%) rename {engine => modules/ui/mobilebrowser}/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/MobileBrowserDriverFactoryTest.java (100%) rename {engine => modules/ui/mobilebrowser}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileBrowserRepeatExecutorTest.java (100%) rename {engine => modules/ui/mobilebrowser}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/MobileCompareImageExecutorTest.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactory.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutor.java (100%) rename {engine => modules/ui/native}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutor.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/NativeDriverFactoryTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DragAndDropNativeExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeAssertExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeCompareImageExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeRepeatExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NativeVariableExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/NavigateNativeExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/RefreshExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/SwipeNativeExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WaitNativeExecutorTest.java (100%) rename {engine => modules/ui/native}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebViewExecutorTest.java (100%) rename modules/{ui-util => ui/ui-configuration}/pom.xml (56%) rename {engine => modules/ui/ui-configuration}/src/main/java/com/knubisoft/testlum/testing/framework/EnvironmentLoader.java (100%) rename {engine => modules/ui/ui-configuration}/src/main/java/com/knubisoft/testlum/testing/framework/util/BrowserUtil.java (100%) rename {engine => modules/ui/ui-configuration}/src/main/java/com/knubisoft/testlum/testing/framework/util/ConfigUtil.java (100%) create mode 100644 modules/ui/ui-configuration/src/main/java/com/knubisoft/testlum/testing/framework/util/DeviceInfoProviderImpl.java rename {engine => modules/ui/ui-configuration}/src/main/java/com/knubisoft/testlum/testing/framework/util/MobileUtil.java (100%) rename {engine => modules/ui/ui-configuration}/src/main/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtil.java (100%) rename {engine => modules/ui/ui-configuration}/src/test/java/com/knubisoft/testlum/testing/framework/EnvironmentLoaderTest.java (100%) rename {engine => modules/ui/ui-configuration}/src/test/java/com/knubisoft/testlum/testing/framework/util/BrowserUtilTest.java (100%) rename {engine => modules/ui/ui-configuration}/src/test/java/com/knubisoft/testlum/testing/framework/util/ConfigUtilTest.java (100%) rename {engine => modules/ui/ui-configuration}/src/test/java/com/knubisoft/testlum/testing/framework/util/MobileUtilTest.java (100%) rename {engine => modules/ui/ui-configuration}/src/test/java/com/knubisoft/testlum/testing/framework/util/SeleniumDriverUtilTest.java (100%) create mode 100644 modules/ui/ui-executor/pom.xml rename modules/{ui-util => ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/AbstractUiInterpreter.java (100%) rename modules/{ui-util => ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunner.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImpl.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/AbstractUiExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMap.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClass.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProvider.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScanner.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriver.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractRepeatExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AbstractVariableExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelper.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutor.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/SubCommandRunnerImplTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/CommandToExecutorClassMapTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorForClassTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorProviderTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorScannerTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/MockDriverTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiExecutorTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertEqualityHelperTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/AssertExecutorTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClearExecutorTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/ClickExecutorTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/InputExecutorTest.java (100%) rename {engine => modules/ui/ui-executor}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/UiConditionExecutorTest.java (100%) create mode 100644 modules/ui/ui-image/pom.xml rename {engine => modules/ui/ui-image}/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparator.java (100%) rename {engine => modules/ui/ui-image}/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtil.java (93%) rename {engine => modules/ui/ui-image}/src/main/java/com/knubisoft/testlum/testing/framework/util/ImageCompressor.java (54%) rename {engine => modules/ui/ui-image}/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparatorTest.java (100%) rename {engine => modules/ui/ui-image}/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageComparisonUtilTest.java (94%) rename {engine => modules/ui/ui-image}/src/test/java/com/knubisoft/testlum/testing/framework/util/ImageCompressorTest.java (81%) create mode 100644 modules/ui/ui-util/pom.xml rename {engine => modules/ui/ui-util}/src/main/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstant.java (100%) rename modules/{ => ui}/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/ExecutorDependencies.java (100%) rename modules/{ => ui}/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/UiType.java (100%) create mode 100644 modules/ui/ui-util/src/main/java/com/knubisoft/testlum/testing/framework/locator/LocatorProvider.java rename {engine => modules/ui/ui-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/ByService.java (100%) rename {engine => modules/ui/ui-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtil.java (95%) rename {engine => modules/ui/ui-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/UiUtil.java (94%) rename {engine => modules/ui/ui-util}/src/main/java/com/knubisoft/testlum/testing/framework/util/WebElementFinder.java (100%) rename {engine => modules/ui/ui-util}/src/test/java/com/knubisoft/testlum/testing/framework/constant/JavascriptConstantTest.java (100%) rename {engine => modules/ui/ui-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/ByServiceTest.java (100%) rename {engine => modules/ui/ui-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/JavascriptUtilTest.java (100%) rename {engine => modules/ui/ui-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/UiUtilTest.java (99%) rename {engine => modules/ui/ui-util}/src/test/java/com/knubisoft/testlum/testing/framework/util/WebElementFinderTest.java (100%) rename {engine => modules/ui/web}/src/main/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactory.java (100%) rename {engine => modules/ui/web}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutor.java (100%) rename {engine => modules/ui/web}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutor.java (100%) rename {engine => modules/ui/web}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutor.java (100%) rename {engine => modules/ui/web}/src/main/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutor.java (100%) rename {engine => modules/ui/web}/src/test/java/com/knubisoft/testlum/testing/framework/configuration/ui/WebDriverFactoryTest.java (100%) rename {engine => modules/ui/web}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/CompareImageExecutorTest.java (100%) rename {engine => modules/ui/web}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/DoubleClickExecutorTest.java (100%) rename {engine => modules/ui/web}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/HotKeyExecutorTest.java (100%) rename {engine => modules/ui/web}/src/test/java/com/knubisoft/testlum/testing/framework/interpreter/lib/ui/executor/WebRepeatExecutorTest.java (100%) 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