Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions engine/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,16 +199,6 @@
<artifactId>spring-web</artifactId>
</dependency>

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
</dependency>

<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
</dependency>

<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
Expand Down Expand Up @@ -362,15 +352,6 @@
<artifactId>twilio</artifactId>
</dependency>

<dependency>
<groupId>com.github.romankh3</groupId>
<artifactId>image-comparison</artifactId>
</dependency>

<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
</dependency>

<dependency>
<groupId>org.cornutum.regexp</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
1 change: 0 additions & 1 deletion modules/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

<module>shared-util</module>
<module>repeat-util</module>
<module>ui-util</module>

<module>db-util</module>
<module>api-util</module>
Expand Down
5 changes: 5 additions & 0 deletions modules/shared-util/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@
<artifactId>selenium-java</artifactId>
</dependency>

<dependency>
<groupId>com.github.romankh3</groupId>
<artifactId>image-comparison</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.knubisoft.testlum.testing.framework.util;

import java.util.Optional;

public interface DeviceInfoProvider {

Optional<String> getBrowserInfo(String environment, String alias);

Optional<String> getMobileBrowserDeviceInfo(String environment, String alias);

Optional<String> getNativeDeviceInfo(String environment, String alias);
}
Original file line number Diff line number Diff line change
@@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -113,19 +112,18 @@ private List<String> getUIInfo(final String variation,
}

private void addBrowserInfo(final List<String> 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<String> 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<String> 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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -11,19 +11,19 @@
@Component
public class ScenarioInjectionUtil {

private final GlobalVariationsProvider globalVariationsProvider;
private final VariationsProvider variationsProvider;
private final InjectionService injectionService;

public <T> T injectObject(final T t, final ScenarioContext scenarioContext) {
return injectionService.inject(t, scenarioContext::inject);
}

public <T> T injectObjectVariation(final T t, final Map<String, String> variation) {
return injectionService.inject(t, s -> globalVariationsProvider.getValue(s, variation));
return injectionService.inject(t, s -> variationsProvider.getValue(s, variation));
}

public <T> T injectObjectVariation(final T t, final Map<String, String> variation, final ScenarioContext ctx) {
return injectionService.inject(t, s -> globalVariationsProvider.getValue(s, variation, ctx));
return injectionService.inject(t, s -> variationsProvider.getValue(s, variation, ctx));
}

}
Original file line number Diff line number Diff line change
@@ -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);
}
Original file line number Diff line number Diff line change
@@ -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<String, String> variationMap);

String getValue(String variation, Map<String, String> variationMap, ScenarioContext scenarioContext);
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,7 @@
class LogUtilTest {

@Mock
private BrowserUtil browserUtil;

@Mock
private MobileUtil mobileUtil;
private DeviceInfoProvider deviceInfoProvider;

@Mock
private StringPrettifier stringPrettifier;
Expand Down Expand Up @@ -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));
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -22,7 +22,7 @@
class ScenarioInjectionUtilTest {

@Mock
private GlobalVariationsProvider globalVariationsProvider;
private VariationsProvider variationsProvider;

@Mock
private InjectionService injectionService;
Expand Down Expand Up @@ -79,7 +79,7 @@ void injectObjectVariationWithTwoArgsDelegatesToGlobalVariationsProvider() {
void injectObjectVariationWithTwoArgsUsesGetValue() {
String input = "test";
Map<String, String> variation = Map.of("key", "value");
when(globalVariationsProvider.getValue("key", variation)).thenReturn("resolved-value");
when(variationsProvider.getValue("key", variation)).thenReturn("resolved-value");
ArgumentCaptor<Function<String, String>> captor = ArgumentCaptor.forClass(Function.class);
when(injectionService.inject(eq(input), captor.capture())).thenReturn(input);

Expand All @@ -88,7 +88,7 @@ void injectObjectVariationWithTwoArgsUsesGetValue() {
Function<String, String> operator = captor.getValue();
String result = operator.apply("key");
assertEquals("resolved-value", result);
verify(globalVariationsProvider).getValue("key", variation);
verify(variationsProvider).getValue("key", variation);
}

@Test
Expand All @@ -109,7 +109,7 @@ void injectObjectVariationWithThreeArgsDelegatesToGlobalVariationsProvider() {
void injectObjectVariationWithThreeArgsUsesGetValueWithContext() {
String input = "test";
Map<String, String> variation = Map.of("key", "value");
when(globalVariationsProvider.getValue("key", variation, scenarioContext)).thenReturn("ctx-resolved");
when(variationsProvider.getValue("key", variation, scenarioContext)).thenReturn("ctx-resolved");
ArgumentCaptor<Function<String, String>> captor = ArgumentCaptor.forClass(Function.class);
when(injectionService.inject(eq(input), captor.capture())).thenReturn(input);

Expand All @@ -118,6 +118,6 @@ void injectObjectVariationWithThreeArgsUsesGetValueWithContext() {
Function<String, String> operator = captor.getValue();
String result = operator.apply("key");
assertEquals("ctx-resolved", result);
verify(globalVariationsProvider).getValue("key", variation, scenarioContext);
verify(variationsProvider).getValue("key", variation, scenarioContext);
}
}
57 changes: 57 additions & 0 deletions modules/ui/browser-shared/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.knubisoft</groupId>
<artifactId>testlum-ui</artifactId>
<version>1.0.2</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>testlum-browser-shared</artifactId>

<dependencies>
<dependency>
<groupId>com.knubisoft</groupId>
<artifactId>testlum-ui-executor</artifactId>
</dependency>

<dependency>
<groupId>com.knubisoft</groupId>
<artifactId>testlum-wait-util</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
26 changes: 25 additions & 1 deletion modules/ui/mobilebrowser/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,37 @@
<dependencies>
<dependency>
<groupId>com.knubisoft</groupId>
<artifactId>testlum-ui-util</artifactId>
<artifactId>testlum-browser-shared</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Loading
Loading