diff --git a/driver-bundle/src/test/java/com/microsoft/playwright/TestInstall.java b/driver-bundle/src/test/java/com/microsoft/playwright/TestInstall.java
index 6c28f71b..8a453e8c 100644
--- a/driver-bundle/src/test/java/com/microsoft/playwright/TestInstall.java
+++ b/driver-bundle/src/test/java/com/microsoft/playwright/TestInstall.java
@@ -31,19 +31,14 @@ public class TestInstall {
void playwrightCliInstalled() throws Exception {
// Clear system property to ensure that the driver is loaded from jar.
System.clearProperty("playwright.cli.dir");
- try {
- Path cli = Driver.ensureDriverInstalled();
- assertTrue(Files.exists(cli));
+ Path cli = Driver.ensureDriverInstalled();
+ assertTrue(Files.exists(cli));
- ProcessBuilder pb = new ProcessBuilder(cli.toString(), "install");
- pb.redirectError(ProcessBuilder.Redirect.INHERIT);
- pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
- Process p = pb.start();
- boolean result = p.waitFor(1, TimeUnit.MINUTES);
- assertTrue(result, "Timed out waiting for browsers to install");
- } catch (Exception e) {
- e.printStackTrace();
- assertNull(e);
- }
+ ProcessBuilder pb = new ProcessBuilder(cli.toString(), "install");
+ pb.redirectError(ProcessBuilder.Redirect.INHERIT);
+ pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
+ Process p = pb.start();
+ boolean result = p.waitFor(1, TimeUnit.MINUTES);
+ assertTrue(result, "Timed out waiting for browsers to install");
}
}
diff --git a/playwright/pom.xml b/playwright/pom.xml
index 252d7537..52597347 100644
--- a/playwright/pom.xml
+++ b/playwright/pom.xml
@@ -50,9 +50,6 @@
org.apache.maven.plugins
maven-surefire-plugin
-
- true
-
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBase.java b/playwright/src/test/java/com/microsoft/playwright/TestBase.java
index 1c26cfde..9e25898c 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBase.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBase.java
@@ -23,18 +23,24 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicInteger;
import static com.microsoft.playwright.Utils.getBrowserNameFromEnv;
+import static com.microsoft.playwright.Utils.nextFreePort;
public class TestBase {
- static Server server;
- static Server httpsServer;
- static BrowserType browserType;
- static Playwright playwright;
- static Browser browser;
- static boolean isMac = Utils.getOS() == Utils.OS.MAC;
- static boolean isWindows = Utils.getOS() == Utils.OS.WINDOWS;
- static boolean headful;
+ private static final ThreadLocal server = new ThreadLocal<>();
+ private static final ThreadLocal httpsServer = new ThreadLocal<>();
+ private static final ThreadLocal browserType = new ThreadLocal<>();
+ private static final ThreadLocal playwright = new ThreadLocal<>();
+ private static final ThreadLocal browser = new ThreadLocal<>();
+ static final boolean isMac = Utils.getOS() == Utils.OS.MAC;
+ static final boolean isWindows = Utils.getOS() == Utils.OS.WINDOWS;
+ static final boolean headful;
+ static {
+ String headfulEnv = System.getenv("HEADFUL");
+ headful = headfulEnv != null && !"0".equals(headfulEnv) && !"false".equals(headfulEnv);
+ }
Page page;
BrowserContext context;
@@ -73,8 +79,6 @@ public class TestBase {
}
static BrowserType.LaunchOptions createLaunchOptions() {
- String headfulEnv = System.getenv("HEADFUL");
- headful = headfulEnv != null && !"0".equals(headfulEnv) && !"false".equals(headfulEnv);
BrowserType.LaunchOptions options;
options = new BrowserType.LaunchOptions();
options.headless = !headful;
@@ -83,13 +87,13 @@ public class TestBase {
}
static void initBrowserType() {
- playwright = Playwright.create();
- browserType = Utils.getBrowserTypeFromEnv(playwright);
+ setPlaywright(Playwright.create());
+ setBrowserType(Utils.getBrowserTypeFromEnv(getPlaywright()));
}
static void launchBrowser(BrowserType.LaunchOptions launchOptions) {
initBrowserType();
- browser = browserType.launch(launchOptions);
+ setBrowser(getBrowserType().launch(launchOptions));
}
@BeforeAll
@@ -99,46 +103,86 @@ public class TestBase {
@AfterAll
static void closeBrowser() {
- if (browser != null) {
- browser.close();
- browser = null;
+ if (getBrowser() != null) {
+ getBrowser().close();
+ setBrowser(null);
}
}
@BeforeAll
static void startServer() throws IOException {
- server = Server.createHttp(8907);
- httpsServer = Server.createHttps(8908);
+ setServer(Server.createHttp(nextFreePort()));
+ setHttpsServer(Server.createHttps(nextFreePort()));
}
@AfterAll
- static void stopServer() throws IOException {
- if (server != null) {
- server.stop();
- server = null;
+ static void stopServer() {
+ if (getServer() != null) {
+ getServer().stop();
+ setServer(null);
}
- if (httpsServer != null) {
- httpsServer.stop();
- httpsServer = null;
+ if (getHttpsServer() != null) {
+ getHttpsServer().stop();
+ setHttpsServer(null);
}
}
@AfterAll
- static void closePlaywright() throws Exception {
- if (playwright != null) {
- playwright.close();
- playwright = null;
+ static void closePlaywright() {
+ if (getPlaywright() != null) {
+ getPlaywright().close();
+ setPlaywright(null);
}
}
+ static Server getServer() {
+ return server.get();
+ }
+
+ static void setServer(Server server) {
+ TestBase.server.set(server);
+ }
+
+ static Server getHttpsServer() {
+ return httpsServer.get();
+ }
+
+ static void setHttpsServer(Server httpsServer) {
+ TestBase.httpsServer.set(httpsServer);
+ }
+
+ static BrowserType getBrowserType() {
+ return browserType.get();
+ }
+
+ static void setBrowserType(BrowserType browserType) {
+ TestBase.browserType.set(browserType);
+ }
+
+ static Playwright getPlaywright() {
+ return playwright.get();
+ }
+
+ static void setPlaywright(Playwright playwright) {
+ TestBase.playwright.set(playwright);
+ }
+
+ static Browser getBrowser() {
+ return browser.get();
+ }
+
+ static void setBrowser(Browser browser) {
+ TestBase.browser.set(browser);
+ }
+
BrowserContext createContext() {
- return browser.newContext();
+ return getBrowser().newContext();
}
@BeforeEach
void createContextAndPage() {
- server.reset();
- httpsServer.reset();
+ getServer().reset();
+ getHttpsServer().reset();
context = createContext();
page = context.newPage();
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowser.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowser.java
index 19e61967..4286308c 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowser.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowser.java
@@ -30,22 +30,22 @@ public class TestBrowser extends TestBase {
@Test
void shouldCreateNewPage() {
- Page page1 = browser.newPage();
- assertEquals(1, browser.contexts().size());
+ Page page1 = getBrowser().newPage();
+ assertEquals(1, getBrowser().contexts().size());
- Page page2 = browser.newPage();
- assertEquals(2, browser.contexts().size());
+ Page page2 = getBrowser().newPage();
+ assertEquals(2, getBrowser().contexts().size());
page1.close();
- assertEquals(1, browser.contexts().size());
+ assertEquals(1, getBrowser().contexts().size());
page2.close();
- assertEquals(0, browser.contexts().size());
+ assertEquals(0, getBrowser().contexts().size());
}
@Test
void shouldThrowUponSecondCreateNewPage() {
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
try {
page.context().newPage();
fail("newPage should throw");
@@ -58,12 +58,12 @@ public class TestBrowser extends TestBase {
@Test
void versionShouldWork() {
if (isChromium()) {
- assertTrue(Pattern.matches("^\\d+\\.\\d+\\.\\d+\\.\\d+$", browser.version()));
+ assertTrue(Pattern.matches("^\\d+\\.\\d+\\.\\d+\\.\\d+$", getBrowser().version()));
} else if (isWebKit()) {
- assertTrue(Pattern.matches("^\\d+\\.\\d+", browser.version()));
+ assertTrue(Pattern.matches("^\\d+\\.\\d+", getBrowser().version()));
} else if (isFirefox()) {
// It can be 85.0b1 in Firefox.
- assertTrue(Pattern.matches("^\\d+\\.\\d+.*", browser.version()));
+ assertTrue(Pattern.matches("^\\d+\\.\\d+.*", getBrowser().version()));
}
}
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextAddCookies.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextAddCookies.java
index 5d6620e8..7ee25e61 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextAddCookies.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextAddCookies.java
@@ -34,15 +34,15 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldWork() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.addCookies(asList(
- new Cookie("password", "123456").setUrl(server.EMPTY_PAGE)));
+ new Cookie("password", "123456").setUrl(getServer().EMPTY_PAGE)));
assertEquals("password=123456", page.evaluate("document.cookie"));
}
@Test
void shouldRoundtripCookie() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
// @see https://en.wikipedia.org/wiki/Year_2038_problem
Object documentCookie = page.evaluate("() => {\n" +
" const date = new Date('1/1/2038');\n" +
@@ -63,22 +63,22 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldSendCookieHeader() throws ExecutionException, InterruptedException {
- Future request = server.futureRequest("/empty.html");
+ Future request = getServer().futureRequest("/empty.html");
context.addCookies(asList(
- new Cookie("cookie", "value").setUrl(server.EMPTY_PAGE)));
+ new Cookie("cookie", "value").setUrl(getServer().EMPTY_PAGE)));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = request.get().headers.get("cookie");
assertEquals(singletonList("cookie=value"), cookies);
}
@Test
void shouldIsolateCookiesInBrowserContexts() {
- BrowserContext anotherContext = browser.newContext();
+ BrowserContext anotherContext = getBrowser().newContext();
context.addCookies(asList(
- new Cookie("isolatecookie", "page1value").setUrl(server.EMPTY_PAGE)));
+ new Cookie("isolatecookie", "page1value").setUrl(getServer().EMPTY_PAGE)));
anotherContext.addCookies(asList(
- new Cookie("isolatecookie", "page2value").setUrl(server.EMPTY_PAGE)));
+ new Cookie("isolatecookie", "page2value").setUrl(getServer().EMPTY_PAGE)));
List cookies1 = context.cookies();
List cookies2 = anotherContext.cookies();
assertEquals(1, cookies1.size());
@@ -92,26 +92,26 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldIsolateSessionCookies() {
- server.setRoute("/setcookie.html", exchange -> {
+ getServer().setRoute("/setcookie.html", exchange -> {
exchange.getResponseHeaders().add("Set-Cookie", "session=value");
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
{
Page page = context.newPage();
- page.navigate(server.PREFIX + "/setcookie.html");
+ page.navigate(getServer().PREFIX + "/setcookie.html");
}
{
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = context.cookies();
assertEquals(1, cookies.size());
assertEquals("value", cookies.get(0).value);
}
{
- BrowserContext context2 = browser.newContext();
+ BrowserContext context2 = getBrowser().newContext();
Page page = context2.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = context2.cookies();
assertEquals(0, cookies.size());
context2.close();
@@ -120,20 +120,20 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldIsolatePersistentCookies() {
- server.setRoute("/setcookie.html", exchange -> {
+ getServer().setRoute("/setcookie.html", exchange -> {
exchange.getResponseHeaders().add("Set-Cookie", "persistent=persistent-value; max-age=3600");
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
Page page = context.newPage();
- page.navigate(server.PREFIX + "/setcookie.html");
+ page.navigate(getServer().PREFIX + "/setcookie.html");
BrowserContext context1 = context;
- BrowserContext context2 = browser.newContext();
+ BrowserContext context2 = getBrowser().newContext();
Page page1 = context1.newPage();
Page page2 = context2.newPage();
- page1.navigate(server.EMPTY_PAGE);
- page2.navigate(server.EMPTY_PAGE);
+ page1.navigate(getServer().EMPTY_PAGE);
+ page2.navigate(getServer().EMPTY_PAGE);
List cookies1 = context1.cookies();
List cookies2 = context2.cookies();
assertEquals(1, cookies1.size());
@@ -146,19 +146,19 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldIsolateSendCookieHeader() throws ExecutionException, InterruptedException {
context.addCookies(asList(
- new Cookie("sendcookie", "value").setUrl(server.EMPTY_PAGE)));
+ new Cookie("sendcookie", "value").setUrl(getServer().EMPTY_PAGE)));
{
Page page = context.newPage();
- Future request = server.futureRequest("/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ Future request = getServer().futureRequest("/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = request.get().headers.get("cookie");
assertEquals(asList("sendcookie=value"), cookies);
}
{
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
- Future request = server.futureRequest("/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ Future request = getServer().futureRequest("/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = request.get().headers.get("cookie");
assertNull(cookies);
context.close();
@@ -168,15 +168,15 @@ public class TestBrowserContextAddCookies extends TestBase {
void shouldIsolateCookiesBetweenLaunches() {
// test.slow();
// TODO: const browser1 = browserType.launch(browserOptions);
- Browser browser1 = browserType.launch();
+ Browser browser1 = getBrowserType().launch();
BrowserContext context1 = browser1.newContext();
context1.addCookies(asList(new Cookie("cookie-in-context-1", "value")
- .setUrl(server.EMPTY_PAGE)
+ .setUrl(getServer().EMPTY_PAGE)
.setExpires(Instant.now().getEpochSecond() + + 10000)));
browser1.close();
// const browser2 = browserType.launch(browserOptions);
- Browser browser2 = browserType.launch();
+ Browser browser2 = getBrowserType().launch();
BrowserContext context2 = browser2.newContext();
List cookies = context2.cookies();
assertEquals(0, cookies.size());
@@ -185,10 +185,10 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldSetMultipleCookies() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.addCookies(asList(
- new Cookie("multiple-1", "123456").setUrl(server.EMPTY_PAGE),
- new Cookie("multiple-2", "bar").setUrl(server.EMPTY_PAGE)
+ new Cookie("multiple-1", "123456").setUrl(getServer().EMPTY_PAGE),
+ new Cookie("multiple-2", "bar").setUrl(getServer().EMPTY_PAGE)
));
assertEquals(asList("multiple-1=123456", "multiple-2=bar"), page.evaluate("() => {\n" +
" const cookies = document.cookie.split(';');\n" +
@@ -199,7 +199,7 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldHaveExpiresSetTo1ForSessionCookies() {
context.addCookies(asList(
- new Cookie("expires", "123456").setUrl(server.EMPTY_PAGE)));
+ new Cookie("expires", "123456").setUrl(getServer().EMPTY_PAGE)));
List cookies = context.cookies();
assertEquals(-1, cookies.get(0).expires);
}
@@ -207,7 +207,7 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldSetCookieWithReasonableDefaults() {
context.addCookies(asList(
- new Cookie("defaults", "123456").setUrl(server.EMPTY_PAGE)));
+ new Cookie("defaults", "123456").setUrl(getServer().EMPTY_PAGE)));
List cookies = context.cookies();
assertJsonEquals("[{\n" +
" name: 'defaults',\n" +
@@ -223,7 +223,7 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldSetACookieWithAPath() {
- page.navigate(server.PREFIX + "/grid.html");
+ page.navigate(getServer().PREFIX + "/grid.html");
context.addCookies(asList(new Cookie("gridcookie", "GRID")
.setDomain("localhost")
.setPath("/grid.html")));
@@ -239,9 +239,9 @@ public class TestBrowserContextAddCookies extends TestBase {
" sameSite: 'NONE'\n" +
"}]", cookies);
assertEquals("gridcookie=GRID", page.evaluate("document.cookie"));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals("", page.evaluate("document.cookie"));
- page.navigate(server.PREFIX + "/grid.html");
+ page.navigate(getServer().PREFIX + "/grid.html");
assertEquals("gridcookie=GRID", page.evaluate("document.cookie"));
}
@@ -249,7 +249,7 @@ public class TestBrowserContextAddCookies extends TestBase {
void shouldNotSetACookieWithBlankPageURL() {
try {
context.addCookies(asList(
- new Cookie("example-cookie", "best").setUrl(server.EMPTY_PAGE),
+ new Cookie("example-cookie", "best").setUrl(getServer().EMPTY_PAGE),
new Cookie("example-cookie-blank", "best").setUrl("about:blank")
));
fail("did not throw");
@@ -272,7 +272,7 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldDefaultToSettingSecureCookieForHTTPSWebsites() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
String SECURE_URL = "https://example.com";
context.addCookies(asList(
new Cookie("foo", "bar").setUrl(SECURE_URL)
@@ -284,7 +284,7 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldBeAbleToSetUnsecureCookieForHTTPWebsite() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
String HTTP_URL = "http://example.com";
context.addCookies(asList(
new Cookie("foo", "bar").setUrl(HTTP_URL)
@@ -296,7 +296,7 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldSetACookieOnADifferentDomain() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.addCookies(asList(
new Cookie("example-cookie", "best").setUrl("https://www.example.com")
));
@@ -315,9 +315,9 @@ public class TestBrowserContextAddCookies extends TestBase {
@Test
void shouldSetCookiesForAFrame() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.addCookies(asList(
- new Cookie("frame-cookie", "value").setUrl(server.PREFIX)
+ new Cookie("frame-cookie", "value").setUrl(getServer().PREFIX)
));
page.evaluate("src => {\n" +
" let fulfill;\n" +
@@ -327,13 +327,13 @@ public class TestBrowserContextAddCookies extends TestBase {
" iframe.onload = fulfill;\n" +
" iframe.src = src;\n" +
" return promise;\n" +
- "}", server.PREFIX + "/grid.html");
+ "}", getServer().PREFIX + "/grid.html");
assertEquals("frame-cookie=value", page.frames().get(1).evaluate("document.cookie"));
}
@Test
void shouldNotBlockThirdPartyCookies() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.evaluate("src => {\n" +
" let fulfill;\n" +
" const promise = new Promise(x => fulfill = x);\n" +
@@ -342,11 +342,11 @@ public class TestBrowserContextAddCookies extends TestBase {
" iframe.onload = fulfill;\n" +
" iframe.src = src;\n" +
" return promise;\n" +
- "}", server.CROSS_PROCESS_PREFIX + "/grid.html");
+ "}", getServer().CROSS_PROCESS_PREFIX + "/grid.html");
page.frames().get(1).evaluate("document.cookie = 'username=John Doe'");
page.waitForTimeout(2000);
boolean allowsThirdParty = isChromium() || isFirefox();
- List cookies = context.cookies(server.CROSS_PROCESS_PREFIX + "/grid.html");
+ List cookies = context.cookies(getServer().CROSS_PROCESS_PREFIX + "/grid.html");
if (allowsThirdParty) {
assertJsonEquals("[{\n" +
" 'domain': '127.0.0.1',\n" +
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextBasic.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextBasic.java
index e2abdac4..e3496191 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextBasic.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextBasic.java
@@ -28,23 +28,23 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestBrowserContextBasic extends TestBase {
@Test
void shouldCreateNewContext() {
- assertEquals(1, browser.contexts().size());
- BrowserContext context = browser.newContext();
- assertEquals(2, browser.contexts().size());
- assertTrue(browser.contexts().indexOf(context) != -1);
- assertEquals(context.browser(), browser);
+ assertEquals(1, getBrowser().contexts().size());
+ BrowserContext context = getBrowser().newContext();
+ assertEquals(2, getBrowser().contexts().size());
+ assertTrue(getBrowser().contexts().indexOf(context) != -1);
+ assertEquals(context.browser(), getBrowser());
context.close();
- assertEquals(1, browser.contexts().size());
- assertEquals(context.browser(), browser);
+ assertEquals(1, getBrowser().contexts().size());
+ assertEquals(context.browser(), getBrowser());
}
@Test
void windowOpenShouldUseParentTabContext() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() ->
- page.evaluate("url => window.open(url)", server.EMPTY_PAGE));
+ page.evaluate("url => window.open(url)", getServer().EMPTY_PAGE));
assertEquals(context, popup.context());
context.close();
}
@@ -52,14 +52,14 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldIsolateLocalStorageAndCookies() {
// Create two incognito contexts.
- BrowserContext context1 = browser.newContext();
- BrowserContext context2 = browser.newContext();
+ BrowserContext context1 = getBrowser().newContext();
+ BrowserContext context2 = getBrowser().newContext();
assertEquals(0, context1.pages().size());
assertEquals(0, context2.pages().size());
// Create a page in first incognito context.
Page page1 = context1.newPage();
- page1.navigate(server.EMPTY_PAGE);
+ page1.navigate(getServer().EMPTY_PAGE);
page1.evaluate("() => {\n" +
" localStorage.setItem('name', 'page1');\n" +
" document.cookie = 'name=page1';\n" +
@@ -70,7 +70,7 @@ public class TestBrowserContextBasic extends TestBase {
// Create a page in second incognito context.
Page page2 = context2.newPage();
- page2.navigate(server.EMPTY_PAGE);
+ page2.navigate(getServer().EMPTY_PAGE);
page2.evaluate("() => {\n" +
" localStorage.setItem('name', 'page2');\n" +
" document.cookie = 'name=page2';\n" +
@@ -91,12 +91,12 @@ public class TestBrowserContextBasic extends TestBase {
context1.close();
context2.close();
- assertEquals(1, browser.contexts().size());
+ assertEquals(1, getBrowser().contexts().size());
}
@Test
void shouldPropagateDefaultViewportToThePage() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setViewportSize(456, 789));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setViewportSize(456, 789));
Page page = context.newPage();
verifyViewport(page, 456, 789);
context.close();
@@ -108,7 +108,7 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldRespectDeviceScaleFactor() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setDeviceScaleFactor(3.0));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setDeviceScaleFactor(3.0));
Page page = context.newPage();
assertEquals(3, page.evaluate("window.devicePixelRatio"));
context.close();
@@ -119,7 +119,7 @@ public class TestBrowserContextBasic extends TestBase {
@Disabled("TODO: supported null viewport option")
void shouldNotAllowDeviceScaleFactorWithNullViewport() {
try {
- browser.newContext(new Browser.NewContextOptions().setDeviceScaleFactor(1.0));
+ getBrowser().newContext(new Browser.NewContextOptions().setDeviceScaleFactor(1.0));
fail("did not throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("\"deviceScaleFactor\" option is not supported with null \"viewport\""));
@@ -130,7 +130,7 @@ public class TestBrowserContextBasic extends TestBase {
@Disabled("TODO: supported null viewport option")
void shouldNotAllowIsMobileWithNullViewport() {
try {
- browser.newContext(new Browser.NewContextOptions().setIsMobile(true));
+ getBrowser().newContext(new Browser.NewContextOptions().setIsMobile(true));
fail("did not throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("\"isMobile\" option is not supported with null \"viewport\""));
@@ -139,13 +139,13 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void closeShouldWorkForEmptyContext() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
context.close();
}
@Test
void closeShouldAbortFutureEvent() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
try {
context.waitForPage(() -> context.close());
fail("did not throw");
@@ -156,7 +156,7 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void closeShouldBeCallableTwice() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
context.close();
context.close();
context.close();
@@ -164,17 +164,23 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldNotReportFramelessPagesOnError() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
+ // getServer() returns thread local and the handler is called on another
+ // thread, save the value to a local variable.
+ Server server = getServer();
server.setRoute("/empty.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Click me");
+ } catch (RuntimeException e) {
+ e.printStackTrace();
+ throw e;
}
});
Page[] popup = {null};
context.onPage(page1 -> popup[0] = page1);
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.click("'Click me'");
context.close();
if (popup[0] != null) {
@@ -186,7 +192,7 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldReturnAllOfThePages() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
Page second = context.newPage();
List allPages = context.pages();
@@ -198,7 +204,7 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldCloseAllBelongingPagesOnceClosingContext() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
context.newPage();
assertEquals(1, context.pages().size());
context.close();
@@ -208,7 +214,7 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldDisableJavascript() {
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setJavaScriptEnabled(false));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setJavaScriptEnabled(false));
Page page = context.newPage();
page.navigate("data:text/html, ");
try {
@@ -224,7 +230,7 @@ public class TestBrowserContextBasic extends TestBase {
}
{
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
page.navigate("data:text/html, ");
assertEquals("forbidden", page.evaluate("something"));
@@ -234,31 +240,31 @@ public class TestBrowserContextBasic extends TestBase {
@Test
void shouldBeAbleToNavigateAfterDisablingJavascript() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setJavaScriptEnabled(false));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setJavaScriptEnabled(false));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.close();
}
@Test
void shouldWorkWithOfflineOption() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setOffline(true));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setOffline(true));
Page page = context.newPage();
try {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
fail("did not throw");
} catch (PlaywrightException e) {
}
context.setOffline(false);
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertEquals(200, response.status());
context.close();
}
@Test
void shouldEmulateNavigatorOnLine() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
assertEquals(true, page.evaluate("() => window.navigator.onLine"));
context.setOffline(true);
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextClearCookies.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextClearCookies.java
index 2f7bb17d..2f02ec8c 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextClearCookies.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextClearCookies.java
@@ -26,9 +26,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestBrowserContextClearCookies extends TestBase {
@Test
void shouldClearCookies() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.addCookies(asList(
- new Cookie("cookie1", "1").setUrl(server.EMPTY_PAGE)));
+ new Cookie("cookie1", "1").setUrl(getServer().EMPTY_PAGE)));
assertEquals("cookie1=1", page.evaluate("document.cookie"));
context.clearCookies();
assertEquals(emptyList(), context.cookies());
@@ -38,11 +38,11 @@ public class TestBrowserContextClearCookies extends TestBase {
@Test
void shouldIsolateCookiesWhenClearing() {
- BrowserContext anotherContext = browser.newContext();
+ BrowserContext anotherContext = getBrowser().newContext();
context.addCookies(asList(
- new Cookie("page1cookie", "page1value").setUrl(server.EMPTY_PAGE)));
+ new Cookie("page1cookie", "page1value").setUrl(getServer().EMPTY_PAGE)));
anotherContext.addCookies(asList(
- new Cookie("page2cookie", "page2value").setUrl(server.EMPTY_PAGE)));
+ new Cookie("page2cookie", "page2value").setUrl(getServer().EMPTY_PAGE)));
assertEquals(1, (context.cookies()).size());
assertEquals(1, (anotherContext.cookies()).size());
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCookies.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCookies.java
index 3841ee40..3fe0c6a4 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCookies.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCookies.java
@@ -23,7 +23,6 @@ import org.junit.jupiter.api.condition.DisabledIf;
import java.util.Comparator;
import java.util.List;
-import java.util.Set;
import java.util.stream.Collectors;
import static com.microsoft.playwright.Utils.assertJsonEquals;
@@ -35,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestBrowserContextCookies extends TestBase {
@Test
void shouldGetACookie() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object documentCookie = page.evaluate("() => {\n" +
" document.cookie = 'username=John Doe';\n" +
" return document.cookie;\n" +
@@ -57,7 +56,7 @@ public class TestBrowserContextCookies extends TestBase {
@Test
void shouldGetANonSessionCookie() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
// @see https://en.wikipedia.org/wiki/Year_2038_problem
Object documentCookie = page.evaluate("() => {\n" +
" const date= new Date('1/1/2038');\n" +
@@ -79,12 +78,12 @@ public class TestBrowserContextCookies extends TestBase {
@Test
void shouldProperlyReportHttpOnlyCookie() {
- server.setRoute("/empty.html", exchange -> {
+ getServer().setRoute("/empty.html", exchange -> {
exchange.getResponseHeaders().add("Set-Cookie", "name=value;HttpOnly; Path=/");
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = context.cookies();
assertEquals(1, cookies.size());
assertTrue(cookies.get(0).httpOnly);
@@ -97,12 +96,12 @@ public class TestBrowserContextCookies extends TestBase {
@Test
@DisabledIf(value="isWebKitWindows", disabledReason="fail")
void shouldProperlyReportStrictSameSiteCookie() {
- server.setRoute("/empty.html", exchange -> {
+ getServer().setRoute("/empty.html", exchange -> {
exchange.getResponseHeaders().add("Set-Cookie", "name=value;SameSite=Strict");
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = context.cookies();
assertEquals(1, cookies.size());
assertEquals(SameSiteAttribute.STRICT, cookies.get(0).sameSite);
@@ -111,12 +110,12 @@ public class TestBrowserContextCookies extends TestBase {
@Test
@DisabledIf(value="isWebKitWindows", disabledReason="fail")
void shouldProperlyReportLaxSameSiteCookie() {
- server.setRoute("/empty.html", exchange -> {
+ getServer().setRoute("/empty.html", exchange -> {
exchange.getResponseHeaders().add("Set-Cookie", "name=value;SameSite=Lax");
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List cookies = context.cookies();
assertEquals(1, cookies.size());
assertEquals(SameSiteAttribute.LAX, cookies.get(0).sameSite);
@@ -124,7 +123,7 @@ public class TestBrowserContextCookies extends TestBase {
@Test
void shouldGetMultipleCookies() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object documentCookie = page.evaluate("() => {\n" +
" document.cookie = 'username=John Doe';\n" +
" document.cookie = 'password=1234';\n" +
@@ -189,11 +188,11 @@ public class TestBrowserContextCookies extends TestBase {
@Test
void shouldAcceptSameSiteAttribute() {
context.addCookies(asList(
- new Cookie("one", "uno").setUrl(server.EMPTY_PAGE).setSameSite(SameSiteAttribute.LAX),
- new Cookie("two", "dos").setUrl(server.EMPTY_PAGE).setSameSite(SameSiteAttribute.STRICT),
- new Cookie("three", "tres").setUrl(server.EMPTY_PAGE).setSameSite(SameSiteAttribute.NONE)));
+ new Cookie("one", "uno").setUrl(getServer().EMPTY_PAGE).setSameSite(SameSiteAttribute.LAX),
+ new Cookie("two", "dos").setUrl(getServer().EMPTY_PAGE).setSameSite(SameSiteAttribute.STRICT),
+ new Cookie("three", "tres").setUrl(getServer().EMPTY_PAGE).setSameSite(SameSiteAttribute.NONE)));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object documentCookie = page.evaluate("document.cookie.split('; ').sort().join('; ')");
assertEquals("one=uno; three=tres; two=dos", documentCookie);
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCredentials.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCredentials.java
index bf68095b..8ac2adbc 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCredentials.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextCredentials.java
@@ -31,10 +31,10 @@ public class TestBrowserContextCredentials extends TestBase {
@Test
@DisabledIf(value="isChromiumHeadful", disabledReason="fail")
void shouldFailWithoutCredentials() {
- server.setAuth("/empty.html", "user", "pass");
- BrowserContext context = browser.newContext();
+ getServer().setAuth("/empty.html", "user", "pass");
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertEquals(401, response.status());
context.close();
}
@@ -45,32 +45,32 @@ public class TestBrowserContextCredentials extends TestBase {
@Test
void shouldWorkWithCorrectCredentials() {
- server.setAuth("/empty.html", "user", "pass");
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ getServer().setAuth("/empty.html", "user", "pass");
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setHttpCredentials("user", "pass"));
Page page = context.newPage();
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertEquals(200, response.status());
context.close();
}
@Test
void shouldFailWithWrongCredentials() {
- server.setAuth("/empty.html", "user", "pass");
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setHttpCredentials("foo", "bar"));
+ getServer().setAuth("/empty.html", "user", "pass");
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setHttpCredentials("foo", "bar"));
Page page = context.newPage();
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertEquals(401, response.status());
context.close();
}
@Test
void shouldReturnResourceBody() {
- server.setAuth("/playground.html", "user", "pass");
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ getServer().setAuth("/playground.html", "user", "pass");
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setHttpCredentials("user", "pass"));
Page page = context.newPage();
- Response response = page.navigate(server.PREFIX + "/playground.html");
+ Response response = page.navigate(getServer().PREFIX + "/playground.html");
assertEquals(200, response.status());
assertEquals("Playground", page.title());
assertTrue(new String(response.body()).contains("Playground"));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextLocale.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextLocale.java
index 08454566..f89f8c2a 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextLocale.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextLocale.java
@@ -28,17 +28,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestBrowserContextLocale extends TestBase {
@Test
void shouldAffectAcceptLanguageHeader() throws ExecutionException, InterruptedException {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
Page page = context.newPage();
- Future request = server.futureRequest("/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ Future request = getServer().futureRequest("/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals("fr-CH", request.get().headers.get("accept-language").get(0).substring(0, 5));
context.close();
}
@Test
void shouldAffectNavigatorLanguage() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
Page page = context.newPage();
assertEquals("fr-CH", page.evaluate("() => navigator.language"));
context.close();
@@ -48,16 +48,16 @@ public class TestBrowserContextLocale extends TestBase {
@Test
void shouldFormatNumber() {
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("en-US"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("en-US"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals("1,000,000.5", page.evaluate("() => (1000000.50).toLocaleString()"));
context.close();
}
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals("1 000 000,5", page.evaluate("() => (1000000.50).toLocaleString().replace(/\\s/g, ' ')"));
context.close();
}
@@ -66,19 +66,19 @@ public class TestBrowserContextLocale extends TestBase {
@Test
void shouldFormatDate() {
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setLocale("en-US").setTimezoneId("America/Los_Angeles"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
String formatted = "Sat Nov 19 2016 10:12:34 GMT-0800 (Pacific Standard Time)";
assertEquals(formatted, page.evaluate("new Date(1479579154987).toString()"));
context.close();
}
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setLocale("de-DE").setTimezoneId("Europe/Berlin"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals("Sat Nov 19 2016 19:12:34 GMT+0100 (Mitteleuropäische Normalzeit)",
page.evaluate("new Date(1479579154987).toString()"));
context.close();
@@ -87,11 +87,11 @@ public class TestBrowserContextLocale extends TestBase {
@Test
void shouldFormatNumberInPopups() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() -> page.evaluate(
- "url => window.open(url)", server.PREFIX + "/formatted-number.html"));
+ "url => window.open(url)", getServer().PREFIX + "/formatted-number.html"));
popup.waitForLoadState(LoadState.DOMCONTENTLOADED);
Object result = popup.evaluate("window['result']");
assertEquals("1 000 000,5", result);
@@ -100,11 +100,11 @@ public class TestBrowserContextLocale extends TestBase {
@Test
void shouldAffectNavigatorLanguageInPopups() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("fr-CH"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() -> page.evaluate(
- "url => window.open(url)", server.PREFIX + "/formatted-number.html"));
+ "url => window.open(url)", getServer().PREFIX + "/formatted-number.html"));
popup.waitForLoadState(LoadState.DOMCONTENTLOADED);
Object result = popup.evaluate("window.initialNavigatorLanguage");
assertEquals("fr-CH", result);
@@ -113,24 +113,24 @@ public class TestBrowserContextLocale extends TestBase {
@Test
void shouldWorkForMultiplePagesSharingSameProcess() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale("ru-RU"));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale("ru-RU"));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() -> page.evaluate(
- "url => window.open(url)", server.EMPTY_PAGE));
+ "url => window.open(url)", getServer().EMPTY_PAGE));
popup = page.waitForPopup(() -> page.evaluate(
- "url => window.open(url)", server.EMPTY_PAGE));
+ "url => window.open(url)", getServer().EMPTY_PAGE));
context.close();
}
@Test
void shouldBeIsolatedBetweenContexts() {
- BrowserContext context1 = browser.newContext(new Browser.NewContextOptions().setLocale("en-US"));
+ BrowserContext context1 = getBrowser().newContext(new Browser.NewContextOptions().setLocale("en-US"));
// By default firefox limits number of child web processes to 8.
for (int i = 0; i < 8; i++)
context1.newPage();
- BrowserContext context2 = browser.newContext(new Browser.NewContextOptions().setLocale("ru-RU"));
+ BrowserContext context2 = getBrowser().newContext(new Browser.NewContextOptions().setLocale("ru-RU"));
Page page2 = context2.newPage();
String localeNumber = "(1000000.50).toLocaleString()";
@@ -151,18 +151,18 @@ public class TestBrowserContextLocale extends TestBase {
String defaultLocale;
{
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
defaultLocale = getContextLocale.apply(context);
context.close();
}
String localeOverride = "ru-RU".equals(defaultLocale) ? "de-DE" : "ru-RU";
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setLocale(localeOverride));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setLocale(localeOverride));
assertEquals(localeOverride, getContextLocale.apply(context));
context.close();
}
{
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
assertEquals(defaultLocale, getContextLocale.apply(context));
context.close();
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextProxy.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextProxy.java
index bf39e37f..22b20bd7 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextProxy.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextProxy.java
@@ -45,8 +45,8 @@ public class TestBrowserContextProxy extends TestBase {
@Test
@EnabledIf(value="isChromiumWindows", disabledReason="Platform-specific")
void shouldThrowForMissingGlobalProxyOnChromiumWindows() {
- try (Browser browser = browserType.launch(createLaunchOptions())) {
- browser.newContext(new Browser.NewContextOptions().setProxy("localhost:" + server.PORT));
+ try (Browser browser = getBrowserType().launch(createLaunchOptions())) {
+ browser.newContext(new Browser.NewContextOptions().setProxy("localhost:" + getServer().PORT));
fail("did not throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("Browser needs to be launched with the global proxy"));
@@ -59,13 +59,13 @@ public class TestBrowserContextProxy extends TestBase {
@Test
void shouldUseProxy() {
- server.setRoute("/target.html", exchange -> {
+ getServer().setRoute("/target.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Served by the proxy");
}
});
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy("localhost:" + server.PORT));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy("localhost:" + getServer().PORT));
Page page = context.newPage();
page.navigate("http://non-existent.com/target.html");
assertEquals("Served by the proxy", page.title());
@@ -74,14 +74,14 @@ public class TestBrowserContextProxy extends TestBase {
@Test
void shouldUseProxyTwice() {
- server.setRoute("/target.html", exchange -> {
+ getServer().setRoute("/target.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Served by the proxy");
}
});
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy(
- new Proxy("localhost:" + server.PORT)));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy(
+ new Proxy("localhost:" + getServer().PORT)));
Page page = context.newPage();
page.navigate("http://non-existent.com/target.html");
page.navigate("http://non-existent-2.com/target.html");
@@ -91,14 +91,14 @@ public class TestBrowserContextProxy extends TestBase {
@Test
void shouldUseProxyForSecondPage() {
- server.setRoute("/target.html", exchange -> {
+ getServer().setRoute("/target.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Served by the proxy");
}
});
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy(
- new Proxy("localhost:" + server.PORT)));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy(
+ new Proxy("localhost:" + getServer().PORT)));
Page page = context.newPage();
page.navigate("http://non-existent.com/target.html");
@@ -113,14 +113,14 @@ public class TestBrowserContextProxy extends TestBase {
@Test
void shouldWorkWithIPPORTNotion() {
- server.setRoute("/target.html", exchange -> {
+ getServer().setRoute("/target.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Served by the proxy");
}
});
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy(
- new Proxy("127.0.0.1:" + server.PORT)));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy(
+ new Proxy("127.0.0.1:" + getServer().PORT)));
Page page = context.newPage();
page.navigate("http://non-existent.com/target.html");
@@ -130,7 +130,7 @@ public class TestBrowserContextProxy extends TestBase {
@Test
void shouldAuthenticate() {
- server.setRoute("/target.html", exchange -> {
+ getServer().setRoute("/target.html", exchange -> {
List auth = exchange.getRequestHeaders().get("proxy-authorization");
if (auth == null) {
exchange.getResponseHeaders().add("Proxy-Authenticate", "Basic realm='Access to internal site'");
@@ -143,8 +143,8 @@ public class TestBrowserContextProxy extends TestBase {
writer.write("" + auth.get(0) + "");
}
});
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy(
- new Proxy("localhost:" + server.PORT)
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy(
+ new Proxy("localhost:" + getServer().PORT)
.setUsername("user")
.setPassword("secret")));
Page page = context.newPage();
@@ -160,14 +160,14 @@ public class TestBrowserContextProxy extends TestBase {
@Test
@DisabledIf(value="isChromiumHeadful", disabledReason="fixme")
void shouldExcludePatterns() {
- server.setRoute("/target.html", exchange -> {
+ getServer().setRoute("/target.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Served by the proxy");
}
});
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy(
- new Proxy("127.0.0.1:" + server.PORT)
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy(
+ new Proxy("127.0.0.1:" + getServer().PORT)
// FYI: using long and weird domain names to avoid ATT DNS hijacking
// that resolves everything to some weird search results page.
//
@@ -212,7 +212,7 @@ public class TestBrowserContextProxy extends TestBase {
@Test
void doesLaunchWithoutAPort() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setProxy(
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setProxy(
new Proxy("http://localhost")));
context.close();
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java
index 7d87153d..db672cc9 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java
@@ -29,7 +29,7 @@ public class TestBrowserContextRoute extends TestBase {
@Test
void shouldIntercept() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
boolean[] intercepted = {false};
Page page = context.newPage();
context.route("**/empty.html", route -> {
@@ -45,7 +45,7 @@ public class TestBrowserContextRoute extends TestBase {
assertEquals("about:blank", request.frame().url());
route.resume();
});
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertTrue(response.ok());
assertTrue(intercepted[0]);
context.close();
@@ -53,7 +53,7 @@ public class TestBrowserContextRoute extends TestBase {
@Test
void shouldUnroute() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
List intercepted = new ArrayList<>();
@@ -74,17 +74,17 @@ public class TestBrowserContextRoute extends TestBase {
intercepted.add(4);
route.resume();
});
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList(1), intercepted);
intercepted.clear();
context.unroute("**/empty.html", handler1);
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList(2), intercepted);
intercepted.clear();
context.unroute("**/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList(4), intercepted);
context.close();
@@ -92,7 +92,7 @@ public class TestBrowserContextRoute extends TestBase {
@Test
void shouldYieldToPageRoute() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
context.route("**/empty.html", route -> {
route.fulfill(new Route.FulfillOptions().setStatus(200).setBody("context"));
});
@@ -100,7 +100,7 @@ public class TestBrowserContextRoute extends TestBase {
page.route("**/empty.html", route -> {
route.fulfill(new Route.FulfillOptions().setStatus(200).setBody("page"));
});
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertTrue(response.ok());
assertEquals("page", response.text());
context.close();
@@ -108,7 +108,7 @@ public class TestBrowserContextRoute extends TestBase {
@Test
void shouldFallBackToContextRoute() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
context.route("**/empty.html", route -> {
route.fulfill(new Route.FulfillOptions().setStatus(200).setBody("context"));
});
@@ -116,7 +116,7 @@ public class TestBrowserContextRoute extends TestBase {
page.route("**/non-empty.html", route -> {
route.fulfill(new Route.FulfillOptions().setStatus(200).setBody("page"));
});
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertTrue(response.ok());
assertEquals("context", response.text());
context.close();
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java
index 2da1e954..c79f6ebc 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java
@@ -73,7 +73,7 @@ public class TestBrowserContextStorageState extends TestBase {
" }\n" +
" ]\n" +
"}";
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setStorageState(storageState));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setStorageState(storageState));
Page page = context.newPage();
page.route("**/*", route -> {
route.fulfill(new Route.FulfillOptions().setBody(""));
@@ -124,7 +124,7 @@ public class TestBrowserContextStorageState extends TestBase {
try (InputStreamReader reader = new InputStreamReader(new FileInputStream(path.toFile()), StandardCharsets.UTF_8)) {
assertEquals(expected, new Gson().fromJson(reader, JsonObject.class));
}
- BrowserContext context2 = browser.newContext(new Browser.NewContextOptions().setStorageStatePath(path));
+ BrowserContext context2 = getBrowser().newContext(new Browser.NewContextOptions().setStorageStatePath(path));
Page page2 = context2.newPage();
page2.route("**/*", route -> {
route.fulfill(new Route.FulfillOptions().setBody(""));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java
index fb4616b1..00761c28 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java
@@ -88,9 +88,9 @@ public class TestBrowserContextViewport extends TestBase {
@Test
void shouldNotHaveTouchByDefault() {
- page.navigate(server.PREFIX + "/mobile.html");
+ page.navigate(getServer().PREFIX + "/mobile.html");
assertEquals(false, page.evaluate("() => 'ontouchstart' in window"));
- page.navigate(server.PREFIX + "/detect-touch.html");
+ page.navigate(getServer().PREFIX + "/detect-touch.html");
assertEquals("NO", page.evaluate("() => document.body.textContent.trim()"));
}
@@ -98,9 +98,9 @@ public class TestBrowserContextViewport extends TestBase {
void shouldSupportTouchWithNullViewport() {
Browser.NewContextOptions options = new Browser.NewContextOptions()
.setHasTouch(true).setViewportSize(null);
- BrowserContext context = browser.newContext(options);
+ BrowserContext context = getBrowser().newContext(options);
Page page = context.newPage();
- page.navigate(server.PREFIX + "/mobile.html");
+ page.navigate(getServer().PREFIX + "/mobile.html");
assertEquals(true, page.evaluate("() => 'ontouchstart' in window"));
context.close();
}
@@ -108,7 +108,7 @@ public class TestBrowserContextViewport extends TestBase {
@Test
void shouldReportNullViewPortSizeWhenGivenNullViewport() {
Browser.NewContextOptions options = new Browser.NewContextOptions().setViewportSize(null);
- BrowserContext context = browser.newContext(options);
+ BrowserContext context = getBrowser().newContext(options);
Page page = context.newPage();
assertNull(page.viewportSize());
context.close();
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeBasic.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeBasic.java
index d54e5fb5..bf006616 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeBasic.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeBasic.java
@@ -31,20 +31,20 @@ public class TestBrowserTypeBasic extends TestBase {
void browserTypeExecutablePathShouldWork() {
Assumptions.assumeTrue(getBrowserChannelFromEnv() == null);
Assumptions.assumeTrue(createLaunchOptions().executablePath == null, "Skip with custom executable path");
- String executablePath = browserType.executablePath();
+ String executablePath = getBrowserType().executablePath();
assertTrue(Files.exists(Paths.get(executablePath)));
}
@Test
void browserTypeNameShouldWork() {
- assertEquals(getBrowserNameFromEnv(), browserType.name());
+ assertEquals(getBrowserNameFromEnv(), getBrowserType().name());
}
@Test
@DisabledIf(value="com.microsoft.playwright.TestBase#isChromium", disabledReason="Non-chromium behavior")
void shouldThrowWhenTryingToConnectWithNotChromium() {
try {
- browserType.connectOverCDP("foo");
+ getBrowserType().connectOverCDP("foo");
fail("did not throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("Connecting over CDP is only supported in Chromium."));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeConnect.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeConnect.java
index 27a00660..4e0f09ac 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeConnect.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserTypeConnect.java
@@ -18,14 +18,12 @@ package com.microsoft.playwright;
import com.microsoft.playwright.impl.Driver;
import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.net.InetSocketAddress;
import java.nio.file.Path;
import static com.microsoft.playwright.Utils.mapOf;
@@ -59,7 +57,7 @@ public class TestBrowserTypeConnect extends TestBase {
String cliJs = dir.resolve("package/lib/cli/cli.js").toString();
// We launch node process directly instead of using playwright.sh script as killing the script
// process will leave node process running and killing it would be more hassle.
- ProcessBuilder pb = new ProcessBuilder(node, cliJs, "launch-server", browserType.name());
+ ProcessBuilder pb = new ProcessBuilder(node, cliJs, "launch-server", getBrowserType().name());
pb.directory(dir.toFile());
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
BrowserServer result = new BrowserServer();
@@ -82,7 +80,7 @@ public class TestBrowserTypeConnect extends TestBase {
BrowserServer r = launchBrowserServer();
wsEndpoint = r.wsEndpoint;
browserServer = r.process;
- browser = browserType.connect(wsEndpoint);
+ setBrowser(getBrowserType().connect(wsEndpoint));
// Do not actually connect to browser, the tests will do it manually.
}
@@ -99,42 +97,42 @@ public class TestBrowserTypeConnect extends TestBase {
@Test
void shouldBeAbleToReconnectToABrowser() {
{
- Browser browser = browserType.connect(wsEndpoint);
+ Browser browser = getBrowserType().connect(wsEndpoint);
BrowserContext browserContext = browser.newContext();
assertEquals(0, browserContext.pages().size());
Page page = browserContext.newPage();
assertEquals(121, page.evaluate("11 * 11"));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
browser.close();
}
{
- Browser browser = browserType.connect(wsEndpoint);
+ Browser browser = getBrowserType().connect(wsEndpoint);
BrowserContext browserContext = browser.newContext();
Page page = browserContext.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
browser.close();
}
}
@Test
void shouldSupportSlowMo() {
- Browser browser = browserType.connect(wsEndpoint,
+ Browser browser = getBrowserType().connect(wsEndpoint,
new BrowserType.ConnectOptions().setSlowMo(1));
BrowserContext browserContext = browser.newContext();
Page page = browserContext.newPage();
assertEquals(121, page.evaluate("11 * 11"));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
browser.close();
}
@Test
void shouldBeAbleToConnectTwoBrowsersAtTheSameTime() {
- Browser browser1 = browserType.connect(wsEndpoint);
+ Browser browser1 = getBrowserType().connect(wsEndpoint);
assertEquals(0, browser1.contexts().size());
browser1.newContext();
assertEquals(1, browser1.contexts().size());
- Browser browser2 = browserType.connect(wsEndpoint);
+ Browser browser2 = getBrowserType().connect(wsEndpoint);
assertEquals(0, browser2.contexts().size());
browser2.newContext();
assertEquals(1, browser2.contexts().size());
@@ -151,7 +149,7 @@ public class TestBrowserTypeConnect extends TestBase {
void shouldSendExtraHeadersWithConnectRequest() throws Exception {
try (WebSocketServerImpl webSocketServer = WebSocketServerImpl.create()) {
try {
- browserType.connect("ws://localhost:" + webSocketServer.getPort() + "/ws",
+ getBrowserType().connect("ws://localhost:" + webSocketServer.getPort() + "/ws",
new BrowserType.ConnectOptions().setHeaders(mapOf("User-Agent", "Playwright", "foo", "bar")));
} catch (Exception e) {
}
@@ -166,8 +164,8 @@ public class TestBrowserTypeConnect extends TestBase {
// Launch another server to not affect other tests.
BrowserServer remote = launchBrowserServer();
- Browser browser1 = browserType.connect(remote.wsEndpoint);
- Browser browser2 = browserType.connect(remote.wsEndpoint);
+ Browser browser1 = getBrowserType().connect(remote.wsEndpoint);
+ Browser browser2 = getBrowserType().connect(remote.wsEndpoint);
int[] disconnected1 = {0};
int[] disconnected2 = {0};
@@ -193,7 +191,7 @@ public class TestBrowserTypeConnect extends TestBase {
@Test
void disconnectedEventShouldHaveBrowserAsArgument() {
- Browser browser = browserType.connect(wsEndpoint);
+ Browser browser = getBrowserType().connect(wsEndpoint);
Browser[] disconnected = {null};
browser.onDisconnected(b -> disconnected[0] = b);
browser.close();
@@ -206,7 +204,7 @@ public class TestBrowserTypeConnect extends TestBase {
@Test
void shouldSetTheBrowserConnectedState() {
- Browser remote = browserType.connect(wsEndpoint);
+ Browser remote = getBrowserType().connect(wsEndpoint);
assertTrue(remote.isConnected());
remote.close();
assertFalse(remote.isConnected());
@@ -216,7 +214,7 @@ public class TestBrowserTypeConnect extends TestBase {
void shouldThrowWhenUsedAfterIsConnectedReturnsFalse() throws InterruptedException {
// Launch another server to not affect other tests.
BrowserServer server = launchBrowserServer();
- Browser remote = browserType.connect(server.wsEndpoint);
+ Browser remote = getBrowserType().connect(server.wsEndpoint);
Page page = remote.newPage();
server.kill();
try {
@@ -229,13 +227,13 @@ public class TestBrowserTypeConnect extends TestBase {
@Test
void shouldRejectNavigationWhenBrowserCloses() {
- Browser remote = browserType.connect(wsEndpoint);
+ Browser remote = getBrowserType().connect(wsEndpoint);
Page page = remote.newPage();
- server.setRoute("/one-style.css", r -> {});
+ getServer().setRoute("/one-style.css", r -> {});
page.onRequest(r -> remote.close());
try {
- page.navigate(server.PREFIX + "/one-style.html", new Page.NavigateOptions().setTimeout(60000));
+ page.navigate(getServer().PREFIX + "/one-style.html", new Page.NavigateOptions().setTimeout(60000));
fail("did not throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("Playwright connection closed"));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestChromium.java b/playwright/src/test/java/com/microsoft/playwright/TestChromium.java
index 052fb71d..71520799 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestChromium.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestChromium.java
@@ -55,9 +55,9 @@ public class TestChromium extends TestBase {
@Test
void shouldConnectToAnExistingCdpSession() throws IOException {
int port = nextPort++;
- try (Browser browserServer = browserType.launch(createLaunchOptions()
+ try (Browser browserServer = getBrowserType().launch(createLaunchOptions()
.setArgs(asList("--remote-debugging-port=" + port)))) {
- Browser cdpBrowser = browserType.connectOverCDP("http://localhost:" + port);
+ Browser cdpBrowser = getBrowserType().connectOverCDP("http://localhost:" + port);
List contexts = cdpBrowser.contexts();
assertEquals(1, contexts.size());
cdpBrowser.close();
@@ -67,20 +67,20 @@ public class TestChromium extends TestBase {
@Test
void shouldConnectToAnExistingCdpSessionTwice() throws IOException {
int port = nextPort++;
- try (Browser browserServer = browserType.launch(createLaunchOptions()
+ try (Browser browserServer = getBrowserType().launch(createLaunchOptions()
.setArgs(asList("--remote-debugging-port=" + port)))) {
String endpointUrl = "http://localhost:" + port;
- Browser cdpBrowser1 = browserType.connectOverCDP(endpointUrl);
- Browser cdpBrowser2 = browserType.connectOverCDP(endpointUrl);
+ Browser cdpBrowser1 = getBrowserType().connectOverCDP(endpointUrl);
+ Browser cdpBrowser2 = getBrowserType().connectOverCDP(endpointUrl);
List contexts1 = cdpBrowser1.contexts();
assertEquals(1, contexts1.size());
Page page1 = contexts1.get(0).newPage();
- page1.navigate(server.EMPTY_PAGE);
+ page1.navigate(getServer().EMPTY_PAGE);
List contexts2 = cdpBrowser2.contexts();
assertEquals(1, contexts2.size());
Page page2 = contexts2.get(0).newPage();
- page2.navigate(server.EMPTY_PAGE);
+ page2.navigate(getServer().EMPTY_PAGE);
assertEquals(2, contexts1.get(0).pages().size());
assertEquals(2, contexts2.get(0).pages().size());
@@ -93,16 +93,16 @@ public class TestChromium extends TestBase {
@Test
void shouldConnectOverAWsEndpoint() throws IOException {
int port = nextPort++;
- try (Browser browserServer = browserType.launch(createLaunchOptions()
+ try (Browser browserServer = getBrowserType().launch(createLaunchOptions()
.setArgs(asList("--remote-debugging-port=" + port)))) {
String wsEndpoint = wsEndpointFromUrl("http://localhost:" + port + "/json/version/");
- Browser cdpBrowser1 = browserType.connectOverCDP(wsEndpoint);
+ Browser cdpBrowser1 = getBrowserType().connectOverCDP(wsEndpoint);
List contexts1 = cdpBrowser1.contexts();
assertEquals(1, contexts1.size());
cdpBrowser1.close();
- Browser cdpBrowser2 = browserType.connectOverCDP(wsEndpoint);
+ Browser cdpBrowser2 = getBrowserType().connectOverCDP(wsEndpoint);
List contexts2 = cdpBrowser2.contexts();
assertEquals(1, contexts2.size());
cdpBrowser2.close();
@@ -113,7 +113,7 @@ public class TestChromium extends TestBase {
void shouldSendExtraHeadersWithConnectRequest() throws Exception {
try (WebSocketServerImpl webSocketServer = WebSocketServerImpl.create()) {
try {
- browserType.connectOverCDP("ws://localhost:" + webSocketServer.getPort() + "/ws",
+ getBrowserType().connectOverCDP("ws://localhost:" + webSocketServer.getPort() + "/ws",
new BrowserType.ConnectOverCDPOptions().setHeaders(mapOf("User-Agent", "Playwright", "foo", "bar")));
} catch (Exception e) {
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestChromiumTracing.java b/playwright/src/test/java/com/microsoft/playwright/TestChromiumTracing.java
index e2eab764..1b773f39 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestChromiumTracing.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestChromiumTracing.java
@@ -35,36 +35,36 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestChromiumTracing extends TestBase {
@Test
void shouldOutputATrace(@TempDir Path tempDir) {
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
Path outputTraceFile = tempDir.resolve("trace.json");
- browser.startTracing(page, new Browser.StartTracingOptions()
+ getBrowser().startTracing(page, new Browser.StartTracingOptions()
.setScreenshots(true).setPath(outputTraceFile));
- page.navigate(server.PREFIX + "/grid.html");
- browser.stopTracing();
+ page.navigate(getServer().PREFIX + "/grid.html");
+ getBrowser().stopTracing();
assertTrue(Files.exists(outputTraceFile));
page.close();
}
@Test
void shouldCreateDirectoriesAsNeeded(@TempDir Path tempDir) {
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
Path filePath = tempDir.resolve("these/are/directories/trace.json");
- browser.startTracing(page, new Browser.StartTracingOptions()
+ getBrowser().startTracing(page, new Browser.StartTracingOptions()
.setScreenshots(true).setPath(filePath));
- page.navigate(server.PREFIX + "/grid.html");
- browser.stopTracing();
+ page.navigate(getServer().PREFIX + "/grid.html");
+ getBrowser().stopTracing();
assertTrue(Files.exists(filePath));
page.close();
}
@Test
void shouldRunWithCustomCategoriesIfProvided(@TempDir Path tempDir) throws IOException {
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
Path outputTraceFile = tempDir.resolve("trace.json");
- browser.startTracing(page, new Browser.StartTracingOptions()
+ getBrowser().startTracing(page, new Browser.StartTracingOptions()
.setPath(outputTraceFile)
.setCategories(asList("disabled-by-default-v8.cpu_profiler.hires")));
- browser.stopTracing();
+ getBrowser().stopTracing();
byte[] data = Files.readAllBytes(outputTraceFile);
JsonObject traceJson = new Gson().fromJson(new FileReader(outputTraceFile.toFile()), JsonObject.class);
assertTrue(traceJson.getAsJsonObject("metadata").get("trace-config")
@@ -74,30 +74,30 @@ public class TestChromiumTracing extends TestBase {
@Test
void shouldThrowIfTracingOnTwoPages(@TempDir Path tempDir) {
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
Path outputTraceFile = tempDir.resolve("trace.json");
- browser.startTracing(page, new Browser.StartTracingOptions()
+ getBrowser().startTracing(page, new Browser.StartTracingOptions()
.setPath(outputTraceFile));
- Page newPage = browser.newPage();
+ Page newPage = getBrowser().newPage();
try {
- browser.startTracing(newPage, new Browser.StartTracingOptions()
+ getBrowser().startTracing(newPage, new Browser.StartTracingOptions()
.setPath(outputTraceFile));
fail("did not throw");
} catch (PlaywrightException e) {
}
newPage.close();
- browser.stopTracing();
+ getBrowser().stopTracing();
page.close();
}
@Test
void shouldReturnABuffer(@TempDir Path tempDir) throws IOException {
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
Path outputTraceFile = tempDir.resolve("trace.json");
- browser.startTracing(page, new Browser.StartTracingOptions()
+ getBrowser().startTracing(page, new Browser.StartTracingOptions()
.setScreenshots(true).setPath(outputTraceFile));
- page.navigate(server.PREFIX + "/grid.html");
- byte[] trace = browser.stopTracing();
+ page.navigate(getServer().PREFIX + "/grid.html");
+ byte[] trace = getBrowser().stopTracing();
byte[] buf = Files.readAllBytes(outputTraceFile);
assertArrayEquals(buf, trace);
page.close();
@@ -105,20 +105,20 @@ public class TestChromiumTracing extends TestBase {
@Test
void shouldWorkWithoutOptions() {
- Page page = browser.newPage();
- browser.startTracing(page);
- page.navigate(server.PREFIX + "/grid.html");
- byte[] trace = browser.stopTracing();
+ Page page = getBrowser().newPage();
+ getBrowser().startTracing(page);
+ page.navigate(getServer().PREFIX + "/grid.html");
+ byte[] trace = getBrowser().stopTracing();
assertNotNull(trace);
page.close();
}
@Test
void shouldSupportABufferWithoutAPath() {
- Page page = browser.newPage();
- browser.startTracing(page, new Browser.StartTracingOptions().setScreenshots(true));
- page.navigate(server.PREFIX + "/grid.html");
- byte[] trace = browser.stopTracing();
+ Page page = getBrowser().newPage();
+ getBrowser().startTracing(page, new Browser.StartTracingOptions().setScreenshots(true));
+ page.navigate(getServer().PREFIX + "/grid.html");
+ byte[] trace = getBrowser().stopTracing();
assertTrue(new String(trace, StandardCharsets.UTF_8).contains("screenshot"));
page.close();
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestClick.java b/playwright/src/test/java/com/microsoft/playwright/TestClick.java
index 36753bc9..3302e012 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestClick.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestClick.java
@@ -21,7 +21,6 @@ import org.junit.jupiter.api.condition.DisabledIf;
import org.junit.jupiter.api.condition.EnabledIf;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import static com.microsoft.playwright.options.KeyboardModifier.SHIFT;
@@ -34,7 +33,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButton() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
}
@@ -50,7 +49,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButtonIfWindowNodeIsRemoved() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evaluate("() => delete window.Node");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
@@ -83,31 +82,31 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButtonAfterNavigation() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.click("button");
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
}
@Test
void shouldClickTheButtonAfterACrossOriginNavigation() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.click("button");
- page.navigate(server.CROSS_PROCESS_PREFIX + "/input/button.html");
+ page.navigate(getServer().CROSS_PROCESS_PREFIX + "/input/button.html");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
}
@Test
void shouldClickWithDisabledJavascript() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setJavaScriptEnabled(false));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setJavaScriptEnabled(false));
Page page = context.newPage();
- page.navigate(server.PREFIX + "/wrappedlink.html");
+ page.navigate(getServer().PREFIX + "/wrappedlink.html");
page.waitForNavigation(() -> page.click("a"));
- assertEquals(server.PREFIX + "/wrappedlink.html#clicked", page.url());
+ assertEquals(getServer().PREFIX + "/wrappedlink.html#clicked", page.url());
context.close();
}
@@ -127,7 +126,7 @@ public class TestClick extends TestBase {
@Test
void shouldSelectTheTextByTripleClicking() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
String text = "This is the text that we are going to try to select. Let's see how it goes.";
page.fill("textarea", text);
page.click("textarea", new Page.ClickOptions().setClickCount(3));
@@ -139,7 +138,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickOffscreenButtons() {
- page.navigate(server.PREFIX + "/offscreenbuttons.html");
+ page.navigate(getServer().PREFIX + "/offscreenbuttons.html");
List messages = new ArrayList<>();
page.onConsoleMessage(message -> messages.add(message.text()));
for (int i = 0; i < 11; ++i) {
@@ -164,14 +163,14 @@ public class TestClick extends TestBase {
@Test
void shouldWaitForVisibleWhenAlreadyVisible() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
}
@Test
void shouldNotWaitWithForce() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "b => b.style.display = 'none'");
Exception exception = null;
try {
@@ -198,14 +197,14 @@ public class TestClick extends TestBase {
@Test
void shouldClickWrappedLinks() {
- page.navigate(server.PREFIX + "/wrappedlink.html");
+ page.navigate(getServer().PREFIX + "/wrappedlink.html");
page.click("a");
assertTrue((Boolean) page.evaluate("__clicked"));
}
@Test
void shouldClickOnCheckboxInputAndToggle() {
- page.navigate(server.PREFIX + "/input/checkbox.html");
+ page.navigate(getServer().PREFIX + "/input/checkbox.html");
assertNull(page.evaluate("() => window['result'].check"));
page.click("input#agree");
assertTrue((Boolean) page.evaluate("() => window['result'].check"));
@@ -225,7 +224,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickOnCheckboxLabelAndToggle() {
- page.navigate(server.PREFIX + "/input/checkbox.html");
+ page.navigate(getServer().PREFIX + "/input/checkbox.html");
assertNull(page.evaluate("() => window['result'].check"));
page.click("label[for='agree']");
assertTrue((Boolean) page.evaluate("() => window['result'].check"));
@@ -241,7 +240,7 @@ public class TestClick extends TestBase {
@Test
void shouldNotHangWithTouchEnabledViewports() {
// @see https://github.com/GoogleChrome/puppeteer/issues/161
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setViewportSize(375, 667)
.setHasTouch(true));
Page page = context.newPage();
@@ -253,7 +252,7 @@ public class TestClick extends TestBase {
@Test
void shouldScrollAndClickTheButton() {
- page.navigate(server.PREFIX + "/input/scrollable.html");
+ page.navigate(getServer().PREFIX + "/input/scrollable.html");
page.click("#button-5");
assertEquals("clicked", page.evaluate("() => document.querySelector('#button-5').textContent"));
page.click("#button-80");
@@ -262,7 +261,7 @@ public class TestClick extends TestBase {
@Test
void shouldDoubleClickTheButton() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evaluate("() => {\n" +
" window['double'] = false;\n" +
" const button = document.querySelector('button');\n" +
@@ -277,7 +276,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickAPartiallyObscuredButton() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evaluate("() => {\n" +
" const button = document.querySelector('button');\n" +
" button.textContent = 'Some really long text that will go offscreen';\n" +
@@ -290,14 +289,14 @@ public class TestClick extends TestBase {
@Test
void shouldClickARotatedButton() {
- page.navigate(server.PREFIX + "/input/rotatedButton.html");
+ page.navigate(getServer().PREFIX + "/input/rotatedButton.html");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
}
@Test
void shouldFireContextmenuEventOnRightClick() {
- page.navigate(server.PREFIX + "/input/scrollable.html");
+ page.navigate(getServer().PREFIX + "/input/scrollable.html");
page.click("#button-8", new Page.ClickOptions().setButton(RIGHT));
assertEquals("context menu", page.evaluate("() => document.querySelector('#button-8').textContent"));
}
@@ -305,16 +304,16 @@ public class TestClick extends TestBase {
@Test
void shouldClickLinksWhichCauseNavigation() {
// @see https://github.com/GoogleChrome/puppeteer/issues/206
- page.setContent("empty.html");
+ page.setContent("empty.html");
// This should not hang.
page.click("a");
}
@Test
void shouldClickTheButtonInsideAnIframe() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.setContent("spacer
");
- Utils.attachFrame(page, "button-test", server.PREFIX + "/input/button.html");
+ Utils.attachFrame(page, "button-test", getServer().PREFIX + "/input/button.html");
Frame frame = page.frames().get(1);
ElementHandle button = frame.querySelector("button");
button.click();
@@ -327,10 +326,10 @@ public class TestClick extends TestBase {
// @see https://github.com/GoogleChrome/puppeteer/issues/4110
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=986390
// @see https://chromium-review.googlesource.com/c/chromium/src/+/1742784
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.setViewportSize(500, 500);
page.setContent("spacer
");
- Utils.attachFrame(page, "button-test", server.CROSS_PROCESS_PREFIX + "/input/button.html");
+ Utils.attachFrame(page, "button-test", getServer().CROSS_PROCESS_PREFIX + "/input/button.html");
Frame frame = page.frames().get(1);
frame.evalOnSelector("button", "button => button.style.setProperty('position', 'fixed')");
frame.click("button");
@@ -340,13 +339,13 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButtonWithDeviceScaleFactorSet() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setViewportSize(400, 400)
.setDeviceScaleFactor(5.0));
Page page = context.newPage();
assertEquals(5, page.evaluate("() => window.devicePixelRatio"));
page.setContent("spacer
");
- Utils.attachFrame(page, "button-test", server.PREFIX + "/input/button.html");
+ Utils.attachFrame(page, "button-test", getServer().PREFIX + "/input/button.html");
Frame frame = page.frames().get(1);
ElementHandle button = frame.querySelector("button");
button.click();
@@ -356,7 +355,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButtonWithPxBorderWithOffset() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "button => button.style.borderWidth = '8px'");
page.click("button", new Page.ClickOptions().setPosition(20, 10));
assertEquals(page.evaluate("result"), "Clicked");
@@ -367,7 +366,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButtonWithEmBorderWithOffset() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "button => button.style.borderWidth = '2em'");
page.evalOnSelector("button", "button => button.style.fontSize = '12px'");
page.click("button", new Page.ClickOptions().setPosition(20, 10));
@@ -379,7 +378,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickAVeryLargeButtonWithOffset() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "button => button.style.borderWidth = '8px'");
page.evalOnSelector("button", "button => button.style.height = button.style.width = '2000px'");
page.click("button", new Page.ClickOptions().setPosition(1900, 1910));
@@ -391,7 +390,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickAButtonInScrollingContainerWithOffset() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "button => {\n" +
" const container = document.createElement('div');\n" +
" container.style.overflow = 'auto';\n" +
@@ -413,11 +412,11 @@ public class TestClick extends TestBase {
@Test
@DisabledIf(value="com.microsoft.playwright.TestBase#isFirefox", disabledReason="skip")
void shouldClickTheButtonWithOffsetWithPageScale() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setViewportSize(400, 400)
.setIsMobile(true));
Page page = context.newPage();
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "button => {\n" +
" button.style.borderWidth = '8px';\n" +
" document.body.style.margin = '0';\n" +
@@ -443,7 +442,7 @@ public class TestClick extends TestBase {
@Test
void shouldWaitForStablePosition() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evalOnSelector("button", "button => {\n" +
" button.style.transition = 'margin 500ms linear 0s';\n" +
" button.style.marginLeft = '200px';\n" +
@@ -467,7 +466,7 @@ public class TestClick extends TestBase {
@Test
void shouldFailWhenObscuredAndNotWaitingForHitTarget() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
page.evaluate("() => {\n" +
" document.body.style.position = 'relative';\n" +
@@ -533,7 +532,7 @@ public class TestClick extends TestBase {
@Test
void shouldUpdateModifiersCorrectly() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.click("button", new Page.ClickOptions().setModifiers(asList(SHIFT)));
assertEquals(true, page.evaluate("shiftKey"));
page.click("button", new Page.ClickOptions().setModifiers(emptyList()));
@@ -561,7 +560,7 @@ public class TestClick extends TestBase {
@Test
void shouldReportNiceErrorWhenElementIsDetachedAndForceClicked() {
- page.navigate(server.PREFIX + "/input/animating-button.html");
+ page.navigate(getServer().PREFIX + "/input/animating-button.html");
page.evaluate("addButton()");
ElementHandle handle = page.querySelector("button");
page.evaluate("stopButton(true)");
@@ -611,7 +610,7 @@ public class TestClick extends TestBase {
@Test
void shouldClickTheButtonWhenWindowInnerWidthIsCorrupted() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evaluate("() => Object.defineProperty(window, 'innerWidth', {value: 0})");
page.click("button");
assertEquals("Clicked", page.evaluate("result"));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestDefaultBrowserContext2.java b/playwright/src/test/java/com/microsoft/playwright/TestDefaultBrowserContext2.java
index 298d583e..4911d9c5 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestDefaultBrowserContext2.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestDefaultBrowserContext2.java
@@ -43,14 +43,14 @@ public class TestDefaultBrowserContext2 extends TestBase {
throw new RuntimeException(e);
}
assertNull(persistentContext);
- persistentContext = browserType.launchPersistentContext(userDataDir, options);
+ persistentContext = getBrowserType().launchPersistentContext(userDataDir, options);
return persistentContext.pages().get(0);
}
@Test
void shouldSupportHasTouchOption() {
Page page = launchPersistent(new BrowserType.LaunchPersistentContextOptions().setHasTouch(true));
- page.navigate(server.PREFIX + "/mobile.html");
+ page.navigate(getServer().PREFIX + "/mobile.html");
assertEquals(true, page.evaluate("() => 'ontouchstart' in window"));
}
@@ -60,7 +60,7 @@ public class TestDefaultBrowserContext2 extends TestBase {
// Firefox does not support mobile.
Page page = launchPersistent(new BrowserType.LaunchPersistentContextOptions()
.setViewportSize(320, 480).setIsMobile(true));
- page.navigate(server.PREFIX + "/empty.html");
+ page.navigate(getServer().PREFIX + "/empty.html");
assertEquals(980, page.evaluate("() => window.innerWidth"));
}
@@ -91,7 +91,7 @@ public class TestDefaultBrowserContext2 extends TestBase {
Page page = launchPersistent(new BrowserType.LaunchPersistentContextOptions()
.setGeolocation(new Geolocation(10, 10))
.setPermissions(asList("geolocation")));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object geolocation = page.evaluate("() => new Promise(resolve => navigator.geolocation.getCurrentPosition(position => {\n" +
" resolve({latitude: position.coords.latitude, longitude: position.coords.longitude});\n" +
"}))");
@@ -110,8 +110,8 @@ public class TestDefaultBrowserContext2 extends TestBase {
void shouldSupportExtraHTTPHeadersOption() throws ExecutionException, InterruptedException {
// TODO: test.flaky(browserName === "firefox" && headful && platform === "linux", "Intermittent timeout on bots");
Page page = launchPersistent(new BrowserType.LaunchPersistentContextOptions().setExtraHTTPHeaders(mapOf("foo", "bar")));
- Future request = server.futureRequest("/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ Future request = getServer().futureRequest("/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList("bar"), request.get().headers.get("foo"));
}
@@ -119,7 +119,7 @@ public class TestDefaultBrowserContext2 extends TestBase {
void shouldAcceptUserDataDir() throws IOException {
// TODO: test.flaky(browserName === "chromium");
Path userDataDir = Files.createTempDirectory("user-data-dir-");
- BrowserContext context = browserType.launchPersistentContext(userDataDir);
+ BrowserContext context = getBrowserType().launchPersistentContext(userDataDir);
assertTrue(userDataDir.toFile().listFiles().length > 0);
context.close();
assertTrue(userDataDir.toFile().listFiles().length > 0);
@@ -130,22 +130,22 @@ public class TestDefaultBrowserContext2 extends TestBase {
// TODO: test.slow();
Path userDataDir = Files.createTempDirectory("user-data-dir-");
BrowserType.LaunchPersistentContextOptions browserOptions = null;
- BrowserContext browserContext = browserType.launchPersistentContext(userDataDir, browserOptions);
+ BrowserContext browserContext = getBrowserType().launchPersistentContext(userDataDir, browserOptions);
Page page = browserContext.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.evaluate("() => localStorage.hey = 'hello'");
browserContext.close();
- BrowserContext browserContext2 = browserType.launchPersistentContext(userDataDir, browserOptions);
+ BrowserContext browserContext2 = getBrowserType().launchPersistentContext(userDataDir, browserOptions);
Page page2 = browserContext2.newPage();
- page2.navigate(server.EMPTY_PAGE);
+ page2.navigate(getServer().EMPTY_PAGE);
assertEquals("hello", page2.evaluate("localStorage.hey"));
browserContext2.close();
Path userDataDir2 = Files.createTempDirectory("user-data-dir-");
- BrowserContext browserContext3 = browserType.launchPersistentContext(userDataDir2, browserOptions);
+ BrowserContext browserContext3 = getBrowserType().launchPersistentContext(userDataDir2, browserOptions);
Page page3 = browserContext3.newPage();
- page3.navigate(server.EMPTY_PAGE);
+ page3.navigate(getServer().EMPTY_PAGE);
assertNotEquals("hello", page3.evaluate("localStorage.hey"));
browserContext3.close();
}
@@ -155,9 +155,9 @@ public class TestDefaultBrowserContext2 extends TestBase {
// TODO: test.flaky(browserName === "chromium");
Path userDataDir = Files.createTempDirectory("user-data-dir-");
BrowserType.LaunchPersistentContextOptions browserOptions = null;
- BrowserContext browserContext = browserType.launchPersistentContext(userDataDir, browserOptions);
+ BrowserContext browserContext = getBrowserType().launchPersistentContext(userDataDir, browserOptions);
Page page = browserContext.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object documentCookie = page.evaluate("() => {\n" +
" document.cookie = 'doSomethingOnlyOnce=true; expires=Fri, 31 Dec 9999 23:59:59 GMT';\n" +
" return document.cookie;\n" +
@@ -165,16 +165,16 @@ public class TestDefaultBrowserContext2 extends TestBase {
assertEquals("doSomethingOnlyOnce=true", documentCookie);
browserContext.close();
- BrowserContext browserContext2 = browserType.launchPersistentContext(userDataDir, browserOptions);
+ BrowserContext browserContext2 = getBrowserType().launchPersistentContext(userDataDir, browserOptions);
Page page2 = browserContext2.newPage();
- page2.navigate(server.EMPTY_PAGE);
+ page2.navigate(getServer().EMPTY_PAGE);
assertEquals("doSomethingOnlyOnce=true", page2.evaluate("() => document.cookie"));
browserContext2.close();
Path userDataDir2 = Files.createTempDirectory("user-data-dir-");
- BrowserContext browserContext3 = browserType.launchPersistentContext(userDataDir2, browserOptions);
+ BrowserContext browserContext3 = getBrowserType().launchPersistentContext(userDataDir2, browserOptions);
Page page3 = browserContext3.newPage();
- page3.navigate(server.EMPTY_PAGE);
+ page3.navigate(getServer().EMPTY_PAGE);
assertNotEquals("doSomethingOnlyOnce=true", page3.evaluate("() => document.cookie"));
browserContext3.close();
}
@@ -190,10 +190,10 @@ public class TestDefaultBrowserContext2 extends TestBase {
@DisabledIf(value="com.microsoft.playwright.TestBase#isFirefox", disabledReason="skip")
void shouldThrowIfPageArgumentIsPassed() throws IOException {
BrowserType.LaunchPersistentContextOptions options = new BrowserType.LaunchPersistentContextOptions()
- .setArgs(asList(server.EMPTY_PAGE));
+ .setArgs(asList(getServer().EMPTY_PAGE));
Path userDataDir = Files.createTempDirectory("user-data-dir-");
try {
- browserType.launchPersistentContext(userDataDir, options);
+ getBrowserType().launchPersistentContext(userDataDir, options);
fail("did not throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("can not specify page"));
@@ -204,7 +204,7 @@ public class TestDefaultBrowserContext2 extends TestBase {
void shouldWorkWithIgnoreDefaultArgs() {
// Ignore arguments by name.
BrowserType.LaunchOptions options = new BrowserType.LaunchOptions().setIgnoreDefaultArgs(asList("foo"));
- Browser browser = browserType.launch(options);
+ Browser browser = getBrowserType().launch(options);
Page page = browser.newPage();
browser.close();
// Check that there is a way to ignore all arguments.
@@ -249,7 +249,7 @@ public class TestDefaultBrowserContext2 extends TestBase {
" return Array.from(root.querySelectorAll(selector));\n" +
" }\n" +
"}";
- playwright.selectors().register("defaultContextCSS", defaultContextCSS);
+ getPlaywright().selectors().register("defaultContextCSS", defaultContextCSS);
page.setContent("hello
");
assertEquals("hello", page.innerHTML("css=div"));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestDialog.java b/playwright/src/test/java/com/microsoft/playwright/TestDialog.java
index 4f5d8a2e..30410a62 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestDialog.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestDialog.java
@@ -97,7 +97,7 @@ public class TestDialog extends TestBase {
@Test
@DisabledIf(value="isWebKitMac", disabledReason="fixme")
void shouldBeAbleToCloseContextWithOpenAlert() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
boolean[] didShowDialog = {false};
page.onDialog(dialog -> didShowDialog[0] = true);
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestDispatchEvent.java b/playwright/src/test/java/com/microsoft/playwright/TestDispatchEvent.java
index 57781da7..53d91680 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestDispatchEvent.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestDispatchEvent.java
@@ -26,14 +26,14 @@ public class TestDispatchEvent extends TestBase {
@Test
void shouldDispatchClickEvent() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.dispatchEvent("button", "click");
assertEquals("Clicked", page.evaluate("() => window['result']"));
}
@Test
void shouldDispatchClickEventProperties() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.dispatchEvent("button", "click");
assertNotNull(page.evaluate("bubbles"));
assertNotNull(page.evaluate("cancelable"));
@@ -63,18 +63,18 @@ public class TestDispatchEvent extends TestBase {
@Test
void shouldDispatchClickAfterNavigation() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.dispatchEvent("button", "click");
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.dispatchEvent("button", "click");
assertEquals("Clicked", page.evaluate("() => window['result']"));
}
@Test
void shouldDispatchClickAfterACrossOriginNavigation() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.dispatchEvent("button", "click");
- page.navigate(server.CROSS_PROCESS_PREFIX + "/input/button.html");
+ page.navigate(getServer().CROSS_PROCESS_PREFIX + "/input/button.html");
page.dispatchEvent("button", "click");
assertEquals("Clicked", page.evaluate("() => window['result']"));
}
@@ -97,7 +97,7 @@ public class TestDispatchEvent extends TestBase {
@Test
void shouldDispatchClickWhenNodeIsAddedInShadowDom() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.evaluate("() => {\n" +
" const div = document.createElement('div');\n" +
" div.attachShadow({mode: 'open'});\n" +
@@ -122,7 +122,7 @@ public class TestDispatchEvent extends TestBase {
@Test
void shouldDispatchDragDropEvents() {
- page.navigate(server.PREFIX + "/drag-n-drop.html");
+ page.navigate(getServer().PREFIX + "/drag-n-drop.html");
JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()");
page.dispatchEvent("#source", "dragstart", mapOf("dataTransfer", dataTransfer));
page.dispatchEvent("#target", "drop", mapOf("dataTransfer", dataTransfer));
@@ -135,7 +135,7 @@ public class TestDispatchEvent extends TestBase {
@Test
void shouldDispatchDragDropEventsOnHandle() {
- page.navigate(server.PREFIX + "/drag-n-drop.html");
+ page.navigate(getServer().PREFIX + "/drag-n-drop.html");
JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()");
ElementHandle source = page.querySelector("#source");
source.dispatchEvent("dragstart", mapOf("dataTransfer", dataTransfer));
@@ -148,7 +148,7 @@ public class TestDispatchEvent extends TestBase {
@Test
void shouldDispatchClickEventOnHandle() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
button.dispatchEvent("click");
assertEquals("Clicked", page.evaluate("() => window['result']"));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestDownload.java b/playwright/src/test/java/com/microsoft/playwright/TestDownload.java
index 510e21d4..83e655ac 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestDownload.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestDownload.java
@@ -42,7 +42,7 @@ public class TestDownload extends TestBase {
@BeforeEach
void addRoutes() {
- server.setRoute("/download", exchange -> {
+ getServer().setRoute("/download", exchange -> {
exchange.getResponseHeaders().add("Content-Type", "application/octet-stream");
exchange.getResponseHeaders().add("Content-Disposition", "attachment");
exchange.sendResponseHeaders(200, 0);
@@ -50,7 +50,7 @@ public class TestDownload extends TestBase {
writer.write("Hello world");
}
});
- server.setRoute("/downloadWithFilename", exchange -> {
+ getServer().setRoute("/downloadWithFilename", exchange -> {
exchange.getResponseHeaders().add("Content-Type", "application/octet-stream");
exchange.getResponseHeaders().add("Content-Disposition", "attachment; filename=file.txt");
exchange.sendResponseHeaders(200, 0);
@@ -62,9 +62,9 @@ public class TestDownload extends TestBase {
@Test
void shouldReportDownloadsWithAcceptDownloadsFalse() {
- page.setContent("download");
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
- assertEquals(server.PREFIX + "/downloadWithFilename", download.url());
+ assertEquals(getServer().PREFIX + "/downloadWithFilename", download.url());
assertEquals("file.txt", download.suggestedFilename());
try {
download.path();
@@ -76,8 +76,8 @@ public class TestDownload extends TestBase {
}
@Test
void shouldReportDownloadsWithAcceptDownloadsTrue() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path path = download.path();
assertTrue(Files.exists(path));
@@ -88,8 +88,8 @@ public class TestDownload extends TestBase {
@Test
void shouldSaveToUserSpecifiedPath() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path userFile = Files.createTempFile("download-", ".txt");
@@ -102,8 +102,8 @@ public class TestDownload extends TestBase {
@Test
void shouldSaveToUserSpecifiedPathWithoutUpdatingOriginalPath() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path userFile = Files.createTempFile("download-", ".txt");
@@ -125,8 +125,8 @@ public class TestDownload extends TestBase {
@Test
void shouldSaveToTwoDifferentPathsWithMultipleSaveAsCalls() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
{
Path userFile = Files.createTempFile("download-", ".txt");
@@ -147,8 +147,8 @@ public class TestDownload extends TestBase {
@Test
void shouldSaveToOverwrittenFilepath() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path userFile = Files.createTempFile("download-", ".txt");
{
@@ -168,8 +168,8 @@ public class TestDownload extends TestBase {
@Test
void shouldCreateSubdirectoriesWhenSavingToNonExistentUserSpecifiedPath() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path downloads = Files.createTempDirectory("downloads");
@@ -187,8 +187,8 @@ public class TestDownload extends TestBase {
@Test
void shouldErrorWhenSavingWithDownloadsDisabled() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(false));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(false));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path userPath = Files.createTempFile("download-", ".txt");
@@ -203,8 +203,8 @@ public class TestDownload extends TestBase {
@Test
void shouldErrorWhenSavingAfterDeletion() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path userPath = Files.createTempFile("download-", ".txt");
@@ -225,7 +225,7 @@ public class TestDownload extends TestBase {
@Test
void shouldReportNonNavigationDownloads() throws IOException {
// Mac WebKit embedder does not download in this case, although Safari does.
- server.setRoute("/download", exchange -> {
+ getServer().setRoute("/download", exchange -> {
exchange.getResponseHeaders().add("Content-Type", "application/octet-stream");
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
@@ -233,9 +233,9 @@ public class TestDownload extends TestBase {
}
});
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.navigate(server.EMPTY_PAGE);
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.navigate(getServer().EMPTY_PAGE);
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
assertEquals("file.txt", download.suggestedFilename());
@@ -248,8 +248,8 @@ public class TestDownload extends TestBase {
@Test
void shouldReportDownloadPathWithinPageOnDownloadHandlerForFiles() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
@SuppressWarnings("unchecked")
Download[] download = {null};
page.onDownload(d -> download[0] = d);
@@ -268,11 +268,11 @@ public class TestDownload extends TestBase {
@Test
void shouldReportDownloadPathWithinPageOnDownloadHandlerForBlobs() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
@SuppressWarnings("unchecked")
Download[] download = {null};
page.onDownload(d -> download[0] = d);
- page.navigate(server.PREFIX + "/download-blob.html");
+ page.navigate(getServer().PREFIX + "/download-blob.html");
page.click("a");
Instant start = Instant.now();
while (download[0] == null) {
@@ -291,15 +291,15 @@ public class TestDownload extends TestBase {
void shouldReportAltClickDownloads() throws IOException {
// Firefox does not download on alt-click by default.
// Our WebKit embedder does not download on alt-click, although Safari does.
- server.setRoute("/download", exchange -> {
+ getServer().setRoute("/download", exchange -> {
exchange.getResponseHeaders().add("Content-Type", "application/octet-stream");
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("Hello world");
}
});
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a", new Page.ClickOptions().setModifiers(asList(ALT))));
Path path = download.path();
assertTrue(Files.exists(path));
@@ -319,8 +319,8 @@ public class TestDownload extends TestBase {
// TODO: - the test fails in headful Chromium as the popup page gets closed along
// with the session before download completed event arrives.
// - WebKit doesn't close the popup page
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path path = download.path();
assertTrue(Files.exists(path));
@@ -331,8 +331,8 @@ public class TestDownload extends TestBase {
@Test
void shouldDeleteFile() {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
Path path = download.path();
assertTrue(Files.exists(path));
@@ -343,8 +343,8 @@ public class TestDownload extends TestBase {
@Test
void shouldExposeStream() throws IOException {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download = page.waitForDownload(() -> page.click("a"));
InputStream stream = download.createReadStream();
@@ -356,8 +356,8 @@ public class TestDownload extends TestBase {
@Test
void shouldDeleteDownloadsOnContextDestruction() {
- Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
+ page.setContent("download");
Download download1 = page.waitForDownload(() -> page.click("a"));
Download download2 = page.waitForDownload(() -> page.click("a"));
Path path1 = download1.path();
@@ -371,9 +371,9 @@ public class TestDownload extends TestBase {
@Test
void shouldDeleteDownloadsOnBrowserGone() {
- Browser browser = browserType.launch();
+ Browser browser = getBrowserType().launch();
Page page = browser.newPage(new Browser.NewPageOptions().setAcceptDownloads(true));
- page.setContent("download");
+ page.setContent("download");
Download download1 = page.waitForDownload(() -> page.click("a"));
Download download2 = page.waitForDownload(() -> page.click("a"));
Path path1 = download1.path();
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleBoundingBox.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleBoundingBox.java
index fa4acd92..42335546 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleBoundingBox.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleBoundingBox.java
@@ -34,7 +34,7 @@ public class TestElementHandleBoundingBox extends TestBase {
@DisabledIf(value="isFirefoxHeadful", disabledReason="fail")
void shouldWork() {
page.setViewportSize(500, 500);
- page.navigate(server.PREFIX + "/grid.html");
+ page.navigate(getServer().PREFIX + "/grid.html");
ElementHandle elementHandle = page.querySelector(".box:nth-of-type(13)");
BoundingBox box = elementHandle.boundingBox();
assertEquals(100, box.x);
@@ -46,7 +46,7 @@ public class TestElementHandleBoundingBox extends TestBase {
@Test
void shouldHandleNestedFrames() {
page.setViewportSize(500, 500);
- page.navigate(server.PREFIX + "/frames/nested-frames.html");
+ page.navigate(getServer().PREFIX + "/frames/nested-frames.html");
Frame nestedFrame = page.frame("dos");
assertNotNull(nestedFrame);
ElementHandle elementHandle = nestedFrame.querySelector("div");
@@ -98,10 +98,10 @@ public class TestElementHandleBoundingBox extends TestBase {
@Test
@DisabledIf(value="com.microsoft.playwright.TestBase#isFirefox", disabledReason="skip")
void shouldWorkWithPageScale() {
- BrowserContext context = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions()
.setViewportSize(400, 400).setIsMobile(true));
Page page = context.newPage();
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
button.evaluate("button => {\n" +
" document.body.style.margin = '0';\n" +
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleClick.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleClick.java
index 83ec17cf..b6939a68 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleClick.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleClick.java
@@ -24,7 +24,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldWork() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
button.click();
assertEquals("Clicked", page.evaluate("() => window['result']"));
@@ -32,7 +32,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldWorkWithNodeRemoved() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evaluate("() => delete window['Node']");
ElementHandle button = page.querySelector("button");
button.click();
@@ -41,7 +41,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldWorkForShadowDOMV1() {
- page.navigate(server.PREFIX + "/shadow.html");
+ page.navigate(getServer().PREFIX + "/shadow.html");
ElementHandle buttonHandle = page.evaluateHandle("() => window['button']").asElement();
buttonHandle.click();
assertEquals(true, page.evaluate("clicked"));
@@ -49,7 +49,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldWorkForTextNodes() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle buttonTextNode = page.evaluateHandle("() => document.querySelector('button').firstChild").asElement();
buttonTextNode.click();
assertEquals("Clicked", page.evaluate("() => window['result']"));
@@ -57,7 +57,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldThrowForDetachedNodes() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
page.evaluate("button => button.remove()", button);
try {
@@ -70,7 +70,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldThrowForHiddenNodesWithForce() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
page.evaluate("button => button.style.display = 'none'", button);
try {
@@ -83,7 +83,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldThrowForRecursivelyHiddenNodesWithForce() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
page.evaluate("button => button.parentElement.style.display = 'none'", button);
try {
@@ -108,7 +108,7 @@ public class TestElementHandleClick extends TestBase {
@Test
void shouldDoubleClickTheButton() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
page.evaluate("() => {\n" +
" window['double'] = false;\n" +
" const button = document.querySelector('button');\n" +
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleContentFrame.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleContentFrame.java
index 1938991e..07afd483 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleContentFrame.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleContentFrame.java
@@ -25,8 +25,8 @@ public class TestElementHandleContentFrame extends TestBase {
@Test
void shouldWork() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
ElementHandle elementHandle = page.querySelector("#frame1");
Frame frame = elementHandle.contentFrame();
assertEquals(page.frames().get(1), frame);
@@ -34,8 +34,8 @@ public class TestElementHandleContentFrame extends TestBase {
@Test
void shouldWorkForCrossProcessIframes() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.CROSS_PROCESS_PREFIX + "/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().CROSS_PROCESS_PREFIX + "/empty.html");
ElementHandle elementHandle = page.querySelector("#frame1");
Frame frame = elementHandle.contentFrame();
assertEquals(page.frames().get(1), frame);
@@ -43,8 +43,8 @@ public class TestElementHandleContentFrame extends TestBase {
@Test
void shouldWorkForCrossFrameEvaluations() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.frames().get(1);
JSHandle jsHandle = frame.evaluateHandle("() => window.top.document.querySelector('#frame1')");
ElementHandle elementHandle = jsHandle.asElement();
@@ -54,8 +54,8 @@ public class TestElementHandleContentFrame extends TestBase {
@Test
void shouldReturnNullForNonIframes() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.frames().get(1);
JSHandle jsHandle = frame.evaluateHandle("() => document.body");
ElementHandle elementHandle = jsHandle.asElement();
@@ -65,8 +65,8 @@ public class TestElementHandleContentFrame extends TestBase {
@Test
void shouldReturnNullForDocumentDocumentElement() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.frames().get(1);
JSHandle jsHandle = frame.evaluateHandle("() => document.documentElement");
ElementHandle elementHandle = jsHandle.asElement();
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleConvenience.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleConvenience.java
index 97cb4cc9..8ddecadf 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleConvenience.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleConvenience.java
@@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestElementHandleConvenience extends TestBase {
@Test
void shouldHaveANicePreview() {
- page.navigate(server.PREFIX + "/dom.html");
+ page.navigate(getServer().PREFIX + "/dom.html");
ElementHandle outer = page.querySelector("#outer");
ElementHandle inner = page.querySelector("#inner");
ElementHandle check = page.querySelector("#check");
@@ -37,7 +37,7 @@ public class TestElementHandleConvenience extends TestBase {
@Test
void getAttributeShouldWork() {
- page.navigate(server.PREFIX + "/dom.html");
+ page.navigate(getServer().PREFIX + "/dom.html");
ElementHandle handle = page.querySelector("#outer");
assertEquals("value", handle.getAttribute("name"));
assertNull(handle.getAttribute("foo"));
@@ -47,7 +47,7 @@ public class TestElementHandleConvenience extends TestBase {
@Test
void innerHTMLShouldWork() {
- page.navigate(server.PREFIX + "/dom.html");
+ page.navigate(getServer().PREFIX + "/dom.html");
ElementHandle handle = page.querySelector("#outer");
assertEquals("Text,\nmore text
", handle.innerHTML());
assertEquals("Text,\nmore text
", page.innerHTML("#outer"));
@@ -55,7 +55,7 @@ public class TestElementHandleConvenience extends TestBase {
@Test
void innerTextShouldWork() {
- page.navigate(server.PREFIX + "/dom.html");
+ page.navigate(getServer().PREFIX + "/dom.html");
ElementHandle handle = page.querySelector("#inner");
assertEquals("Text, more text", handle.innerText());
assertEquals("Text, more text", page.innerText("#inner"));
@@ -81,7 +81,7 @@ public class TestElementHandleConvenience extends TestBase {
@Test
void textContentShouldWork() {
- page.navigate(server.PREFIX + "/dom.html");
+ page.navigate(getServer().PREFIX + "/dom.html");
ElementHandle handle = page.querySelector("#inner");
assertEquals("Text,\nmore text", handle.textContent());
assertEquals("Text,\nmore text", page.textContent("#inner"));
@@ -103,7 +103,7 @@ public class TestElementHandleConvenience extends TestBase {
" return result;\n" +
" }\n" +
"}\n";
- playwright.selectors().register("textContent", createDummySelector);
+ getPlaywright().selectors().register("textContent", createDummySelector);
page.setContent("Hello
");
String tc = page.textContent("textContent=div");
assertEquals("Hello", tc);
@@ -126,7 +126,7 @@ public class TestElementHandleConvenience extends TestBase {
" return result;\n" +
" }\n" +
"}\n";
- playwright.selectors().register("innerText", createDummySelector);
+ getPlaywright().selectors().register("innerText", createDummySelector);
page.setContent("Hello
");
String tc = page.innerText("innerText=div");
assertEquals("Hello", tc);
@@ -149,7 +149,7 @@ public class TestElementHandleConvenience extends TestBase {
" return result;\n" +
" }\n" +
"}\n";
- playwright.selectors().register("innerHTML", createDummySelector);
+ getPlaywright().selectors().register("innerHTML", createDummySelector);
page.setContent("Helloworld
");
String tc = page.innerHTML("innerHTML=div");
assertEquals("Helloworld", tc);
@@ -172,7 +172,7 @@ public class TestElementHandleConvenience extends TestBase {
" return result;\n" +
" }\n" +
"}\n";
- playwright.selectors().register("getAttribute", createDummySelector);
+ getPlaywright().selectors().register("getAttribute", createDummySelector);
page.setContent("");
String tc = page.getAttribute("getAttribute=div", "foo");
assertEquals("hello", tc);
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleOwnerFrame.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleOwnerFrame.java
index 5d6f3851..3a75d998 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleOwnerFrame.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleOwnerFrame.java
@@ -26,8 +26,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWork() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.frames().get(1);
JSHandle jsHandle = frame.evaluateHandle("() => document.body");
ElementHandle elementHandle = jsHandle.asElement();
@@ -37,8 +37,8 @@ public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWorkForCrossProcessIframes() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.CROSS_PROCESS_PREFIX + "/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().CROSS_PROCESS_PREFIX + "/empty.html");
Frame frame = page.frames().get(1);
JSHandle jsHandle = frame.evaluateHandle("() => document.body");
ElementHandle elementHandle = jsHandle.asElement();
@@ -49,8 +49,8 @@ public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWorkForDocument() {
// TODO: test.flaky(platform === "win32" && browserName === "webkit");
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.frames().get(1);
JSHandle jsHandle = frame.evaluateHandle("document");
ElementHandle elementHandle = jsHandle.asElement();
@@ -60,8 +60,8 @@ public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWorkForIframeElements() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.mainFrame();
JSHandle jsHandle = frame.evaluateHandle("() => document.querySelector('#frame1')");
ElementHandle elementHandle = jsHandle.asElement();
@@ -71,8 +71,8 @@ public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWorkForCrossFrameEvaluations() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
Frame frame = page.mainFrame();
JSHandle elementHandle = frame.evaluateHandle( "() => document.querySelector('iframe').contentWindow.document.body");
assertEquals(frame.childFrames().get(0), elementHandle.asElement().ownerFrame());
@@ -80,7 +80,7 @@ public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWorkForDetachedElements() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
JSHandle divHandle = page.evaluateHandle("() => {\n" +
" const div = document.createElement('div');\n" +
" document.body.appendChild(div);\n" +
@@ -96,9 +96,9 @@ public class TestElementHandleOwnerFrame extends TestBase {
@Test
void shouldWorkForAdoptedElements() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() ->
- page.evaluate("url => window['__popup'] = window.open(url)", server.EMPTY_PAGE));
+ page.evaluate("url => window['__popup'] = window.open(url)", getServer().EMPTY_PAGE));
JSHandle divHandle = page.evaluateHandle("() => {\n" +
" const div = document.createElement('div');\n" +
" document.body.appendChild(div);\n" +
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleQuerySelector.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleQuerySelector.java
index d0de7f0a..7fb58e66 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleQuerySelector.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleQuerySelector.java
@@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestElementHandleQuerySelector extends TestBase {
@Test
void shouldQueryExistingElement() {
- page.navigate(server.PREFIX + "/playground.html");
+ page.navigate(getServer().PREFIX + "/playground.html");
page.setContent("");
ElementHandle html = page.querySelector("html");
ElementHandle second = html.querySelector(".second");
@@ -31,9 +31,9 @@ public class TestElementHandleQuerySelector extends TestBase {
@Test
void shouldWorkForAdoptedElements() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() -> page.evaluate(
- "url => window['__popup'] = window.open(url)", server.EMPTY_PAGE));
+ "url => window['__popup'] = window.open(url)", getServer().EMPTY_PAGE));
// Test JSHandle
JSHandle divHandle = page.evaluateHandle("() => {\n" +
" const div = document.createElement('div');\n" +
@@ -78,7 +78,7 @@ public class TestElementHandleQuerySelector extends TestBase {
@Test
void xpathShouldQueryExistingElement() {
- page.navigate(server.PREFIX + "/playground.html");
+ page.navigate(getServer().PREFIX + "/playground.html");
page.setContent("");
ElementHandle html = page.querySelector("html");
List second = html.querySelectorAll("xpath=./body/div[contains(@class, 'second')]");
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleSelectText.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleSelectText.java
index 7c9658c0..acc53015 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleSelectText.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleSelectText.java
@@ -8,7 +8,7 @@ public class TestElementHandleSelectText extends TestBase {
@Test
void shouldSelectTextarea() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle textarea = page.querySelector("textarea");
textarea.evaluate("textarea => textarea.value = 'some value'");
textarea.selectText();
@@ -22,7 +22,7 @@ public class TestElementHandleSelectText extends TestBase {
@Test
void shouldSelectInput() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle input = page.querySelector("input");
input.evaluate("input => input.value = 'some value'");
input.selectText();
@@ -36,7 +36,7 @@ public class TestElementHandleSelectText extends TestBase {
@Test
void shouldSelectPlainDiv() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle div = page.querySelector("div.plain");
div.selectText();
assertEquals("Plain div", page.evaluate("() => window.getSelection().toString()"));
@@ -44,7 +44,7 @@ public class TestElementHandleSelectText extends TestBase {
@Test
void shouldTimeoutWaitingForInvisibleElement() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle textarea = page.querySelector("textarea");
textarea.evaluate("e => e.style.display = 'none'");
try {
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleWaitForElementState.java b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleWaitForElementState.java
index e06a0da8..0addadb4 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestElementHandleWaitForElementState.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestElementHandleWaitForElementState.java
@@ -134,7 +134,7 @@ public class TestElementHandleWaitForElementState extends TestBase {
@Test
@DisabledIf(value="isFirefoxLinux", disabledReason="fixme")
void shouldWaitForStablePosition() {
- page.navigate(server.PREFIX + "/input/button.html");
+ page.navigate(getServer().PREFIX + "/input/button.html");
ElementHandle button = page.querySelector("button");
page.evalOnSelector("button", "button => {\n" +
" button.style.transition = 'margin 10000ms linear 0s';\n" +
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestEvalOnSelector.java b/playwright/src/test/java/com/microsoft/playwright/TestEvalOnSelector.java
index fddce6cc..ccc2064a 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestEvalOnSelector.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestEvalOnSelector.java
@@ -143,7 +143,7 @@ public class TestEvalOnSelector extends TestBase {
@Test
void shouldSupportSpacesWithSyntax() {
- page.navigate(server.PREFIX + "/deep-shadow.html");
+ page.navigate(getServer().PREFIX + "/deep-shadow.html");
Object text = page.evalOnSelector(" css = div >>css=div>>css = span ", "e => e.textContent");
assertEquals("Hello from root2", text);
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestFirefoxLauncher.java b/playwright/src/test/java/com/microsoft/playwright/TestFirefoxLauncher.java
index c652f596..1e5ee0b3 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestFirefoxLauncher.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestFirefoxLauncher.java
@@ -45,7 +45,7 @@ public class TestFirefoxLauncher extends TestBase {
"network.proxy.http", "127.0.0.1",
"network.proxy.http_port", 3333));
launchBrowser(options);
- Page page = browser.newPage();
+ Page page = getBrowser().newPage();
try {
page.navigate("http://example.com");
fail("did not throw");
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestFrameNavigate.java b/playwright/src/test/java/com/microsoft/playwright/TestFrameNavigate.java
index 494e5fde..568e0f0e 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestFrameNavigate.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestFrameNavigate.java
@@ -26,11 +26,11 @@ public class TestFrameNavigate extends TestBase {
@Test
void shouldNavigateSubframes() {
- page.navigate(server.PREFIX + "/frames/one-frame.html");
+ page.navigate(getServer().PREFIX + "/frames/one-frame.html");
assertTrue(page.frames().get(0).url().contains("/frames/one-frame.html"));
assertTrue(page.frames().get(1).url().contains("/frames/frame.html"));
- Response response = page.frames().get(1).navigate(server.EMPTY_PAGE);
+ Response response = page.frames().get(1).navigate(getServer().EMPTY_PAGE);
assertTrue(response.ok());
assertEquals(page.frames().get(1), response.frame());
}
@@ -41,8 +41,8 @@ public class TestFrameNavigate extends TestBase {
@Test
void shouldContinueAfterClientRedirect() {
- server.setRoute("/frames/script.js", (httpExchange) -> {});
- String url = server.PREFIX + "/frames/child-redirect.html";
+ getServer().setRoute("/frames/script.js", (httpExchange) -> {});
+ String url = getServer().PREFIX + "/frames/child-redirect.html";
try {
page.navigate(url, new Page.NavigateOptions().setTimeout(5000).setWaitUntil(NETWORKIDLE));
} catch (TimeoutError e) {
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestGeolocation.java b/playwright/src/test/java/com/microsoft/playwright/TestGeolocation.java
index 92659fdd..df449d74 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestGeolocation.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestGeolocation.java
@@ -31,7 +31,7 @@ public class TestGeolocation extends TestBase {
@Test
void shouldWork() {
context.grantPermissions(asList("geolocation"));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
context.setGeolocation(new Geolocation(10, 10));
Object geolocation = page.evaluate("() => new Promise(resolve => navigator.geolocation.getCurrentPosition(position => {\n" +
" resolve({latitude: position.coords.latitude, longitude: position.coords.longitude});\n" +
@@ -52,13 +52,13 @@ public class TestGeolocation extends TestBase {
void shouldIsolateContexts() {
context.grantPermissions(asList("geolocation"));
context.setGeolocation(new Geolocation(10, 10));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
- BrowserContext context2 = browser.newContext(new Browser.NewContextOptions()
+ BrowserContext context2 = getBrowser().newContext(new Browser.NewContextOptions()
.setPermissions(asList("geolocation"))
.setGeolocation(new Geolocation(20, 20)));
Page page2 = context2.newPage();
- page2.navigate(server.EMPTY_PAGE);
+ page2.navigate(getServer().EMPTY_PAGE);
Object geolocation = page.evaluate("() => new Promise(resolve => navigator.geolocation.getCurrentPosition(position => {\n" +
" resolve({latitude: position.coords.latitude, longitude: position.coords.longitude});\n" +
@@ -80,7 +80,7 @@ public class TestGeolocation extends TestBase {
void shouldNotModifyPassedDefaultOptionsObject() {
Geolocation geolocation = new Geolocation(10, 10);
Browser.NewContextOptions options = new Browser.NewContextOptions().setGeolocation(geolocation);
- BrowserContext context = browser.newContext(options);
+ BrowserContext context = getBrowser().newContext(options);
context.setGeolocation(new Geolocation(20, 20));
assertEquals(geolocation, options.geolocation);
context.close();
@@ -95,9 +95,9 @@ public class TestGeolocation extends TestBase {
Browser.NewContextOptions options = new Browser.NewContextOptions()
.setGeolocation(new Geolocation(10, 10))
.setPermissions(asList("geolocation"));
- BrowserContext context = browser.newContext(options);
+ BrowserContext context = getBrowser().newContext(options);
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object geolocation = page.evaluate("() => new Promise(resolve => navigator.geolocation.getCurrentPosition(position => {\n" +
" resolve({latitude: position.coords.latitude, longitude: position.coords.longitude});\n" +
"}))");
@@ -108,7 +108,7 @@ public class TestGeolocation extends TestBase {
@Test
void watchPositionShouldBeNotified() {
context.grantPermissions(asList("geolocation"));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List messages = new ArrayList<>();
page.onConsoleMessage(message -> messages.add(message.text()));
context.setGeolocation(new Geolocation(0, 0));
@@ -150,7 +150,7 @@ public class TestGeolocation extends TestBase {
context.grantPermissions(asList("geolocation"));
context.setGeolocation(new Geolocation(10, 10));
Page popup = page.waitForPopup(() -> page.evaluate(
- "url => window['_popup'] = window.open(url)", server.PREFIX + "/geolocation.html"));
+ "url => window['_popup'] = window.open(url)", getServer().PREFIX + "/geolocation.html"));
popup.waitForLoadState();
Object geolocation = popup.evaluate("window['geolocationPromise']");
assertEquals(mapOf("longitude", 10, "latitude", 10), geolocation);
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestHar.java b/playwright/src/test/java/com/microsoft/playwright/TestHar.java
index 4fd6b03b..bd800385 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestHar.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestHar.java
@@ -42,7 +42,7 @@ public class TestHar extends TestBase {
PageWithHar() throws IOException {
harFile = Files.createTempFile("test-", ".har");
- context = browser.newContext(new Browser.NewContextOptions()
+ context = getBrowser().newContext(new Browser.NewContextOptions()
.setRecordHarPath(harFile).setIgnoreHTTPSErrors(true));
page = context.newPage();
}
@@ -76,7 +76,7 @@ public class TestHar extends TestBase {
@Test
void shouldHaveVersionAndCreator() throws IOException {
- pageWithHar.page.navigate(server.EMPTY_PAGE);
+ pageWithHar.page.navigate(getServer().EMPTY_PAGE);
JsonObject log = pageWithHar.log();
assertEquals("1.2", log.get("version").getAsString());
assertEquals("Playwright", log.getAsJsonObject("creator").get("name").getAsString());
@@ -84,10 +84,10 @@ public class TestHar extends TestBase {
@Test
void shouldHaveBrowser() throws IOException {
- pageWithHar.page.navigate(server.EMPTY_PAGE);
+ pageWithHar.page.navigate(getServer().EMPTY_PAGE);
JsonObject log = pageWithHar.log();
- assertEquals(browserType.name(), log.getAsJsonObject("browser").get("name").getAsString().toLowerCase());
- assertEquals(browser.version(), log.getAsJsonObject("browser").get("version").getAsString());
+ assertEquals(getBrowserType().name(), log.getAsJsonObject("browser").get("name").getAsString().toLowerCase());
+ assertEquals(getBrowser().version(), log.getAsJsonObject("browser").get("version").getAsString());
}
@Test
@@ -110,7 +110,7 @@ public class TestHar extends TestBase {
void shouldHavePagesInPersistentContext() throws IOException {
Path harPath = pageWithHar.harFile;
Path userDataDir = Files.createTempDirectory("user-data-dir-");
- BrowserContext context = browserType.launchPersistentContext(userDataDir,
+ BrowserContext context = getBrowserType().launchPersistentContext(userDataDir,
new BrowserType.LaunchPersistentContextOptions()
.setRecordHarPath(harPath).setIgnoreHTTPSErrors(true));
Page page = context.pages().get(0);
@@ -131,12 +131,12 @@ public class TestHar extends TestBase {
@Test
void shouldIncludeRequest() throws IOException {
- pageWithHar.page.navigate(server.EMPTY_PAGE);
+ pageWithHar.page.navigate(getServer().EMPTY_PAGE);
JsonObject log = pageWithHar.log();
assertEquals(1, log.getAsJsonArray("entries").size());
JsonObject entry = log.getAsJsonArray("entries").get(0).getAsJsonObject();
assertEquals("page_0", entry.get("pageref").getAsString());
- assertEquals(server.EMPTY_PAGE, entry.getAsJsonObject("request").get("url").getAsString());
+ assertEquals(getServer().EMPTY_PAGE, entry.getAsJsonObject("request").get("url").getAsString());
assertEquals("GET", entry.getAsJsonObject("request").get("method").getAsString());
assertEquals("HTTP/1.1", entry.getAsJsonObject("request").get("httpVersion").getAsString());
assertTrue(entry.getAsJsonObject("request").get("headers").getAsJsonArray().size() > 1);
@@ -152,7 +152,7 @@ public class TestHar extends TestBase {
@Test
void shouldIncludeResponse() throws IOException {
- pageWithHar.page.navigate(server.EMPTY_PAGE);
+ pageWithHar.page.navigate(getServer().EMPTY_PAGE);
JsonObject log = pageWithHar.log();
JsonObject entry = log.getAsJsonArray("entries").get(0).getAsJsonObject();
assertEquals(200, entry.getAsJsonObject("response").get("status").getAsInt());
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestNetworkPostData.java b/playwright/src/test/java/com/microsoft/playwright/TestNetworkPostData.java
index 6c7c88cf..8b05306e 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestNetworkPostData.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestNetworkPostData.java
@@ -29,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestNetworkPostData extends TestBase {
@Test
void shouldReturnCorrectPostDataBufferForUtf8Body() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
String value = "baẞ";
Request request = page.waitForRequest("**", () -> {
page.evaluate("({url, value}) => {\n" +
@@ -39,7 +39,7 @@ public class TestNetworkPostData extends TestBase {
" });\n" +
" request.headers.set('content-type', 'application/json;charset=UTF-8');\n" +
" return fetch(request);\n" +
- "}", mapOf("url", server.PREFIX + "/title.html", "value", value));
+ "}", mapOf("url", getServer().PREFIX + "/title.html", "value", value));
});
assertTrue(Arrays.equals(new Gson().toJson(value).getBytes(StandardCharsets.UTF_8), request.postDataBuffer()));
assertEquals(new Gson().toJson(value), request.postData());
@@ -47,7 +47,7 @@ public class TestNetworkPostData extends TestBase {
@Test
void shouldReturnPostDataWOContentType() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Request request = page.waitForRequest("**", () -> {
page.evaluate("({url}) => {\n" +
" const request = new Request(url, {\n" +
@@ -56,7 +56,7 @@ public class TestNetworkPostData extends TestBase {
" });\n" +
" request.headers.set('content-type', '');\n" +
" return fetch(request);\n" +
- "}", mapOf("url", server.PREFIX + "/title.html"));
+ "}", mapOf("url", getServer().PREFIX + "/title.html"));
});
assertEquals(new Gson().toJson(mapOf("value", 42)), request.postData());
}
@@ -67,7 +67,7 @@ public class TestNetworkPostData extends TestBase {
@Test
void shouldReturnPostDataForPUTRequests() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Request request = page.waitForRequest("**", () -> {
page.evaluate("({url}) => {\n" +
" const request = new Request(url, {\n" +
@@ -75,7 +75,7 @@ public class TestNetworkPostData extends TestBase {
" body: JSON.stringify({ value: 42 }),\n" +
" });\n" +
" return fetch(request);\n" +
- "}", mapOf("url", server.PREFIX + "/title.html"));
+ "}", mapOf("url", getServer().PREFIX + "/title.html"));
});
assertEquals(new Gson().toJson(mapOf("value", 42)), request.postData());
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestNetworkRequest.java b/playwright/src/test/java/com/microsoft/playwright/TestNetworkRequest.java
index 03dfa9ca..584055be 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestNetworkRequest.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestNetworkRequest.java
@@ -37,24 +37,24 @@ public class TestNetworkRequest extends TestBase {
void shouldWorkForMainFrameNavigationRequest() {
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(1, requests.size());
assertEquals(page.mainFrame(), requests.get(0).frame());
}
@Test
void shouldWorkForSubframeNavigationRequest() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
- attachFrame(page, "frame1", server.EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().EMPTY_PAGE);
assertEquals(1, requests.size());
assertEquals(page.frames().get(1), requests.get(0).frame());
}
@Test
void shouldWorkForFetchRequests() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
page.evaluate("() => fetch('/digits/1.png')");
@@ -64,36 +64,36 @@ public class TestNetworkRequest extends TestBase {
@Test
void shouldWorkForARedirect() {
- server.setRedirect("/foo.html", "/empty.html");
+ getServer().setRedirect("/foo.html", "/empty.html");
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
- page.navigate(server.PREFIX + "/foo.html");
+ page.navigate(getServer().PREFIX + "/foo.html");
assertEquals(2, requests.size());
- assertEquals(server.PREFIX + "/foo.html", requests.get(0).url());
- assertEquals(server.PREFIX + "/empty.html", requests.get(1).url());
+ assertEquals(getServer().PREFIX + "/foo.html", requests.get(0).url());
+ assertEquals(getServer().PREFIX + "/empty.html", requests.get(1).url());
}
// https://github.com/microsoft/playwright/issues/3993
@Test
void shouldNotWorkForARedirectAndInterception() {
- server.setRedirect("/foo.html", "/empty.html");
+ getServer().setRedirect("/foo.html", "/empty.html");
List requests = new ArrayList<>();
page.route("**", route -> {
requests.add(route.request());
route.resume();
});
- page.navigate(server.PREFIX + "/foo.html");
+ page.navigate(getServer().PREFIX + "/foo.html");
- assertEquals(server.PREFIX + "/empty.html", page.url());
+ assertEquals(getServer().PREFIX + "/empty.html", page.url());
assertEquals(1, requests.size());
- assertEquals(server.PREFIX + "/foo.html", requests.get(0).url());
+ assertEquals(getServer().PREFIX + "/foo.html", requests.get(0).url());
}
@Test
void shouldReturnHeaders() {
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
if (isChromium())
assertTrue(response.request().headers().get("user-agent").contains("Chrome"));
else if (isFirefox())
@@ -105,14 +105,14 @@ public class TestNetworkRequest extends TestBase {
@Test
@DisabledIf(value="com.microsoft.playwright.TestBase#isWebKit", disabledReason="fail")
void shouldGetTheSameHeadersAsTheServer() throws ExecutionException, InterruptedException {
- Future serverRequest = server.futureRequest("/empty.html");
- server.setRoute("/empty.html", exchange -> {
+ Future serverRequest = getServer().futureRequest("/empty.html");
+ getServer().setRoute("/empty.html", exchange -> {
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
writer.write("done");
}
});
- Response response = page.navigate(server.PREFIX + "/empty.html");
+ Response response = page.navigate(getServer().PREFIX + "/empty.html");
Map expectedHeaders = serverRequest.get().headers.entrySet().stream().collect(
Collectors.toMap(e -> e.getKey().toLowerCase(), e -> e.getValue().get(0)));
assertEquals(expectedHeaders, response.request().headers());
@@ -121,9 +121,9 @@ public class TestNetworkRequest extends TestBase {
@Test
@DisabledIf(value="com.microsoft.playwright.TestBase#isWebKit", disabledReason="fail")
void shouldGetTheSameHeadersAsTheServerCORP() throws ExecutionException, InterruptedException {
- page.navigate(server.PREFIX + "/empty.html");
- Future serverRequest = server.futureRequest("/something");
- server.setRoute("/something", exchange -> {
+ page.navigate(getServer().PREFIX + "/empty.html");
+ Future serverRequest = getServer().futureRequest("/something");
+ getServer().setRoute("/something", exchange -> {
exchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
exchange.sendResponseHeaders(200, 0);
try (OutputStreamWriter writer = new OutputStreamWriter(exchange.getResponseBody())) {
@@ -134,7 +134,7 @@ public class TestNetworkRequest extends TestBase {
Object text = page.evaluate("async url => {\n" +
" const data = await fetch(url);\n" +
" return data.text();\n" +
- "}", server.CROSS_PROCESS_PREFIX + "/something");
+ "}", getServer().CROSS_PROCESS_PREFIX + "/something");
assertEquals("done", text);
});
Map expectedHeaders = serverRequest.get().headers.entrySet().stream().collect(
@@ -144,8 +144,8 @@ public class TestNetworkRequest extends TestBase {
@Test
void shouldReturnPostData() {
- page.navigate(server.EMPTY_PAGE);
- server.setRoute("/post", exchange -> {
+ page.navigate(getServer().EMPTY_PAGE);
+ getServer().setRoute("/post", exchange -> {
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
@@ -158,8 +158,8 @@ public class TestNetworkRequest extends TestBase {
@Test
void shouldWorkWithBinaryPostData() {
- page.navigate(server.EMPTY_PAGE);
- server.setRoute("/post", exchange -> {
+ page.navigate(getServer().EMPTY_PAGE);
+ getServer().setRoute("/post", exchange -> {
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
@@ -178,8 +178,8 @@ public class TestNetworkRequest extends TestBase {
@Test
void shouldWorkWithBinaryPostDataAndInterception() {
- page.navigate(server.EMPTY_PAGE);
- server.setRoute("/post", exchange -> {
+ page.navigate(getServer().EMPTY_PAGE);
+ getServer().setRoute("/post", exchange -> {
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
@@ -199,7 +199,7 @@ public class TestNetworkRequest extends TestBase {
@Test
void shouldBeUndefinedWhenThereIsNoPostData() {
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertNull(response.request().postData());
}
@@ -214,7 +214,7 @@ public class TestNetworkRequest extends TestBase {
@Test
void shouldReturnEventSource() {
// 1. Setup server-sent events on server that immediately sends a message to the client.
- server.setRoute("/sse", exchange -> {
+ getServer().setRoute("/sse", exchange -> {
exchange.getResponseHeaders().add("Content-Type", "text/event-stream");
exchange.getResponseHeaders().add("Connection", "keep-alive");
exchange.getResponseHeaders().add("Cache-Control", "no-cache");
@@ -224,7 +224,7 @@ public class TestNetworkRequest extends TestBase {
}
});
// 2. Subscribe to page request events.
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
// 3. Connect to EventSource in browser and return first message.
@@ -249,8 +249,8 @@ public class TestNetworkRequest extends TestBase {
}
requests.put(name, request);
});
- server.setRedirect("/rrredirect", "/frames/one-frame.html");
- page.navigate(server.PREFIX + "/rrredirect");
+ getServer().setRedirect("/rrredirect", "/frames/one-frame.html");
+ page.navigate(getServer().PREFIX + "/rrredirect");
assertTrue(requests.get("rrredirect").isNavigationRequest());
assertTrue(requests.get("one-frame.html").isNavigationRequest());
assertTrue(requests.get("frame.html").isNavigationRequest());
@@ -262,7 +262,7 @@ public class TestNetworkRequest extends TestBase {
void shouldReturnNavigationBitWhenNavigatingToImage() {
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
- page.navigate(server.PREFIX + "/pptr.png");
+ page.navigate(getServer().PREFIX + "/pptr.png");
assertTrue(requests.get(0).isNavigationRequest());
}
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestNetworkResponse.java b/playwright/src/test/java/com/microsoft/playwright/TestNetworkResponse.java
index bde86acb..b31f87f3 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestNetworkResponse.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestNetworkResponse.java
@@ -31,13 +31,13 @@ import static org.junit.jupiter.api.Assertions.*;
public class TestNetworkResponse extends TestBase {
@Test
void shouldWork() {
- server.setRoute("/empty.html", exchange -> {
+ getServer().setRoute("/empty.html", exchange -> {
exchange.getResponseHeaders().add("foo", "bar");
exchange.getResponseHeaders().add("BaZ", "bAz");
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertEquals("bar", response.headers().get("foo"));
assertEquals("bAz", response.headers().get("baz"));
assertNull(response.headers().get("BaZ"));
@@ -45,22 +45,22 @@ public class TestNetworkResponse extends TestBase {
@Test
void shouldReturnText() {
- Response response = page.navigate(server.PREFIX + "/simple.json");
+ Response response = page.navigate(getServer().PREFIX + "/simple.json");
assertEquals("{\"foo\": \"bar\"}\n", response.text());
}
@Test
void shouldReturnUncompressedText() {
- server.enableGzip("/simple.json");
- Response response = page.navigate(server.PREFIX + "/simple.json");
+ getServer().enableGzip("/simple.json");
+ Response response = page.navigate(getServer().PREFIX + "/simple.json");
assertEquals("gzip", response.headers().get("content-encoding"));
assertEquals("{\"foo\": \"bar\"}\n", response.text());
}
@Test
void shouldThrowWhenRequestingBodyOfRedirectedResponse() {
- server.setRedirect("/foo.html", "/empty.html");
- Response response = page.navigate(server.PREFIX + "/foo.html");
+ getServer().setRedirect("/foo.html", "/empty.html");
+ Response response = page.navigate(getServer().PREFIX + "/foo.html");
Request redirectedFrom = response.request().redirectedFrom();
assertNotNull(redirectedFrom);
Response redirected = redirectedFrom.response();
@@ -75,10 +75,10 @@ public class TestNetworkResponse extends TestBase {
@Test
void shouldWaitUntilResponseCompletes() throws ExecutionException, InterruptedException {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Semaphore responseWritten = new Semaphore(0);
Semaphore responseRead = new Semaphore(0);
- server.setRoute("/get", exchange -> {
+ getServer().setRoute("/get", exchange -> {
// In Firefox, |fetch| will be hanging until it receives |Content-Type| header
// from server.
exchange.getResponseHeaders().add("Content-Type", "text/plain; charset=utf-8");
@@ -119,26 +119,26 @@ public class TestNetworkResponse extends TestBase {
}
@Test
void shouldReturnBody() throws IOException {
- Response response = page.navigate(server.PREFIX + "/pptr.png");
+ Response response = page.navigate(getServer().PREFIX + "/pptr.png");
byte[] expected = Files.readAllBytes(Paths.get("src/test/resources/pptr.png"));
assertTrue(Arrays.equals(expected, response.body()));
}
@Test
void shouldReturnBodyWithCompression() throws IOException {
- server.enableGzip("/pptr.png");
- Response response = page.navigate(server.PREFIX + "/pptr.png");
+ getServer().enableGzip("/pptr.png");
+ Response response = page.navigate(getServer().PREFIX + "/pptr.png");
byte[] expected = Files.readAllBytes(Paths.get("src/test/resources/pptr.png"));
assertTrue(Arrays.equals(expected, response.body()));
}
@Test
void shouldReturnStatusText() {
- server.setRoute("/cool", exchange -> {
+ getServer().setRoute("/cool", exchange -> {
exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close();
});
- Response response = page.navigate(server.PREFIX + "/cool");
+ Response response = page.navigate(getServer().PREFIX + "/cool");
assertEquals("OK", response.statusText());
}
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageBasic.java b/playwright/src/test/java/com/microsoft/playwright/TestPageBasic.java
index 86dbeef2..1ec8fc17 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageBasic.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageBasic.java
@@ -54,7 +54,7 @@ public class TestPageBasic extends TestBase {
@Test
void shouldRunBeforeunloadIfAskedFor() {
Page newPage = context.newPage();
- newPage.navigate(server.PREFIX + "/beforeunload.html");
+ newPage.navigate(getServer().PREFIX + "/beforeunload.html");
// We have to interact with a page so that "beforeunload" handlers
// fire.
newPage.click("body");
@@ -87,7 +87,7 @@ public class TestPageBasic extends TestBase {
@Test
void shouldNotRunBeforeunloadByDefault() {
Page newPage = context.newPage();
- newPage.navigate(server.PREFIX + "/beforeunload.html");
+ newPage.navigate(getServer().PREFIX + "/beforeunload.html");
// We have to interact with a page so that "beforeunload" handlers
// fire.
newPage.click("body");
@@ -111,7 +111,7 @@ public class TestPageBasic extends TestBase {
try {
newPage.waitForResponse("**", () -> {
try {
- newPage.waitForRequest(server.EMPTY_PAGE, () -> newPage.close());
+ newPage.waitForRequest(getServer().EMPTY_PAGE, () -> newPage.close());
fail("waitForRequest() should throw");
} catch (PlaywrightException e) {
assertTrue(e.getMessage().contains("Page closed"));
@@ -171,23 +171,23 @@ public class TestPageBasic extends TestBase {
@Test
void pageUrlShouldWork() {
assertEquals("about:blank", page.url());
- page.navigate(server.EMPTY_PAGE);
- assertEquals(server.EMPTY_PAGE, page.url());
+ page.navigate(getServer().EMPTY_PAGE);
+ assertEquals(getServer().EMPTY_PAGE, page.url());
}
@Test
void pageUrlShouldIncludeHashes() {
- page.navigate(server.EMPTY_PAGE + "#hash");
- assertEquals(server.EMPTY_PAGE + "#hash", page.url());
+ page.navigate(getServer().EMPTY_PAGE + "#hash");
+ assertEquals(getServer().EMPTY_PAGE + "#hash", page.url());
page.evaluate("() => {\n" +
" window.location.hash = 'dynamic';\n" +
"}");
- assertEquals(server.EMPTY_PAGE + "#dynamic", page.url());
+ assertEquals(getServer().EMPTY_PAGE + "#dynamic", page.url());
}
@Test
void pageTitleShouldReturnThePageTitle() {
- page.navigate(server.PREFIX + "/title.html");
+ page.navigate(getServer().PREFIX + "/title.html");
assertEquals("Woof-Woof", page.title());
}
@@ -220,11 +220,11 @@ public class TestPageBasic extends TestBase {
@Test
void pageFrameShouldRespectUrl() {
- page.setContent("");
+ page.setContent("");
assertNull(page.frameByUrl(Pattern.compile("bogus")));
Frame frame = page.frameByUrl(Pattern.compile(".*empty.*"));
assertNotNull(frame);
- assertEquals(server.EMPTY_PAGE, frame.url());
+ assertEquals(getServer().EMPTY_PAGE, frame.url());
}
@Test
@@ -257,7 +257,7 @@ public class TestPageBasic extends TestBase {
@Test
void pagePressShouldWork() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.press("textarea", "a");
assertEquals("a", page.evaluate("() => document.querySelector('textarea').value"));
}
@@ -273,7 +273,7 @@ public class TestPageBasic extends TestBase {
@Test
void framePressShouldWork() {
- page.setContent("");
+ page.setContent("");
Frame frame = page.frame("inner");
frame.press("textarea", "a");
assertEquals("a", frame.evaluate("() => document.querySelector('textarea').value"));
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageEmulateMedia.java b/playwright/src/test/java/com/microsoft/playwright/TestPageEmulateMedia.java
index 6ec6e34a..e3270da9 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageEmulateMedia.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageEmulateMedia.java
@@ -82,20 +82,20 @@ public class TestPageEmulateMedia extends TestBase {
@Test
void shouldWorkInPopup() {
{
- BrowserContext context = browser.newContext(new Browser.NewContextOptions().setColorScheme(DARK));
+ BrowserContext context = getBrowser().newContext(new Browser.NewContextOptions().setColorScheme(DARK));
Page page = context.newPage();
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() ->
- page.evaluate("url => { window.open(url); }", server.EMPTY_PAGE));
+ page.evaluate("url => { window.open(url); }", getServer().EMPTY_PAGE));
assertEquals(false, popup.evaluate("() => matchMedia('(prefers-color-scheme: light)').matches"));
assertEquals(true, popup.evaluate("() => matchMedia('(prefers-color-scheme: dark)').matches"));
context.close();
}
{
- Page page = browser.newPage(new Browser.NewPageOptions().setColorScheme(LIGHT));
- page.navigate(server.EMPTY_PAGE);
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setColorScheme(LIGHT));
+ page.navigate(getServer().EMPTY_PAGE);
Page popup = page.waitForPopup(() ->
- page.evaluate("url => { window.open(url); }", server.EMPTY_PAGE));
+ page.evaluate("url => { window.open(url); }", getServer().EMPTY_PAGE));
assertEquals(true, popup.evaluate("() => matchMedia('(prefers-color-scheme: light)').matches"));
assertEquals(false, popup.evaluate("() => matchMedia('(prefers-color-scheme: dark)').matches"));
page.close();
@@ -104,9 +104,9 @@ public class TestPageEmulateMedia extends TestBase {
@Test
void shouldWorkInCrossProcessIframe() {
- Page page = browser.newPage(new Browser.NewPageOptions().setColorScheme(DARK));
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "frame1", server.CROSS_PROCESS_PREFIX + "/empty.html");
+ Page page = getBrowser().newPage(new Browser.NewPageOptions().setColorScheme(DARK));
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "frame1", getServer().CROSS_PROCESS_PREFIX + "/empty.html");
Frame frame = page.frames().get(1);
assertEquals(true, frame.evaluate("() => matchMedia('(prefers-color-scheme: dark)').matches"));
page.close();
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java b/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java
index c6e8d31d..fc80894d 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java
@@ -123,7 +123,7 @@ public class TestPageEvaluate extends TestBase {
@Test
void shouldEvaluateInThePageContext() {
- page.navigate(server.PREFIX + "/global-var.html");
+ page.navigate(getServer().PREFIX + "/global-var.html");
assertEquals(123, page.evaluate("globalVar"));
}
@@ -175,18 +175,18 @@ public class TestPageEvaluate extends TestBase {
page.onFrameNavigated(frame -> {
frameEvaluation[0] = frame.evaluate("() => 6 * 7");
});
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(42, frameEvaluation[0]);
}
@Test
void shouldWorkRightAfterACrossOriginNavigation() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object[] frameEvaluation = {null};
page.onFrameNavigated(frame -> {
frameEvaluation[0] = frame.evaluate("() => 6 * 7");
});
- page.navigate(server.CROSS_PROCESS_PREFIX + "/empty.html");
+ page.navigate(getServer().CROSS_PROCESS_PREFIX + "/empty.html");
assertEquals(42, frameEvaluation[0]);
}
@@ -447,7 +447,7 @@ public class TestPageEvaluate extends TestBase {
@Test
void shouldNotThrowAnErrorWhenEvaluationDoesANavigation() {
- page.navigate(server.PREFIX + "/one-style.html");
+ page.navigate(getServer().PREFIX + "/one-style.html");
Object result = page.evaluate("() => {\n" +
" window.location.href = '/empty.html';\n" +
" return [42];\n" +
@@ -511,7 +511,7 @@ public class TestPageEvaluate extends TestBase {
@Test
void shouldAwaitPromiseFromPopup() {
// Something is wrong about the way Firefox waits for the chained promise
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
Object result = page.evaluate("() => {\n" +
" const win = window.open('about:blank');\n" +
" return new win['Promise'](f => f(42));\n" +
@@ -521,8 +521,8 @@ public class TestPageEvaluate extends TestBase {
@Test
void shouldWorkWithNewFunctionAndCSP() {
- server.setCSP("/empty.html", "script-src " + server.PREFIX);
- page.navigate(server.PREFIX + "/empty.html");
+ getServer().setCSP("/empty.html", "script-src " + getServer().PREFIX);
+ page.navigate(getServer().PREFIX + "/empty.html");
assertEquals(true, page.evaluate("() => new Function('return true')()"));
}
@@ -567,8 +567,8 @@ public class TestPageEvaluate extends TestBase {
@Test
void shouldWorkWithCSP() {
- server.setCSP("/empty.html", "script-src 'self'");
- page.navigate(server.EMPTY_PAGE);
+ getServer().setCSP("/empty.html", "script-src 'self'");
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(4, page.evaluate("() => 2 + 2"));
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageEventNetwork.java b/playwright/src/test/java/com/microsoft/playwright/TestPageEventNetwork.java
index 2f4d866a..c02500a6 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageEventNetwork.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageEventNetwork.java
@@ -29,23 +29,23 @@ public class TestPageEventNetwork extends TestBase {
void PageEventsRequest() {
List requests = new ArrayList<>();
page.onRequest(request -> requests.add(request));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(1, requests.size());
- assertEquals(server.EMPTY_PAGE, requests.get(0).url());
+ assertEquals(getServer().EMPTY_PAGE, requests.get(0).url());
assertEquals("document", requests.get(0).resourceType());
assertEquals("GET", requests.get(0).method());
assertNotNull(requests.get(0).response());
assertEquals(page.mainFrame(), requests.get(0).frame());
- assertEquals(server.EMPTY_PAGE, requests.get(0).frame().url());
+ assertEquals(getServer().EMPTY_PAGE, requests.get(0).frame().url());
}
@Test
void PageEventsResponse() {
List responses = new ArrayList<>();
page.onResponse(response -> responses.add(response));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(1, responses.size());
- assertEquals(server.EMPTY_PAGE, responses.get(0).url());
+ assertEquals(getServer().EMPTY_PAGE, responses.get(0).url());
assertEquals(200, responses.get(0).status());
assertTrue(responses.get(0).ok());
assertNotNull(responses.get(0).request());
@@ -53,10 +53,10 @@ public class TestPageEventNetwork extends TestBase {
@Test
void PageEventsRequestFailed() {
- server.setRoute("/one-style.css", exchange -> exchange.getResponseBody().close());
+ getServer().setRoute("/one-style.css", exchange -> exchange.getResponseBody().close());
List failedRequests = new ArrayList<>();
page.onRequestFailed(request -> failedRequests.add(request));
- page.navigate(server.PREFIX + "/one-style.html");
+ page.navigate(getServer().PREFIX + "/one-style.html");
assertEquals(1, failedRequests.size());
assertTrue(failedRequests.get(0).url().contains("one-style.css"));
assertNull(failedRequests.get(0).response());
@@ -80,15 +80,15 @@ public class TestPageEventNetwork extends TestBase {
void PageEventsRequestFinished() {
Request[] requestRef = {null};
page.onRequestFinished(r -> requestRef[0] = r);
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertNull(response.finished());
assertNotNull(response);
Request request = requestRef[0];
assertEquals(response.request(), request);
- assertEquals(server.EMPTY_PAGE, request.url());
+ assertEquals(getServer().EMPTY_PAGE, request.url());
assertNotNull(request.response());
assertEquals(page.mainFrame(), request.frame());
- assertEquals(server.EMPTY_PAGE, request.frame().url());
+ assertEquals(getServer().EMPTY_PAGE, request.frame().url());
assertNull(request.failure());
}
@@ -97,7 +97,7 @@ public class TestPageEventNetwork extends TestBase {
List events = new ArrayList<>();
page.onRequest(request -> events.add("request"));
page.onResponse(response -> events.add("response"));
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertNull(response.finished());
events.add("requestfinished");
assertEquals(asList("request", "response", "requestfinished"), events);
@@ -118,17 +118,17 @@ public class TestPageEventNetwork extends TestBase {
page.onRequestFailed(request -> {
events.add("FAIL " + request.url());
});
- server.setRedirect("/foo.html", "/empty.html");
- String FOO_URL = server.PREFIX + "/foo.html";
+ getServer().setRedirect("/foo.html", "/empty.html");
+ String FOO_URL = getServer().PREFIX + "/foo.html";
Response response = page.navigate(FOO_URL);
response.finished();
assertEquals(asList(
"GET " + FOO_URL,
"302 " + FOO_URL,
"DONE " + FOO_URL,
- "GET " + server.EMPTY_PAGE,
- "200 " + server.EMPTY_PAGE,
- "DONE " + server.EMPTY_PAGE), events);
+ "GET " + getServer().EMPTY_PAGE,
+ "200 " + getServer().EMPTY_PAGE,
+ "DONE " + getServer().EMPTY_PAGE), events);
Request redirectedFrom = response.request().redirectedFrom();
assertTrue(redirectedFrom.url().contains("/foo.html"));
assertNull(redirectedFrom.redirectedFrom());
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageExposeFunction.java b/playwright/src/test/java/com/microsoft/playwright/TestPageExposeFunction.java
index 4a128f4d..1b4f0a6d 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageExposeFunction.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageExposeFunction.java
@@ -30,7 +30,7 @@ public class TestPageExposeFunction extends TestBase {
@Test
void exposeBindingShouldWork() {
- BrowserContext context = browser.newContext();
+ BrowserContext context = getBrowser().newContext();
Page page = context.newPage();
BindingCallback.Source[] bindingSource = { null };
page.exposeBinding("add", (source, args) -> {
@@ -109,7 +109,7 @@ public class TestPageExposeFunction extends TestBase {
Object result = page.evaluate("async function() {\n" +
" return await window['compute'](9, 4);\n" +
"}");
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(36, result);
}
@@ -119,7 +119,7 @@ public class TestPageExposeFunction extends TestBase {
@Test
void shouldWorkOnFrames() {
page.exposeFunction("compute", args -> (Integer) args[0] * (Integer) args[1]);
- page.navigate(server.PREFIX + "/frames/nested-frames.html");
+ page.navigate(getServer().PREFIX + "/frames/nested-frames.html");
Frame frame = page.frames().get(1);
Object result = frame.evaluate("async function() {\n" +
" return window['compute'](3, 5);\n" +
@@ -129,7 +129,7 @@ public class TestPageExposeFunction extends TestBase {
@Test
void shouldWorkOnFramesBeforeNavigation() {
- page.navigate(server.PREFIX + "/frames/nested-frames.html");
+ page.navigate(getServer().PREFIX + "/frames/nested-frames.html");
page.exposeFunction("compute", args -> (Integer) args[0] * (Integer) args[1]);
Frame frame = page.frames().get(1);
@@ -141,10 +141,10 @@ public class TestPageExposeFunction extends TestBase {
@Test
void shouldWorkAfterCrossOriginNavigation() {
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.exposeFunction("compute", args -> (Integer) args[0] * (Integer) args[1]);
- page.navigate(server.CROSS_PROCESS_PREFIX + "/empty.html");
+ page.navigate(getServer().CROSS_PROCESS_PREFIX + "/empty.html");
Object result = page.evaluate("window['compute'](9, 4)");
assertEquals(36, result);
}
@@ -183,13 +183,13 @@ public class TestPageExposeFunction extends TestBase {
page.exposeBinding("logme", (source, args) -> {
return 17;
}, new Page.ExposeBindingOptions().setHandle(true));
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
page.waitForNavigation(new Page.WaitForNavigationOptions().setWaitUntil(LOAD), () -> {
page.evaluate("async url => {\n" +
" window['logme']({ foo: 42 });\n" +
" window.location.href = url;\n" +
- "}", server.PREFIX + "/one-style.html");
+ "}", getServer().PREFIX + "/one-style.html");
});
}
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageFill.java b/playwright/src/test/java/com/microsoft/playwright/TestPageFill.java
index dbff0aa5..3264d821 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageFill.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageFill.java
@@ -26,21 +26,21 @@ public class TestPageFill extends TestBase {
@Test
void shouldFillTextarea() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.fill("textarea", "some value");
assertEquals("some value", page.evaluate("() => window['result']"));
}
@Test
void shouldFillInput() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.fill("input", "some value");
assertEquals("some value", page.evaluate("() => window['result']"));
}
@Test
void shouldThrowOnUnsupportedInputs() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
for (String type : new String[]{"button", "checkbox", "file", "image", "radio", "range", "reset", "submit"}) {
page.evalOnSelector("input", "(input, type) => input.setAttribute('type', type)", type);
try {
@@ -54,7 +54,7 @@ public class TestPageFill extends TestBase {
@Test
void shouldFillDifferentInputTypes() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
for (String type : new String[]{"password", "search", "tel", "text", "url"}) {
page.evalOnSelector("input", "(input, type) => input.setAttribute('type', type)", type);
page.fill("input", "text " + type);
@@ -122,14 +122,14 @@ public class TestPageFill extends TestBase {
@Test
void shouldFillContenteditable() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.fill("div[contenteditable]", "some value");
assertEquals(page.evalOnSelector("div[contenteditable]", "div => div.textContent"), "some value");
}
@Test
void shouldFillElementsWithExistingValueAndSelection() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.evalOnSelector("input", "input => input.value = 'value one'");
page.fill("input", "another value");
@@ -156,7 +156,7 @@ public class TestPageFill extends TestBase {
@Test
void shouldThrowWhenElementIsNotAnInputTextareaOrContenteditable() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
try {
page.fill("body", "");
fail("did not throw");
@@ -231,7 +231,7 @@ public class TestPageFill extends TestBase {
@Test
void shouldBeAbleToClear() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.fill("input", "some value");
assertEquals("some value", page.evaluate("() => window['result']"));
page.fill("input", "");
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageKeyboard.java b/playwright/src/test/java/com/microsoft/playwright/TestPageKeyboard.java
index e796d0d9..8e8a9e86 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageKeyboard.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageKeyboard.java
@@ -27,7 +27,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldMoveWithTheArrowKeys() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.type("textarea", "Hello World!");
assertEquals("Hello World!", page.evaluate("() => document.querySelector('textarea').value"));
for (int i = 0; i < "World!".length(); i++) {
@@ -46,7 +46,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSendACharacterWithElementHandlePress() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle textarea = page.querySelector("textarea");
textarea.press("a");
assertEquals("a", page.evaluate("() => document.querySelector('textarea').value"));
@@ -57,7 +57,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSendACharacterWithInsertText() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.focus("textarea");
page.keyboard().insertText("嗨");
assertEquals("嗨", page.evaluate("() => document.querySelector('textarea').value"));
@@ -68,7 +68,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void insertTextShouldOnlyEmitInputEvent() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.focus("textarea");
JSHandle events = page.evaluateHandle("() => {\n" +
" const events = [];\n" +
@@ -86,7 +86,7 @@ public class TestPageKeyboard extends TestBase {
void shouldReportShiftKey() {
// Do NOT test on MacOS Firefox
Assumptions.assumeFalse( isFirefox() && isMac);
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
Keyboard keyboard = page.keyboard();
Map codeForKey = new HashMap<>();
codeForKey.put("Shift", 16);
@@ -110,7 +110,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldReportMultipleModifiers() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
Keyboard keyboard = page.keyboard();
keyboard.down("Control");
assertEquals("Keydown: Control ControlLeft 17 [Control]", page.evaluate("getResult()"));
@@ -128,7 +128,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSendProperCodesWhileTyping() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
page.keyboard().type("!");
assertEquals(String.join("\n",
new String[] {"Keydown: ! Digit1 49 []",
@@ -145,7 +145,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSendProperCodesWhileTypingWithShift() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
Keyboard keyboard = page.keyboard();
keyboard.down("Shift");
page.keyboard().type("~");
@@ -160,7 +160,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldNotTypeCanceledEvents() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.focus("textarea");
page.evaluate("() => {\n" +
" window.addEventListener('keydown', event => {\n" +
@@ -178,7 +178,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldPressPlus() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
page.keyboard().press("+");
assertEquals(String.join("\n",
new String[] {"Keydown: + Equal 187 []", // 192 is ` keyCode
@@ -189,7 +189,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldPressShiftPlus() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
page.keyboard().press("Shift++");
assertEquals(String.join("\n",
new String[] {"Keydown: Shift ShiftLeft 16 [Shift]",
@@ -202,7 +202,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSupportPlusSeparatedModifier(){
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
page.keyboard().press("Shift+~");
assertEquals(String.join("\n",
new String[] {"Keydown: Shift ShiftLeft 16 [Shift]",
@@ -215,7 +215,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSupportMultiplePlusSeparatedModifier() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
page.keyboard().press("Control+Shift+~");
assertEquals(String.join("\n",
new String[] {"Keydown: Control ControlLeft 17 [Control]",
@@ -229,7 +229,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldShiftRawCodes() {
- page.navigate(server.PREFIX + "/input/keyboard.html");
+ page.navigate(getServer().PREFIX + "/input/keyboard.html");
page.keyboard().press("Shift+Digit3");
assertEquals(String.join("\n",
new String[] {"Keydown: Shift ShiftLeft 16 [Shift]",
@@ -242,7 +242,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSpecifyRepeatProperty() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.focus("textarea");
JSHandle lastEvent = captureLastKeyDown();
page.keyboard().down("a");
@@ -260,7 +260,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldTypeAllKindsOfCharacters() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.focus("textarea");
final String text = "This text goes onto two lines.\\nThis character is 嗨.";
page.keyboard().type(text);
@@ -269,7 +269,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldSpecifyLocation() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
JSHandle lastEvent = captureLastKeyDown();
ElementHandle textarea = page.querySelector("textarea");
textarea.press("Digit5");
@@ -317,15 +317,15 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldTypeEmoji() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
page.type("textarea", "👹 Tokyo street Japan 🇯🇵");
assertEquals("👹 Tokyo street Japan 🇯🇵", page.evalOnSelector("textarea", "textarea => textarea.value"));
}
@Test
void shouldTypeEmojiIntoAnIframe() {
- page.navigate(server.EMPTY_PAGE);
- attachFrame(page, "emoji-test", server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().EMPTY_PAGE);
+ attachFrame(page, "emoji-test", getServer().PREFIX + "/input/textarea.html");
Frame frame = page.frames().get(1);
ElementHandle textarea = frame.querySelector("textarea");
textarea.type("👹 Tokyo street Japan 🇯🇵");
@@ -334,7 +334,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldHandleSelectAll() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle textarea = page.querySelector("textarea");
textarea.type("some text");
String modifier = isMac ? "Meta" : "Control";
@@ -347,7 +347,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldBeAbleToPreventSelectAll() {
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle textarea = page.querySelector("textarea");
textarea.type("some text");
page.evalOnSelector("textarea", "textarea => {\n" +
@@ -370,7 +370,7 @@ public class TestPageKeyboard extends TestBase {
Assumptions.assumeTrue(isMac);
// @see https://github.com/microsoft/playwright/issues/5721
Assumptions.assumeFalse(isFirefox());
- page.navigate(server.PREFIX + "/input/textarea.html");
+ page.navigate(getServer().PREFIX + "/input/textarea.html");
ElementHandle textarea = page.querySelector("textarea");
textarea.type("some text");
// select one word backwards
@@ -403,8 +403,8 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldWorkAfterACrossOriginNavigation() {
- page.navigate(server.PREFIX + "/empty.html");
- page.navigate(server.CROSS_PROCESS_PREFIX + "/empty.html");
+ page.navigate(getServer().PREFIX + "/empty.html");
+ page.navigate(getServer().CROSS_PROCESS_PREFIX + "/empty.html");
JSHandle lastEvent = captureLastKeyDown();
page.keyboard().press("a");
assertEquals("a", lastEvent.evaluate("l => l.key"));
@@ -434,7 +434,7 @@ public class TestPageKeyboard extends TestBase {
@Test
void shouldScrollWithPageDown() {
- page.navigate(server.PREFIX + "/input/scrollable.html");
+ page.navigate(getServer().PREFIX + "/input/scrollable.html");
// A click is required for WebKit to send the event into the body.
page.click("body");
page.keyboard().press("PageDown");
diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java
index 9aed7b02..90dc6765 100644
--- a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java
+++ b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java
@@ -54,7 +54,7 @@ public class TestPageRoute extends TestBase {
route.resume();
intercepted[0] = true;
});
- Response response = page.navigate(server.EMPTY_PAGE);
+ Response response = page.navigate(getServer().EMPTY_PAGE);
assertTrue(response.ok());
assertTrue(intercepted[0]);
}
@@ -80,24 +80,24 @@ public class TestPageRoute extends TestBase {
intercepted.add(4);
route.resume();
});
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList(1), intercepted);
intercepted.clear();
page.unroute("**/empty.html", handler1);
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList(2), intercepted);
intercepted.clear();
page.unroute("**/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ page.navigate(getServer().EMPTY_PAGE);
assertEquals(asList(4), intercepted);
}
@Test
void shouldWorkWhenPOSTIsRedirectedWith302() {
- server.setRedirect("/rredirect", "/empty.html");
- page.navigate(server.EMPTY_PAGE);
+ getServer().setRedirect("/rredirect", "/empty.html");
+ page.navigate(getServer().EMPTY_PAGE);
page.route("**/*", route -> route.resume());
page.setContent("