WIP
[demos/spring-boot] / src / test / java / de / juplo / demo / WebDriverExtension.java
index a2c5d0c..bbbe82b 100644 (file)
@@ -1,13 +1,17 @@
 package de.juplo.demo;
 
 
-import org.junit.jupiter.api.extension.BeforeEachCallback;
+import java.io.File;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.jupiter.api.extension.ParameterContext;
 import org.junit.jupiter.api.extension.ParameterResolver;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.remote.DesiredCapabilities;
+import org.openqa.selenium.remote.RemoteWebDriver;
 import org.testcontainers.containers.BrowserWebDriverContainer;
+import static org.testcontainers.containers.BrowserWebDriverContainer.VncRecordingMode.RECORD_ALL;
 
 
 /**
@@ -16,15 +20,23 @@ import org.testcontainers.containers.BrowserWebDriverContainer;
  * {@link https://www.testcontainers.org/modules/webdriver_containers/ Testcontainers}.
  * @author Kai Moritz
  */
-public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
+@Slf4j
+public class WebDriverExtension implements BeforeAllCallback, ParameterResolver
 {
   BrowserWebDriverContainer chrome;
 
 
   @Override
-  public void beforeEach(ExtensionContext context) throws Exception
+  public void beforeAll(ExtensionContext context) throws Exception
   {
-    chrome = new BrowserWebDriverContainer().withCapabilities(DesiredCapabilities.chrome());
+    chrome =
+        new BrowserWebDriverContainer()
+            .withCapabilities(DesiredCapabilities.chrome())
+            .withRecordingMode(RECORD_ALL, new File("./target/"));
+    log.info("Starting {}", chrome.getDockerImageName());
+    chrome.start();
+    log.info("Selenium-Address: {}", chrome.getSeleniumAddress());
+    log.info("VNC-Address: {}", chrome.getVncAddress());
   }
 
   @Override
@@ -32,7 +44,7 @@ public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
       ParameterContext parameterContext,
       ExtensionContext extensionContext)
   {
-    return parameterContext.getParameter().getType() == BrowserWebDriverContainer.class;
+    return parameterContext.getParameter().getType() == RemoteWebDriver.class;
   }
 
   @Override
@@ -40,6 +52,6 @@ public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
       ParameterContext parameterContext,
       ExtensionContext extensionContext)
   {
-    return chrome;
+    return chrome.getWebDriver();
   }
 }