Skip to content

Commit 06ff139

Browse files
committed
[bazel] Get the chrome tests running on EngFlow
1 parent 4e745b7 commit 06ff139

File tree

5 files changed

+53
-44
lines changed

5 files changed

+53
-44
lines changed

java/test/org/openqa/selenium/chrome/ChromeDriverFunctionalTest.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,13 @@
2424
import static org.assertj.core.api.Assumptions.assumeThat;
2525
import static org.openqa.selenium.testing.drivers.Browser.CHROME;
2626

27+
import com.google.common.collect.ImmutableMap;
2728
import com.google.common.util.concurrent.Uninterruptibles;
2829
import java.time.Duration;
2930
import java.util.List;
3031
import java.util.Map;
32+
33+
import org.assertj.core.api.Assumptions;
3134
import org.junit.jupiter.api.Test;
3235
import org.openqa.selenium.Capabilities;
3336
import org.openqa.selenium.JavascriptExecutor;
@@ -44,6 +47,7 @@
4447
import org.openqa.selenium.testing.Ignore;
4548
import org.openqa.selenium.testing.JupiterTestBase;
4649
import org.openqa.selenium.testing.NoDriverBeforeTest;
50+
import org.openqa.selenium.testing.drivers.Browser;
4751

4852
class ChromeDriverFunctionalTest extends JupiterTestBase {
4953

@@ -53,6 +57,9 @@ class ChromeDriverFunctionalTest extends JupiterTestBase {
5357
@Test
5458
@NoDriverBeforeTest
5559
public void builderGeneratesDefaultChromeOptions() {
60+
// This test won't pass if we want to use Chrome in a non-standard location
61+
Assumptions.assumeThat(System.getProperty("webdriver.chrome.binary")).isNull();
62+
5663
localDriver = ChromeDriver.builder().build();
5764
Capabilities capabilities = ((ChromeDriver) localDriver).getCapabilities();
5865

@@ -63,7 +70,7 @@ public void builderGeneratesDefaultChromeOptions() {
6370
@Test
6471
@NoDriverBeforeTest
6572
public void builderOverridesDefaultChromeOptions() {
66-
ChromeOptions options = new ChromeOptions();
73+
ChromeOptions options = (ChromeOptions) CHROME.getCapabilities();
6774
options.setImplicitWaitTimeout(Duration.ofMillis(1));
6875
localDriver = ChromeDriver.builder().oneOf(options).build();
6976
assertThat(localDriver.manage().timeouts().getImplicitWaitTimeout())
@@ -80,7 +87,7 @@ public void driverOverridesDefaultClientConfig() {
8087
localDriver =
8188
new ChromeDriver(
8289
ChromeDriverService.createDefaultService(),
83-
new ChromeOptions(),
90+
(ChromeOptions) CHROME.getCapabilities(),
8491
clientConfig);
8592
})
8693
.isInstanceOf(SessionNotCreatedException.class);
@@ -89,7 +96,7 @@ public void driverOverridesDefaultClientConfig() {
8996
@Test
9097
void builderWithClientConfigThrowsException() {
9198
ClientConfig clientConfig = ClientConfig.defaultConfig().readTimeout(Duration.ofMinutes(1));
92-
RemoteWebDriverBuilder builder = ChromeDriver.builder().config(clientConfig);
99+
RemoteWebDriverBuilder builder = ChromeDriver.builder().oneOf(CHROME.getCapabilities()).config(clientConfig);
93100

94101
assertThatExceptionOfType(IllegalArgumentException.class)
95102
.isThrownBy(builder::build)

java/test/org/openqa/selenium/chrome/ChromeOptionsFunctionalTest.java

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,37 @@
1717

1818
package org.openqa.selenium.chrome;
1919

20-
import static org.assertj.core.api.Assertions.assertThat;
21-
import static org.openqa.selenium.remote.CapabilityType.ACCEPT_INSECURE_CERTS;
22-
23-
import java.io.IOException;
24-
import java.nio.file.Files;
25-
import java.util.Base64;
20+
import com.google.common.collect.ImmutableMap;
21+
import org.junit.jupiter.api.AfterAll;
2622
import org.junit.jupiter.api.Test;
2723
import org.openqa.selenium.By;
2824
import org.openqa.selenium.WebElement;
2925
import org.openqa.selenium.build.InProject;
3026
import org.openqa.selenium.testing.JupiterTestBase;
3127
import org.openqa.selenium.testing.NoDriverBeforeTest;
32-
import org.openqa.selenium.testing.TestUtilities;
28+
import org.openqa.selenium.testing.drivers.Browser;
29+
30+
import java.io.IOException;
31+
import java.nio.file.Files;
32+
import java.util.Base64;
33+
34+
import static org.assertj.core.api.Assertions.assertThat;
35+
import static org.openqa.selenium.remote.CapabilityType.ACCEPT_INSECURE_CERTS;
3336

3437
class ChromeOptionsFunctionalTest extends JupiterTestBase {
3538

3639
private static final String EXT_PATH = "common/extensions/webextensions-selenium-example.crx";
3740

41+
@AfterAll
42+
public static void resetBrowser() {
43+
seleniumExtension.removeDriver();
44+
}
45+
3846
@Test
39-
@NoDriverBeforeTest
4047
public void canStartChromeWithCustomOptions() {
41-
ChromeOptions options = new ChromeOptions();
42-
if (TestUtilities.isOnTravis()) {
43-
options.addArguments("--headless=chrome");
44-
}
48+
ChromeOptions options = (ChromeOptions) Browser.CHROME.getCapabilities();
4549
options.addArguments("user-agent=foo;bar");
46-
localDriver = new ChromeDriver(options);
50+
localDriver = seleniumExtension.createNewDriver(options);
4751

4852
localDriver.get(pages.clickJacker);
4953
Object userAgent =
@@ -63,12 +67,9 @@ void optionsStayEqualAfterSerialization() {
6367
@Test
6468
@NoDriverBeforeTest
6569
public void canSetAcceptInsecureCerts() {
66-
ChromeOptions options = new ChromeOptions();
67-
if (TestUtilities.isOnTravis()) {
68-
options.addArguments("--headless=chrome");
69-
}
70+
ChromeOptions options = (ChromeOptions) Browser.CHROME.getCapabilities();
7071
options.setAcceptInsecureCerts(true);
71-
localDriver = new ChromeDriver(options);
72+
localDriver = seleniumExtension.createNewDriver(options);
7273

7374
assertThat(((ChromeDriver) localDriver).getCapabilities().getCapability(ACCEPT_INSECURE_CERTS))
7475
.isEqualTo(true);
@@ -77,15 +78,11 @@ public void canSetAcceptInsecureCerts() {
7778
@Test
7879
@NoDriverBeforeTest
7980
public void canAddExtensionFromFile() {
80-
ChromeOptions options = new ChromeOptions();
81-
if (TestUtilities.isOnTravis()) {
82-
options.addArguments("--headless=chrome");
83-
}
81+
ChromeOptions options = createChromeOptionsForExtensions();
8482
options.addExtensions(InProject.locate(EXT_PATH).toFile());
85-
localDriver = new ChromeDriver(options);
86-
87-
localDriver.get(pages.echoPage);
83+
localDriver = seleniumExtension.createNewDriver(options);
8884

85+
localDriver.get(toLocalUrl(pages.echoPage));
8986
WebElement footerElement = localDriver.findElement(By.id("webextensions-selenium-example"));
9087

9188
String footText = footerElement.getText();
@@ -95,13 +92,10 @@ public void canAddExtensionFromFile() {
9592
@Test
9693
@NoDriverBeforeTest
9794
public void canAddExtensionFromStringEncodedInBase64() throws IOException {
98-
ChromeOptions options = new ChromeOptions();
99-
if (TestUtilities.isOnTravis()) {
100-
options.addArguments("--headless=chrome");
101-
}
95+
ChromeOptions options = createChromeOptionsForExtensions();
10296
options.addEncodedExtensions(
10397
Base64.getEncoder().encodeToString(Files.readAllBytes(InProject.locate(EXT_PATH))));
104-
localDriver = new ChromeDriver(options);
98+
localDriver = seleniumExtension.createNewDriver(options);
10599

106100
localDriver.get(pages.echoPage);
107101

@@ -110,4 +104,9 @@ public void canAddExtensionFromStringEncodedInBase64() throws IOException {
110104
String footText = footerElement.getText();
111105
assertThat(footText).isEqualTo("Content injected by webextensions-selenium-example");
112106
}
107+
108+
private ChromeOptions createChromeOptionsForExtensions() {
109+
ChromeOptions options = (ChromeOptions) Browser.CHROME.getCapabilities();
110+
return options.setExperimentalOption("prefs", ImmutableMap.of("extensions.ui.developer_mode", true));
111+
}
113112
}

java/test/org/openqa/selenium/testing/JupiterTestBase.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
import static org.assertj.core.api.Assumptions.assumeThat;
2121

22+
import java.net.MalformedURLException;
23+
import java.net.URL;
2224
import java.time.Duration;
2325
import org.junit.jupiter.api.AfterEach;
2426
import org.junit.jupiter.api.BeforeAll;
@@ -35,7 +37,7 @@
3537

3638
public abstract class JupiterTestBase {
3739

38-
@RegisterExtension static SeleniumExtension seleniumExtension = new SeleniumExtension();
40+
@RegisterExtension protected static SeleniumExtension seleniumExtension = new SeleniumExtension();
3941

4042
protected TestEnvironment environment;
4143
protected AppServer appServer;
@@ -79,6 +81,15 @@ public void removeDriver() {
7981
seleniumExtension.removeDriver();
8082
}
8183

84+
public String toLocalUrl(String url) {
85+
try {
86+
URL original = new URL(url);
87+
return new URL(original.getProtocol(), "localhost", original.getPort(), original.getFile()).toString();
88+
} catch (MalformedURLException e) {
89+
throw new RuntimeException(e);
90+
}
91+
}
92+
8293
protected WebDriverWait wait(WebDriver driver) {
8394
return new WebDriverWait(driver, Duration.ofSeconds(10));
8495
}

java/test/org/openqa/selenium/testing/drivers/Browser.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,10 @@ public Capabilities getCapabilities() {
4848
}
4949

5050
if (Boolean.getBoolean("webdriver.headless")) {
51-
options.addArguments("--headless=chrome");
51+
options.addArguments("--headless=new");
5252
}
5353

5454
options.addArguments(
55-
"disable-extensions",
5655
"disable-infobars",
5756
"disable-breakpad",
5857
"disable-dev-shm-usage",

java/test/org/openqa/selenium/virtualauthenticator/VirtualAuthenticatorTest.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,7 @@ public void setup() throws MalformedURLException {
7979
// over HTTPS, the `registerCredential` method is missing. Let's
8080
// make the assumption that the server being used is running on
8181
// `localhost` and rewrite URLs from there.
82-
URL url = new URL(appServer.whereIs("virtual-authenticator.html"));
83-
String localUrl = new URL(
84-
url.getProtocol(),
85-
"localhost",
86-
url.getPort(),
87-
url.getFile()).toString();
88-
89-
driver.get(localUrl);
82+
driver.get(toLocalUrl(appServer.whereIs("virtual-authenticator.html")));
9083
}
9184

9285
private void createRKEnabledU2FAuthenticator() {

0 commit comments

Comments
 (0)