You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2021/01/11 21:09:38 UTC

[myfaces-tobago] 06/11: use custom selenium/standalone-firefox

This is an automated email from the ASF dual-hosted git repository.

bommel pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit fbfee4970722651fa23079618036e1dc6521e8a4
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Tue Dec 22 16:42:57 2020 +0100

    use custom selenium/standalone-firefox
    
    * use custom firefox image to be able to run on amd64/arm64
    * fix: checkstyle
---
 .../tobago/example/demo/integration/BasicTest.java | 14 +++++-----
 .../example/demo/integration/FrontendBase.java     | 32 ++++++++++++++--------
 .../example/demo/integration/FrontendTest.java     |  6 ++--
 3 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/BasicTest.java b/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/BasicTest.java
index 7216c7b..60c72ad 100644
--- a/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/BasicTest.java
+++ b/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/BasicTest.java
@@ -53,7 +53,7 @@ class BasicTest extends FrontendBase {
 
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  static LocalTime startTime;
+  private static LocalTime startTime;
 
   @BeforeAll
   public static void setup() {
@@ -63,14 +63,14 @@ class BasicTest extends FrontendBase {
   @Test
   void verifyExceptionTest() throws MalformedURLException, UnknownHostException, UnsupportedEncodingException {
     final String host = InetAddress.getLocalHost().getHostAddress();
-    final int tomcatPort = tomcat.getFirstMappedPort();
+    final int tomcatPort = getTomcatPort();
     final String path = "error/exception.xhtml";
 
     final String base = path.substring(0, path.length() - 6);
     final String url = "http://" + host + ":" + tomcatPort + "/test.xhtml?base="
         + URLEncoder.encode(base, "UTF-8") + "&basicTest=true";
 
-    WebDriver webDriver = getWebDriver(host, seleniumChrome.getFirstMappedPort());
+    WebDriver webDriver = getWebDriver(host, getFirefoxPort());
     webDriver.get(url);
 
     List<WebElement> results = getJasmineResults(webDriver);
@@ -87,14 +87,14 @@ class BasicTest extends FrontendBase {
   @Test
   void verify404Test() throws MalformedURLException, UnknownHostException, UnsupportedEncodingException {
     final String host = InetAddress.getLocalHost().getHostAddress();
-    final int tomcatPort = tomcat.getFirstMappedPort();
+    final int tomcatPort = getTomcatPort();
     final String path = "error/404.xhtml";
 
     final String base = path.substring(0, path.length() - 6);
     final String url = "http://" + host + ":" + tomcatPort + "/test.xhtml?base="
         + URLEncoder.encode(base, "UTF-8") + "&basicTest=true";
 
-    WebDriver webDriver = getWebDriver(host, seleniumChrome.getFirstMappedPort());
+    WebDriver webDriver = getWebDriver(host, getFirefoxPort());
     webDriver.get(url);
 
     List<WebElement> results = getJasmineResults(webDriver);
@@ -118,7 +118,7 @@ class BasicTest extends FrontendBase {
 
     final String timeLeft = getTimeLeft(startTime, testSize, testNumber);
     final String host = InetAddress.getLocalHost().getHostAddress();
-    final int tomcatPort = tomcat.getFirstMappedPort();
+    final int tomcatPort = getTomcatPort();
 
     LOG.info("(" + testNumber + "/" + testSize + " | time left: " + timeLeft + ")"
         + " - url: http://" + host + ":" + tomcatPort + "/" + path);
@@ -127,7 +127,7 @@ class BasicTest extends FrontendBase {
     final String url = "http://" + host + ":" + tomcatPort + "/test.xhtml?base="
         + URLEncoder.encode(base, "UTF-8") + "&basicTest=true";
 
-    WebDriver webDriver = getWebDriver(host, seleniumChrome.getFirstMappedPort());
+    WebDriver webDriver = getWebDriver(host, getFirefoxPort());
     webDriver.get(url);
 
     List<WebElement> results = getJasmineResults(webDriver);
diff --git a/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendBase.java b/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendBase.java
index a613c8e..77dacd8 100644
--- a/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendBase.java
+++ b/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendBase.java
@@ -26,7 +26,7 @@ import org.openqa.selenium.By;
 import org.openqa.selenium.NoSuchElementException;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
-import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.firefox.FirefoxOptions;
 import org.openqa.selenium.remote.RemoteWebDriver;
 import org.openqa.selenium.support.ui.FluentWait;
 import org.testcontainers.containers.GenericContainer;
@@ -48,20 +48,22 @@ abstract class FrontendBase {
 
   @SuppressWarnings("rawtypes") // this is how to use testcontainers
   @Container
-  public static GenericContainer seleniumChrome =
-      new GenericContainer<>(DockerImageName.parse("selenium/standalone-chrome")).withExposedPorts(4444);
+  private static final GenericContainer SELENIUM_FIREFOX =
+      new GenericContainer<>(DockerImageName.parse("henningn/selenium-standalone-firefox"))
+          .withExposedPorts(4444);
 
   @SuppressWarnings("rawtypes") // this is how to use testcontainers
   @Container
-  public static GenericContainer tomcat =
-      new GenericContainer(DockerImageName.parse("myfaces/tobago-example-demo")).withExposedPorts(8080);
+  private static final GenericContainer TOMCAT =
+      new GenericContainer(DockerImageName.parse("myfaces/tobago-example-demo"))
+          .withExposedPorts(8080);
 
-  private static WebDriver chromeDriver;
+  private static WebDriver firefoxDriver;
 
   @AfterAll
   static void tearDown() {
-    if (chromeDriver != null) {
-      chromeDriver.quit();
+    if (firefoxDriver != null) {
+      firefoxDriver.quit();
     }
   }
 
@@ -77,10 +79,10 @@ abstract class FrontendBase {
   }
 
   WebDriver getWebDriver(final String host, final Integer port) throws MalformedURLException {
-    if (chromeDriver == null || ((RemoteWebDriver) chromeDriver).getSessionId() == null) {
-      chromeDriver = new RemoteWebDriver(new URL("http://" + host + ":" + port + "/wd/hub"), new ChromeOptions());
+    if (firefoxDriver == null || ((RemoteWebDriver) firefoxDriver).getSessionId() == null) {
+      firefoxDriver = new RemoteWebDriver(new URL("http://" + host + ":" + port + "/wd/hub"), new FirefoxOptions());
     }
-    return chromeDriver;
+    return firefoxDriver;
   }
 
   List<WebElement> getJasmineResults(WebDriver webDriver) {
@@ -116,4 +118,12 @@ abstract class FrontendBase {
       return "---";
     }
   }
+
+  int getFirefoxPort() {
+    return SELENIUM_FIREFOX.getFirstMappedPort();
+  }
+
+  int getTomcatPort() {
+    return TOMCAT.getFirstMappedPort();
+  }
 }
diff --git a/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendTest.java b/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendTest.java
index db7d116..96ae25c 100644
--- a/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendTest.java
+++ b/tobago-example/tobago-example-demo/src/test/java/org/apache/myfaces/tobago/example/demo/integration/FrontendTest.java
@@ -46,7 +46,7 @@ class FrontendTest extends FrontendBase {
 
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  static LocalTime startTime;
+  private static LocalTime startTime;
 
   @BeforeAll
   public static void setup() {
@@ -63,7 +63,7 @@ class FrontendTest extends FrontendBase {
 
     final String timeLeft = getTimeLeft(FrontendTest.startTime, testSize, testNumber);
     final String host = InetAddress.getLocalHost().getHostAddress();
-    final int tomcatPort = tomcat.getFirstMappedPort();
+    final int tomcatPort = getTomcatPort();
 
     LOG.info("(" + testNumber + "/" + testSize + " | time left: " + timeLeft + ")"
         + " - url: http://" + host + ":" + tomcatPort + "/" + path);
@@ -71,7 +71,7 @@ class FrontendTest extends FrontendBase {
     final String base = path.substring(0, path.length() - 6);
     final String url = "http://" + host + ":" + tomcatPort + "/test.xhtml?base=" + URLEncoder.encode(base, "UTF-8");
 
-    WebDriver webDriver = getWebDriver(host, seleniumChrome.getFirstMappedPort());
+    WebDriver webDriver = getWebDriver(host, getFirefoxPort());
     webDriver.get(url);
 
     List<WebElement> results = getJasmineResults(webDriver);