Skip to content

Commit 38829c7

Browse files
authored
[bidi][java] Enable grid BiDi chrome test (#13778)
1 parent 111941b commit 38829c7

File tree

2 files changed

+40
-61
lines changed

2 files changed

+40
-61
lines changed

java/test/org/openqa/selenium/grid/router/BUILD.bazel

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ LARGE_TESTS = [
1010
"StressTest.java",
1111
]
1212

13-
FIREFOX_ONLY_LARGE_TESTS = [
13+
FIREFOX_CHROME_ONLY_LARGE_TESTS = [
1414
"RemoteWebDriverBiDiTest.java",
1515
]
1616

@@ -77,10 +77,13 @@ java_selenium_test_suite(
7777
)
7878

7979
java_selenium_test_suite(
80-
name = "firefox-only-large-tests",
80+
name = "firefox-chrome-only-large-tests",
8181
size = "large",
82-
srcs = FIREFOX_ONLY_LARGE_TESTS,
83-
browsers = ["firefox"],
82+
srcs = FIREFOX_CHROME_ONLY_LARGE_TESTS,
83+
browsers = [
84+
"firefox",
85+
"chrome",
86+
],
8487
deps = [
8588
":support",
8689
"//java/src/org/openqa/selenium/bidi",
@@ -103,7 +106,7 @@ java_test_suite(
103106
size = "medium",
104107
srcs = glob(
105108
["*Test.java"],
106-
exclude = LARGE_TESTS + FIREFOX_ONLY_LARGE_TESTS,
109+
exclude = LARGE_TESTS + FIREFOX_CHROME_ONLY_LARGE_TESTS,
107110
),
108111
tags = [
109112
"requires-network",

java/test/org/openqa/selenium/grid/router/RemoteWebDriverBiDiTest.java

Lines changed: 32 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@
1818
package org.openqa.selenium.grid.router;
1919

2020
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
21+
import static org.openqa.selenium.testing.drivers.Browser.*;
2122

2223
import java.io.StringReader;
2324
import java.util.Collections;
25+
import java.util.Objects;
2426
import java.util.concurrent.CompletableFuture;
2527
import java.util.concurrent.ExecutionException;
2628
import java.util.concurrent.TimeUnit;
2729
import java.util.concurrent.TimeoutException;
30+
import org.junit.jupiter.api.AfterEach;
31+
import org.junit.jupiter.api.BeforeEach;
2832
import org.junit.jupiter.api.Test;
2933
import org.openqa.selenium.By;
3034
import org.openqa.selenium.WebDriver;
@@ -40,18 +44,21 @@
4044
import org.openqa.selenium.bidi.module.LogInspector;
4145
import org.openqa.selenium.environment.webserver.AppServer;
4246
import org.openqa.selenium.environment.webserver.NettyAppServer;
43-
import org.openqa.selenium.firefox.FirefoxOptions;
4447
import org.openqa.selenium.grid.config.TomlConfig;
4548
import org.openqa.selenium.grid.router.DeploymentTypes.Deployment;
4649
import org.openqa.selenium.remote.Augmenter;
4750
import org.openqa.selenium.remote.RemoteWebDriver;
51+
import org.openqa.selenium.testing.Ignore;
52+
import org.openqa.selenium.testing.NotYetImplemented;
4853
import org.openqa.selenium.testing.drivers.Browser;
4954

5055
class RemoteWebDriverBiDiTest {
56+
private WebDriver driver;
57+
private AppServer server;
5158

52-
@Test
53-
void ensureBiDiSessionCreation() {
54-
Browser browser = Browser.FIREFOX;
59+
@BeforeEach
60+
void setup() {
61+
Browser browser = Objects.requireNonNull(Browser.detect());
5562

5663
Deployment deployment =
5764
DeploymentTypes.STANDALONE.start(
@@ -63,47 +70,34 @@ void ensureBiDiSessionCreation() {
6370
+ "driver-implementation = "
6471
+ browser.displayName())));
6572

66-
FirefoxOptions options = createFirefoxOptions();
67-
// Enable BiDi
68-
options.setCapability("webSocketUrl", true);
69-
options.merge(Browser.FIREFOX.getCapabilities());
70-
71-
WebDriver driver = new RemoteWebDriver(deployment.getServer().getUrl(), options);
73+
driver = new RemoteWebDriver(deployment.getServer().getUrl(), browser.getCapabilities());
7274
driver = new Augmenter().augment(driver);
7375

76+
server = new NettyAppServer();
77+
server.start();
78+
}
79+
80+
@Test
81+
@Ignore(IE)
82+
@Ignore(SAFARI)
83+
@NotYetImplemented(EDGE)
84+
void ensureBiDiSessionCreation() {
7485
try (BiDi biDi = ((HasBiDi) driver).getBiDi()) {
7586
BiDiSessionStatus status =
7687
biDi.send(
7788
new Command<>("session.status", Collections.emptyMap(), BiDiSessionStatus.class));
7889
assertThat(status).isNotNull();
79-
assertThat(status.getMessage()).isEqualTo("Session already started");
90+
assertThat(status.getMessage()).isNotEmpty();
8091
}
8192
}
8293

8394
@Test
95+
@Ignore(IE)
96+
@Ignore(SAFARI)
97+
@NotYetImplemented(EDGE)
8498
void canListenToLogs() throws ExecutionException, InterruptedException, TimeoutException {
85-
Browser browser = Browser.FIREFOX;
86-
87-
Deployment deployment =
88-
DeploymentTypes.STANDALONE.start(
89-
browser.getCapabilities(),
90-
new TomlConfig(
91-
new StringReader(
92-
"[node]\n"
93-
+ "selenium-manager = false\n"
94-
+ "driver-implementation = "
95-
+ browser.displayName())));
96-
97-
FirefoxOptions options = createFirefoxOptions();
98-
// Enable BiDi
99-
options.setCapability("webSocketUrl", true);
100-
101-
WebDriver driver = new RemoteWebDriver(deployment.getServer().getUrl(), options);
10299
driver = new Augmenter().augment(driver);
103100

104-
AppServer server = new NettyAppServer();
105-
server.start();
106-
107101
try (LogInspector logInspector = new LogInspector(driver)) {
108102
CompletableFuture<ConsoleLogEntry> future = new CompletableFuture<>();
109103
logInspector.onConsoleEntry(future::complete);
@@ -120,34 +114,14 @@ void canListenToLogs() throws ExecutionException, InterruptedException, TimeoutE
120114
assertThat(logEntry.getType()).isEqualTo("console");
121115
assertThat(logEntry.getLevel()).isEqualTo(LogLevel.INFO);
122116
assertThat(logEntry.getMethod()).isEqualTo("log");
123-
assertThat(logEntry.getStackTrace()).isNull();
124117
}
125118
}
126119

127120
@Test
121+
@Ignore(IE)
122+
@Ignore(SAFARI)
123+
@NotYetImplemented(EDGE)
128124
void canNavigateToUrl() {
129-
Browser browser = Browser.FIREFOX;
130-
131-
Deployment deployment =
132-
DeploymentTypes.STANDALONE.start(
133-
browser.getCapabilities(),
134-
new TomlConfig(
135-
new StringReader(
136-
"[node]\n"
137-
+ "selenium-manager = false\n"
138-
+ "driver-implementation = "
139-
+ browser.displayName())));
140-
141-
FirefoxOptions options = createFirefoxOptions();
142-
// Enable BiDi
143-
options.setCapability("webSocketUrl", true);
144-
145-
WebDriver driver = new RemoteWebDriver(deployment.getServer().getUrl(), options);
146-
driver = new Augmenter().augment(driver);
147-
148-
AppServer server = new NettyAppServer();
149-
server.start();
150-
151125
BrowsingContext browsingContext = new BrowsingContext(driver, WindowType.TAB);
152126

153127
String url = server.whereIs("/bidi/logEntryAdded.html");
@@ -158,7 +132,9 @@ void canNavigateToUrl() {
158132
assertThat(info.getUrl()).contains("/bidi/logEntryAdded.html");
159133
}
160134

161-
private FirefoxOptions createFirefoxOptions() {
162-
return (FirefoxOptions) Browser.FIREFOX.getCapabilities();
135+
@AfterEach
136+
void clean() {
137+
driver.quit();
138+
server.stop();
163139
}
164140
}

0 commit comments

Comments
 (0)