diff --git a/.github/workflows/release-maven-central.yml b/.github/workflows/release-maven-central.yml
index ff3dca3..9f21c1b 100644
--- a/.github/workflows/release-maven-central.yml
+++ b/.github/workflows/release-maven-central.yml
@@ -20,7 +20,7 @@ jobs:
with:
java-version: "11"
distribution: "adopt"
- server-id: ossrh
+ server-id: central
server-username: MVN_CENTRAL_USERNAME
server-password: MVN_CENTRAL_PASSWORD
gpg-private-key: ${{ secrets.GPG_SECRET_KEY }}
@@ -54,7 +54,12 @@ jobs:
- name: Step 6 - Publish package
run: |
- mvn -Dmaven.test.skip=true -P release -Drevision=${{ steps.gitversion.outputs.semVer }} deploy
+ mvn -B --no-transfer-progress \
+ versions:set \
+ -DnewVersion=${{ steps.gitversion.outputs.semVer }} \
+ -DgenerateBackupPoms=false \
+ -DprocessAllModules
+ mvn -B --no-transfer-progress -Dmaven.test.skip=true deploy
env:
MVN_CENTRAL_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MVN_CENTRAL_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 92a53b4..9964784 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -9,32 +9,55 @@ jobs:
displayName: Analyse code with SonarQube
steps:
+ - task: SonarCloudPrepare@3
+ displayName: 'Prepare SonarCloud analysis'
+ inputs:
+ SonarCloud: 'SonarCloud'
+ organization: 'aqualityautomation'
+ scannerMode: 'CLI'
+ configMode: 'file'
+ extraProperties: 'sonar.coverage.exclusions=**/**'
- - task: Maven@3
- displayName: 'Build project'
- inputs:
- mavenPomFile: 'pom.xml'
- mavenOptions: '-Xmx3072m'
- javaHomeOption: 'JDKVersion'
- jdkVersionOption: '11'
- jdkArchitectureOption: 'x64'
- publishJUnitResults: true
- testResultsFiles: '**/surefire-reports/TEST-*.xml'
- goals: 'clean'
+ - task: Maven@4
+ displayName: 'Build project'
+ inputs:
+ mavenPomFile: 'pom.xml'
+ goals: 'clean'
+ publishJUnitResults: true
+ testResultsFiles: '**/surefire-reports/TEST-*.xml'
+ javaHomeOption: 'JDKVersion'
+ jdkVersionOption: '1.11'
+ mavenVersionOption: 'Default'
+ mavenAuthenticateFeed: false
+ effectivePomSkip: false
+ sonarQubeRunAnalysis: false
+
+ - task: SonarCloudAnalyze@3
+ inputs:
+ jdkversion: 'JAVA_HOME_21_X64'
+ displayName: 'Run SonarCloud code analysis'
+ continueOnError: true
+
+ - task: SonarCloudPublish@3
+ displayName: 'Publish SonarCloud quality gate results'
+ inputs:
+ pollingTimeoutSec: '300'
- job: tests
displayName: Run tests
steps:
- - task: Maven@3
+ - task: Maven@4
displayName: 'Run tests'
inputs:
mavenPomFile: 'pom.xml'
- mavenOptions: '-Xmx3072m'
- javaHomeOption: 'JDKVersion'
- jdkVersionOption: '11'
- jdkArchitectureOption: 'x64'
+ goals: 'clean test -Dprofile=local'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
- goals: 'test -Dprofile=local'
+ javaHomeOption: 'JDKVersion'
+ jdkVersionOption: '1.11'
+ mavenVersionOption: 'Default'
+ mavenAuthenticateFeed: false
+ effectivePomSkip: false
+ sonarQubeRunAnalysis: false
diff --git a/pom.xml b/pom.xml
index 246c0eb..27823e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.aquality-automation
aquality-selenium
- ${revision}
+ 4.0.0
jar
Aquality Selenium
Library around Selenium WebDriver
@@ -15,20 +15,8 @@
UTF-8
UTF-8
- 4.0.0-SNAPSHOT
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
scm:git:git@github.com:aquality-automation/aquality-selenium-java.git
scm:git:git@github.com:aquality-automation/aquality-selenium-java.git
@@ -82,12 +70,12 @@
com.github.aquality-automation
aquality-selenium-core
- 4.6.0
+ 4.7.0
org.apache.commons
commons-lang3
- 3.17.0
+ 3.18.0
com.fasterxml.jackson.core
@@ -97,7 +85,7 @@
org.slf4j
slf4j-simple
- 2.0.16
+ 2.0.17
test
@@ -119,7 +107,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.13.0
+ 3.14.0
11
11
@@ -128,7 +116,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.12
+ 0.8.13
pre-unit-test
@@ -156,7 +144,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.2
+ 3.5.3
${surefireArgLine} -Dfile.encoding=UTF-8
false
@@ -168,6 +156,7 @@
org.apache.maven.plugins
maven-assembly-plugin
+ 3.7.1
@@ -198,7 +187,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.1
+ 3.11.2
11
@@ -214,7 +203,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 3.2.7
+ 3.2.8
sign-artifacts
@@ -232,16 +221,21 @@
- org.sonatype.plugins
- nexus-staging-maven-plugin
- 1.7.0
+ org.sonatype.central
+ central-publishing-maven-plugin
+ 0.8.0
true
- ossrh
- https://s01.oss.sonatype.org/
- true
+ central
+ true
+ published
+
+ org.codehaus.mojo
+ versions-maven-plugin
+ 2.18.0
+
diff --git a/src/main/java/aquality/selenium/browser/devtools/DevToolsHandling.java b/src/main/java/aquality/selenium/browser/devtools/DevToolsHandling.java
index 87cc5b3..53c0eff 100644
--- a/src/main/java/aquality/selenium/browser/devtools/DevToolsHandling.java
+++ b/src/main/java/aquality/selenium/browser/devtools/DevToolsHandling.java
@@ -9,8 +9,8 @@
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.Event;
import org.openqa.selenium.devtools.HasDevTools;
-import org.openqa.selenium.devtools.v137.performance.Performance;
-import org.openqa.selenium.devtools.v137.performance.model.Metric;
+import org.openqa.selenium.devtools.v138.performance.Performance;
+import org.openqa.selenium.devtools.v138.performance.model.Metric;
import java.util.List;
import java.util.Map;
diff --git a/src/main/java/aquality/selenium/browser/devtools/EmulationHandling.java b/src/main/java/aquality/selenium/browser/devtools/EmulationHandling.java
index 93f4982..11ea117 100644
--- a/src/main/java/aquality/selenium/browser/devtools/EmulationHandling.java
+++ b/src/main/java/aquality/selenium/browser/devtools/EmulationHandling.java
@@ -2,10 +2,10 @@
import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.devtools.Command;
-import org.openqa.selenium.devtools.v137.dom.model.RGBA;
-import org.openqa.selenium.devtools.v137.emulation.Emulation;
-import org.openqa.selenium.devtools.v137.emulation.model.MediaFeature;
-import org.openqa.selenium.devtools.v137.emulation.model.ScreenOrientation;
+import org.openqa.selenium.devtools.v138.dom.model.RGBA;
+import org.openqa.selenium.devtools.v138.emulation.Emulation;
+import org.openqa.selenium.devtools.v138.emulation.model.MediaFeature;
+import org.openqa.selenium.devtools.v138.emulation.model.ScreenOrientation;
import java.util.Collections;
import java.util.List;
diff --git a/src/main/java/aquality/selenium/browser/devtools/JavaScriptHandling.java b/src/main/java/aquality/selenium/browser/devtools/JavaScriptHandling.java
index 6e72d15..cb4acd4 100644
--- a/src/main/java/aquality/selenium/browser/devtools/JavaScriptHandling.java
+++ b/src/main/java/aquality/selenium/browser/devtools/JavaScriptHandling.java
@@ -12,9 +12,9 @@
import org.openqa.selenium.devtools.idealized.Javascript;
import org.openqa.selenium.devtools.idealized.ScriptId;
import org.openqa.selenium.devtools.idealized.target.model.SessionID;
-import org.openqa.selenium.devtools.v137.page.Page;
-import org.openqa.selenium.devtools.v137.page.model.ScriptIdentifier;
-import org.openqa.selenium.devtools.v137.runtime.Runtime;
+import org.openqa.selenium.devtools.v138.page.Page;
+import org.openqa.selenium.devtools.v138.page.model.ScriptIdentifier;
+import org.openqa.selenium.devtools.v138.runtime.Runtime;
import org.openqa.selenium.logging.EventType;
import org.openqa.selenium.logging.HasLogEvents;
import org.openqa.selenium.remote.Augmenter;
diff --git a/src/main/java/aquality/selenium/browser/devtools/NetworkHandling.java b/src/main/java/aquality/selenium/browser/devtools/NetworkHandling.java
index 4ab8381..ae29061 100644
--- a/src/main/java/aquality/selenium/browser/devtools/NetworkHandling.java
+++ b/src/main/java/aquality/selenium/browser/devtools/NetworkHandling.java
@@ -8,7 +8,7 @@
import org.openqa.selenium.UsernameAndPassword;
import org.openqa.selenium.devtools.NetworkInterceptor;
import org.openqa.selenium.devtools.idealized.Network;
-import org.openqa.selenium.devtools.v137.network.model.*;
+import org.openqa.selenium.devtools.v138.network.model.*;
import org.openqa.selenium.remote.http.*;
import java.net.URI;
@@ -22,11 +22,11 @@
import static aquality.selenium.browser.AqualityServices.getBrowser;
import static aquality.selenium.logging.LocalizedLoggerUtility.logByLevel;
-import static org.openqa.selenium.devtools.v137.network.Network.*;
+import static org.openqa.selenium.devtools.v138.network.Network.*;
/**
* DevTools commands for version-independent network interception.
- * For more information, see {@link org.openqa.selenium.devtools.v137.network.Network} and {@link Network}.
+ * For more information, see {@link org.openqa.selenium.devtools.v138.network.Network} and {@link Network}.
*/
public class NetworkHandling {
public static final String LOC_NETWORK_INTERCEPTOR_START = "loc.browser.network.interceptor.start";
@@ -129,7 +129,7 @@ public void interceptTrafficWith(Filter filter) {
*/
public void addRequestListener(Consumer listener) {
logger.info("loc.browser.network.event.requestsent.add");
- tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty()));
+ tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()));
tools.addListener(requestWillBeSent(), listener);
}
@@ -139,7 +139,7 @@ public void addRequestListener(Consumer listener) {
*/
public void addResponseListener(Consumer listener) {
logger.info("loc.browser.network.event.responsereceived.add");
- tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty()));
+ tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()));
tools.addListener(responseReceived(), listener);
}
@@ -179,7 +179,7 @@ private Consumer getRequestLogger(HttpExchangeLoggingOptions
if (loggingOptions.getRequestPostData().isEnabled() && request.getHasPostData().orElse(false)) {
logByLevel(loggingOptions.getRequestPostData().getLogLevel(),
"loc.browser.network.event.requestsent.log.data",
- request.getPostData().orElse(null));
+ request.getPostDataEntries().orElse(null));
}
};
}
@@ -199,7 +199,7 @@ private Consumer getResponseLogger(HttpExchangeLoggingOptions
formatHeaders(response.getHeaders()));
}
if (loggingOptions.getResponseBody().isEnabled()) {
- String responseBody = tools.sendCommand(org.openqa.selenium.devtools.v137.network.Network.getResponseBody(requestId)).getBody();
+ String responseBody = tools.sendCommand(org.openqa.selenium.devtools.v138.network.Network.getResponseBody(requestId)).getBody();
if (StringUtils.isNotEmpty(responseBody)) {
logByLevel(loggingOptions.getResponseBody().getLogLevel(),
"loc.browser.network.event.responsereceived.log.body",
@@ -322,7 +322,7 @@ public void clearNetworkInterceptor() {
* @param uploadThroughput Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.
*/
public void emulateConditions(Boolean offline, Number latency, Number downloadThroughput, Number uploadThroughput) {
- tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty()));
+ tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()));
tools.sendCommand(emulateNetworkConditions(offline, latency, downloadThroughput, uploadThroughput, Optional.empty(),
Optional.empty(), Optional.empty(), Optional.empty()));
}
@@ -338,7 +338,7 @@ public void emulateConditions(Boolean offline, Number latency, Number downloadTh
* "wifi", "wimax", "other".
*/
public void emulateConditions(Boolean offline, Number latency, Number downloadThroughput, Number uploadThroughput, String connectionType) {
- tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty()));
+ tools.sendCommand(enable(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()));
tools.sendCommand(emulateNetworkConditions(offline, latency, downloadThroughput, uploadThroughput,
Optional.of(ConnectionType.fromString(connectionType)), Optional.empty(), Optional.empty(), Optional.empty()));
}
diff --git a/src/test/java/manytools/ManyToolsForm.java b/src/test/java/manytools/ManyToolsForm.java
index 7b055a6..67e4dc8 100644
--- a/src/test/java/manytools/ManyToolsForm.java
+++ b/src/test/java/manytools/ManyToolsForm.java
@@ -25,12 +25,6 @@ protected ManyToolsForm(String name) {
public T open() {
AqualityServices.get(IActionRetrier.class).doWithRetry(() -> {
AqualityServices.getBrowser().goTo(BASE_URL + getUrlPart());
- AqualityServices.getBrowser().waitForPageToLoad();
- if (btnAgree.state().isDisplayed())
- {
- btnAgree.click();
- btnAgree.state().waitForNotDisplayed();
- }
}, Collections.singletonList(TimeoutException.class));
return (T) this;
}
diff --git a/src/test/java/tests/usecases/devtools/DeviceEmulationTest.java b/src/test/java/tests/usecases/devtools/DeviceEmulationTest.java
index e8dda34..789e796 100644
--- a/src/test/java/tests/usecases/devtools/DeviceEmulationTest.java
+++ b/src/test/java/tests/usecases/devtools/DeviceEmulationTest.java
@@ -3,8 +3,8 @@
import aquality.selenium.browser.AqualityServices;
import aquality.selenium.browser.devtools.EmulationHandling;
import com.google.common.collect.ImmutableMap;
-import org.openqa.selenium.devtools.v137.emulation.Emulation;
-import org.openqa.selenium.devtools.v137.emulation.model.DisplayFeature;
+import org.openqa.selenium.devtools.v138.emulation.Emulation;
+import org.openqa.selenium.devtools.v138.emulation.model.DisplayFeature;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
diff --git a/src/test/java/tests/usecases/devtools/NetworkInterceptionTests.java b/src/test/java/tests/usecases/devtools/NetworkInterceptionTests.java
index 81134ee..15f8eae 100644
--- a/src/test/java/tests/usecases/devtools/NetworkInterceptionTests.java
+++ b/src/test/java/tests/usecases/devtools/NetworkInterceptionTests.java
@@ -5,6 +5,7 @@
import com.google.common.net.MediaType;
import manytools.RequestHeadersForm;
import org.openqa.selenium.devtools.NetworkInterceptor;
+import org.openqa.selenium.remote.http.Contents;
import org.openqa.selenium.remote.http.HttpHandler;
import org.openqa.selenium.remote.http.HttpRequest;
import org.openqa.selenium.remote.http.HttpResponse;
@@ -15,7 +16,6 @@
import theinternet.TheInternetPage;
import theinternet.forms.WelcomeForm;
-import java.io.ByteArrayInputStream;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
@@ -87,7 +87,7 @@ public void testAddAndClearRequestHandler()
final String somePhrase = "delicious cheese!";
NetworkInterceptor networkInterceptor = network().addRequestHandler(request -> true, request -> {
HttpResponse response = new HttpResponse();
- response.setContent(() -> new ByteArrayInputStream(somePhrase.getBytes()));
+ response.setContent(Contents.utf8String(somePhrase));
response.setStatus(200);
return response;
});
@@ -106,7 +106,7 @@ public void testAddAndClearResponseHandler()
final String somePhrase = "delicious cheese!";
NetworkInterceptor networkInterceptor = network().addResponseHandler(response -> true, oldResponse -> {
HttpResponse response = new HttpResponse();
- response.setContent(() -> new ByteArrayInputStream(somePhrase.getBytes()));
+ response.setContent(Contents.utf8String(somePhrase));
response.setStatus(200);
return response;
});
diff --git a/src/test/java/tests/usecases/devtools/NetworkSpeedEmulationTest.java b/src/test/java/tests/usecases/devtools/NetworkSpeedEmulationTest.java
index 2238d60..5e8f708 100644
--- a/src/test/java/tests/usecases/devtools/NetworkSpeedEmulationTest.java
+++ b/src/test/java/tests/usecases/devtools/NetworkSpeedEmulationTest.java
@@ -2,7 +2,7 @@
import aquality.selenium.browser.AqualityServices;
import org.openqa.selenium.TimeoutException;
-import org.openqa.selenium.devtools.v137.network.model.ConnectionType;
+import org.openqa.selenium.devtools.v138.network.model.ConnectionType;
import org.testng.Assert;
import org.testng.annotations.Test;
import tests.BaseTest;
diff --git a/src/test/java/tests/usecases/devtools/OverrideUserAgentTest.java b/src/test/java/tests/usecases/devtools/OverrideUserAgentTest.java
index 1732528..567aa5f 100644
--- a/src/test/java/tests/usecases/devtools/OverrideUserAgentTest.java
+++ b/src/test/java/tests/usecases/devtools/OverrideUserAgentTest.java
@@ -8,7 +8,7 @@
import manytools.BrowserLanguageForm;
import manytools.UserAgentForm;
import org.openqa.selenium.devtools.idealized.Network;
-import org.openqa.selenium.devtools.v137.emulation.Emulation;
+import org.openqa.selenium.devtools.v138.emulation.Emulation;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
diff --git a/src/test/resources/settings.json b/src/test/resources/settings.json
index 966eaf2..0fa95de 100644
--- a/src/test/resources/settings.json
+++ b/src/test/resources/settings.json
@@ -19,6 +19,7 @@
"loggingPreferences": {
"Performance": "All"
},
+ "pageLoadStrategy": "normal",
"startArguments": ["--disable-search-engine-choice-screen"],
"excludedArguments": ["enable-automation"]
},
diff --git a/src/test/resources/settings.local.json b/src/test/resources/settings.local.json
index cddfee0..8b8f823 100644
--- a/src/test/resources/settings.local.json
+++ b/src/test/resources/settings.local.json
@@ -19,7 +19,9 @@
"loggingPreferences": {
"Performance": "All"
},
- "startArguments": []
+ "pageLoadStrategy": "normal",
+ "startArguments": ["--disable-search-engine-choice-screen"],
+ "excludedArguments": ["enable-automation"]
},
"firefox": {
"capabilities": {
@@ -52,11 +54,11 @@
},
"timeouts": {
"timeoutImplicit" : 0,
- "timeoutCondition" : 30,
+ "timeoutCondition" : 45,
"timeoutScript" : 10,
"timeoutPageLoad" : 60,
"timeoutPollingInterval": 300,
- "timeoutCommand": 120
+ "timeoutCommand": 60
},
"retry": {
"number": 2,