diff --git a/openvidu-test-browsers/pom.xml b/openvidu-test-browsers/pom.xml
new file mode 100644
index 00000000..b81f6211
--- /dev/null
+++ b/openvidu-test-browsers/pom.xml
@@ -0,0 +1,149 @@
+
+ 4.0.0
+
+
+ io.openvidu
+ openvidu-parent
+ 1.9.0-beta-1
+
+
+ openvidu-test-browsers
+ 1.0.0
+ jar
+
+ OpenVidu Test Browsers
+ Browser wrapper for OpenVidu e2e testing
+ https://openvidu.io
+
+
+
+ Apache 2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+ repo
+
+
+
+
+ OpenVidu
+ https://openvidu.io
+
+
+
+ https://github.com/OpenVidu/openvidu.git
+ scm:git:https://github.com/OpenVidu/openvidu.git
+ scm:git:https://github.com/OpenVidu/openvidu.git
+ develop
+
+
+
+
+ openvidu.io
+ -openvidu.io Community
+ openvidu.io
+ https://openvidu.io
+
+
+
+
+
+ 1.8
+ ${java.version}
+ ${java.version}
+
+
+ UTF-8
+ UTF-8
+
+
+ 5.4.0
+ 1.4.0
+ 3.141.59
+
+
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.26
+
+
+ org.seleniumhq.selenium
+ selenium-java
+ ${org-seleniumhq-selenium.version}
+
+
+ org.seleniumhq.selenium
+ selenium-chrome-driver
+ ${org-seleniumhq-selenium.version}
+
+
+ org.seleniumhq.selenium
+ selenium-firefox-driver
+ ${org-seleniumhq-selenium.version}
+
+
+
+
+
+ default
+
+ true
+
+
+
+
+ release-sign-artifacts
+
+
+ performRelease
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.0.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.8
+ true
+
+ ossrh
+ https://oss.sonatype.org/
+ true
+
+
+
+
+
+
+
+
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/BrowserUser.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/BrowserUser.java
similarity index 70%
rename from openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/BrowserUser.java
rename to openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/BrowserUser.java
index dabde00a..fd3f1b02 100644
--- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/BrowserUser.java
+++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/BrowserUser.java
@@ -15,27 +15,20 @@
*
*/
-package io.openvidu.test.e2e.browser;
+package io.openvidu.test.browsers;
-import static java.lang.invoke.MethodHandles.lookup;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
-import org.slf4j.Logger;
-
-import io.openvidu.test.e2e.OpenViduEventManager;
+import org.slf4j.LoggerFactory;
public class BrowserUser {
- final static Logger log = getLogger(lookup().lookupClass());
+ protected static final org.slf4j.Logger log = LoggerFactory.getLogger(BrowserUser.class);
protected WebDriver driver;
protected WebDriverWait waiter;
protected String clientData;
protected int timeOfWaitInSeconds;
- protected OpenViduEventManager eventManager;
public BrowserUser(String clientData, int timeOfWaitInSeconds) {
this.clientData = clientData;
@@ -50,10 +43,6 @@ public class BrowserUser {
return this.waiter;
}
- public OpenViduEventManager getEventManager() {
- return this.eventManager;
- }
-
public String getClientData() {
return this.clientData;
}
@@ -68,12 +57,10 @@ public class BrowserUser {
protected void configureDriver() {
this.waiter = new WebDriverWait(this.driver, this.timeOfWaitInSeconds);
- this.eventManager = new OpenViduEventManager(this.driver, this.timeOfWaitInSeconds);
- this.driver.manage().window().setSize(new Dimension(1920,1080));
+ this.driver.manage().window().setSize(new org.openqa.selenium.Dimension(1920, 1080));
}
public void dispose() {
- this.eventManager.stopPolling(true);
this.driver.quit();
}
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/ChromeAndroidUser.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/ChromeAndroidUser.java
similarity index 98%
rename from openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/ChromeAndroidUser.java
rename to openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/ChromeAndroidUser.java
index 70fc3c91..20c34885 100644
--- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/ChromeAndroidUser.java
+++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/ChromeAndroidUser.java
@@ -15,7 +15,7 @@
*
*/
-package io.openvidu.test.e2e.browser;
+package io.openvidu.test.browsers;
import java.net.MalformedURLException;
import java.net.URL;
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/ChromeUser.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/ChromeUser.java
similarity index 99%
rename from openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/ChromeUser.java
rename to openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/ChromeUser.java
index 127f4278..36a01e18 100644
--- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/ChromeUser.java
+++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/ChromeUser.java
@@ -15,7 +15,7 @@
*
*/
-package io.openvidu.test.e2e.browser;
+package io.openvidu.test.browsers;
import java.net.MalformedURLException;
import java.net.URL;
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/FirefoxUser.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/FirefoxUser.java
similarity index 98%
rename from openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/FirefoxUser.java
rename to openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/FirefoxUser.java
index 5bc6155c..5616e06d 100644
--- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/FirefoxUser.java
+++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/FirefoxUser.java
@@ -15,7 +15,7 @@
*
*/
-package io.openvidu.test.e2e.browser;
+package io.openvidu.test.browsers;
import java.net.MalformedURLException;
import java.net.URL;
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/OperaUser.java b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/OperaUser.java
similarity index 97%
rename from openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/OperaUser.java
rename to openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/OperaUser.java
index c752687f..ee29fc2d 100644
--- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser/OperaUser.java
+++ b/openvidu-test-browsers/src/main/java/io/openvidu/test/browsers/OperaUser.java
@@ -1,4 +1,4 @@
-package io.openvidu.test.e2e.browser;
+package io.openvidu.test.browsers;
import java.net.MalformedURLException;
import java.net.URL;
diff --git a/openvidu-test-e2e/pom.xml b/openvidu-test-e2e/pom.xml
index 3b01434d..63969238 100644
--- a/openvidu-test-e2e/pom.xml
+++ b/openvidu-test-e2e/pom.xml
@@ -161,6 +161,12 @@
0.2.3
test
+
+ io.openvidu
+ openvidu-test-browsers
+ 1.0.0
+ test
+
io.openvidu
openvidu-java-client
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/MyUser.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/MyUser.java
new file mode 100644
index 00000000..3a7952b1
--- /dev/null
+++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/MyUser.java
@@ -0,0 +1,35 @@
+package io.openvidu.test.e2e;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import io.openvidu.test.browsers.BrowserUser;
+
+public class MyUser {
+
+ BrowserUser browserUser;
+ private OpenViduEventManager eventManager;
+
+ public MyUser(BrowserUser browserUser) {
+ this.browserUser = browserUser;
+ this.eventManager = new OpenViduEventManager(this.browserUser.getDriver(), this.browserUser.getTimeOfWait());
+ }
+
+ public WebDriver getDriver() {
+ return this.browserUser.getDriver();
+ }
+
+ public WebDriverWait getWaiter() {
+ return this.browserUser.getWaiter();
+ }
+
+ public OpenViduEventManager getEventManager() {
+ return this.eventManager;
+ }
+
+ public void dispose() {
+ this.eventManager.stopPolling(true);
+ this.browserUser.dispose();
+ }
+
+}
diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java
index e495aa34..be0fc935 100644
--- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java
+++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java
@@ -95,11 +95,11 @@ import io.openvidu.java.client.RecordingProperties;
import io.openvidu.java.client.Session;
import io.openvidu.java.client.SessionProperties;
import io.openvidu.java.client.TokenOptions;
-import io.openvidu.test.e2e.browser.BrowserUser;
-import io.openvidu.test.e2e.browser.ChromeAndroidUser;
-import io.openvidu.test.e2e.browser.ChromeUser;
-import io.openvidu.test.e2e.browser.FirefoxUser;
-import io.openvidu.test.e2e.browser.OperaUser;
+import io.openvidu.test.browsers.BrowserUser;
+import io.openvidu.test.browsers.ChromeAndroidUser;
+import io.openvidu.test.browsers.ChromeUser;
+import io.openvidu.test.browsers.FirefoxUser;
+import io.openvidu.test.browsers.OperaUser;
import io.openvidu.test.e2e.utils.CommandLineExecutor;
import io.openvidu.test.e2e.utils.CustomHttpClient;
import io.openvidu.test.e2e.utils.MultimediaFileMetadata;
@@ -124,8 +124,8 @@ public class OpenViduTestAppE2eTest {
private static final Logger log = LoggerFactory.getLogger(OpenViduTestAppE2eTest.class);
- BrowserUser user;
- Collection otherUsers = new ArrayList<>();
+ MyUser user;
+ Collection otherUsers = new ArrayList<>();
volatile static boolean isRecordingTest;
volatile static boolean isKurentoRestartTest;
private static OpenVidu OV;
@@ -174,29 +174,33 @@ public class OpenViduTestAppE2eTest {
void setupBrowser(String browser) {
+ BrowserUser browserUser;
+
switch (browser) {
case "chrome":
- this.user = new ChromeUser("TestUser", 50, false);
+ browserUser = new ChromeUser("TestUser", 50, false);
break;
case "firefox":
- this.user = new FirefoxUser("TestUser", 50);
+ browserUser = new FirefoxUser("TestUser", 50);
break;
case "opera":
- this.user = new OperaUser("TestUser", 50);
+ browserUser = new OperaUser("TestUser", 50);
break;
case "chromeAndroid":
- this.user = new ChromeAndroidUser("TestUser", 50);
+ browserUser = new ChromeAndroidUser("TestUser", 50);
break;
case "chromeAlternateScreenShare":
- this.user = new ChromeUser("TestUser", 50, "OpenVidu TestApp", false);
+ browserUser = new ChromeUser("TestUser", 50, "OpenVidu TestApp", false);
break;
case "chromeAsRoot":
- this.user = new ChromeUser("TestUser", 50, true);
+ browserUser = new ChromeUser("TestUser", 50, true);
break;
default:
- this.user = new ChromeUser("TestUser", 50, false);
+ browserUser = new ChromeUser("TestUser", 50, false);
}
+ this.user = new MyUser(browserUser);
+
user.getDriver().get(APP_URL);
WebElement urlInput = user.getDriver().findElement(By.id("openvidu-url"));
@@ -210,7 +214,7 @@ public class OpenViduTestAppE2eTest {
}
void setupChromeWithFakeVideo(Path videoFileLocation) {
- this.user = new ChromeUser("TestUser", 50, videoFileLocation);
+ this.user = new MyUser(new ChromeUser("TestUser", 50, videoFileLocation));
user.getDriver().get(APP_URL);
WebElement urlInput = user.getDriver().findElement(By.id("openvidu-url"));
urlInput.clear();
@@ -226,9 +230,9 @@ public class OpenViduTestAppE2eTest {
if (user != null) {
user.dispose();
}
- Iterator it = otherUsers.iterator();
+ Iterator it = otherUsers.iterator();
while (it.hasNext()) {
- BrowserUser other = it.next();
+ MyUser other = it.next();
other.dispose();
it.remove();
}
@@ -508,7 +512,7 @@ public class OpenViduTestAppE2eTest {
};
Thread t = new Thread(() -> {
- BrowserUser user2 = new FirefoxUser("TestUser", 30);
+ MyUser user2 = new MyUser(new FirefoxUser("TestUser", 30));
otherUsers.add(user2);
user2.getDriver().get(APP_URL);
WebElement urlInput = user2.getDriver().findElement(By.id("openvidu-url"));
@@ -1350,7 +1354,7 @@ public class OpenViduTestAppE2eTest {
};
Thread t = new Thread(() -> {
- BrowserUser user2 = new FirefoxUser("FirefoxUser", 30);
+ MyUser user2 = new MyUser(new FirefoxUser("FirefoxUser", 30));
otherUsers.add(user2);
user2.getDriver().get(APP_URL);
WebElement urlInput = user2.getDriver().findElement(By.id("openvidu-url"));
@@ -1927,7 +1931,7 @@ public class OpenViduTestAppE2eTest {
isRecordingTest = true;
setupBrowser("chromeAlternateScreenShare");
-
+
user.getDriver().manage().window().setSize(new Dimension(1000, 800));
log.info("openvidu-java-client test");
@@ -2754,7 +2758,7 @@ public class OpenViduTestAppE2eTest {
}
}
- private String getBase64Screenshot(BrowserUser user) throws Exception {
+ private String getBase64Screenshot(MyUser user) throws Exception {
String screenshotBase64 = ((TakesScreenshot) user.getDriver()).getScreenshotAs(BASE64);
return "data:image/png;base64," + screenshotBase64;
}
diff --git a/pom.xml b/pom.xml
index 17936e85..fa6bcac9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -199,6 +199,7 @@
openvidu-client
openvidu-test
openvidu-test-e2e
+ openvidu-test-browsers
openvidu-java-client
@@ -209,6 +210,7 @@
openvidu-client
openvidu-test
openvidu-test-e2e
+ openvidu-test-browsers
@@ -289,6 +291,10 @@
io.openvidu
openvidu-test-e2e
+
+ io.openvidu
+ openvidu-test-browsers
+
io.openvidu
openvidu-java-client