From d62f2f31ebc3a34cb880d38a2ce4c80a318424e9 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 25 Mar 2019 09:58:29 +0100 Subject: [PATCH] openvidu-server: openvidu-test-browsers project --- openvidu-test-browsers/pom.xml | 149 ++++++++++++++++++ .../openvidu/test/browsers}/BrowserUser.java | 21 +-- .../test/browsers}/ChromeAndroidUser.java | 2 +- .../openvidu/test/browsers}/ChromeUser.java | 2 +- .../openvidu/test/browsers}/FirefoxUser.java | 2 +- .../io/openvidu/test/browsers}/OperaUser.java | 2 +- openvidu-test-e2e/pom.xml | 6 + .../java/io/openvidu/test/e2e/MyUser.java | 35 ++++ .../test/e2e/OpenViduTestAppE2eTest.java | 46 +++--- pom.xml | 6 + 10 files changed, 229 insertions(+), 42 deletions(-) create mode 100644 openvidu-test-browsers/pom.xml rename {openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser => openvidu-test-browsers/src/main/java/io/openvidu/test/browsers}/BrowserUser.java (70%) rename {openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser => openvidu-test-browsers/src/main/java/io/openvidu/test/browsers}/ChromeAndroidUser.java (98%) rename {openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser => openvidu-test-browsers/src/main/java/io/openvidu/test/browsers}/ChromeUser.java (99%) rename {openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser => openvidu-test-browsers/src/main/java/io/openvidu/test/browsers}/FirefoxUser.java (98%) rename {openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/browser => openvidu-test-browsers/src/main/java/io/openvidu/test/browsers}/OperaUser.java (97%) create mode 100644 openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/MyUser.java 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