chore: remore redundant parameter from route handler (#58)

This commit is contained in:
Yury Semikhatsky 2020-10-30 10:21:36 -07:00 committed by GitHub
parent 6022d47686
commit ad51236002
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 126 additions and 123 deletions

View File

@ -240,9 +240,9 @@ class Method extends Element {
customSignature.put("BrowserType.connect", new String[0]); customSignature.put("BrowserType.connect", new String[0]);
customSignature.put("BrowserType.launchServer", new String[0]); customSignature.put("BrowserType.launchServer", new String[0]);
customSignature.put("BrowserContext.route", new String[]{ customSignature.put("BrowserContext.route", new String[]{
"void route(String url, BiConsumer<Route, Request> handler);", "void route(String url, Consumer<Route> handler);",
"void route(Pattern url, BiConsumer<Route, Request> handler);", "void route(Pattern url, Consumer<Route> handler);",
"void route(Predicate<String> url, BiConsumer<Route, Request> handler);", "void route(Predicate<String> url, Consumer<Route> handler);",
}); });
// There is no standard JSON type in Java. // There is no standard JSON type in Java.
customSignature.put("Response.json", new String[0]); customSignature.put("Response.json", new String[0]);
@ -254,25 +254,25 @@ class Method extends Element {
"Frame frameByUrl(Predicate<String> predicate);", "Frame frameByUrl(Predicate<String> predicate);",
}); });
customSignature.put("Page.route", new String[]{ customSignature.put("Page.route", new String[]{
"void route(String url, BiConsumer<Route, Request> handler);", "void route(String url, Consumer<Route> handler);",
"void route(Pattern url, BiConsumer<Route, Request> handler);", "void route(Pattern url, Consumer<Route> handler);",
"void route(Predicate<String> url, BiConsumer<Route, Request> handler);", "void route(Predicate<String> url, Consumer<Route> handler);",
}); });
customSignature.put("BrowserContext.unroute", new String[]{ customSignature.put("BrowserContext.unroute", new String[]{
"default void unroute(String url) { unroute(url, null); }", "default void unroute(String url) { unroute(url, null); }",
"default void unroute(Pattern url) { unroute(url, null); }", "default void unroute(Pattern url) { unroute(url, null); }",
"default void unroute(Predicate<String> url) { unroute(url, null); }", "default void unroute(Predicate<String> url) { unroute(url, null); }",
"void unroute(String url, BiConsumer<Route, Request> handler);", "void unroute(String url, Consumer<Route> handler);",
"void unroute(Pattern url, BiConsumer<Route, Request> handler);", "void unroute(Pattern url, Consumer<Route> handler);",
"void unroute(Predicate<String> url, BiConsumer<Route, Request> handler);", "void unroute(Predicate<String> url, Consumer<Route> handler);",
}); });
customSignature.put("Page.unroute", new String[]{ customSignature.put("Page.unroute", new String[]{
"default void unroute(String url) { unroute(url, null); }", "default void unroute(String url) { unroute(url, null); }",
"default void unroute(Pattern url) { unroute(url, null); }", "default void unroute(Pattern url) { unroute(url, null); }",
"default void unroute(Predicate<String> url) { unroute(url, null); }", "default void unroute(Predicate<String> url) { unroute(url, null); }",
"void unroute(String url, BiConsumer<Route, Request> handler);", "void unroute(String url, Consumer<Route> handler);",
"void unroute(Pattern url, BiConsumer<Route, Request> handler);", "void unroute(Pattern url, Consumer<Route> handler);",
"void unroute(Predicate<String> url, BiConsumer<Route, Request> handler);", "void unroute(Predicate<String> url, Consumer<Route> handler);",
}); });
customSignature.put("BrowserContext.cookies", new String[]{ customSignature.put("BrowserContext.cookies", new String[]{
"default List<Cookie> cookies() { return cookies((List<String>) null); }", "default List<Cookie> cookies() { return cookies((List<String>) null); }",
@ -661,7 +661,7 @@ class Interface extends TypeDefinition {
} }
output.add("import java.util.*;"); output.add("import java.util.*;");
if (asList("Page", "BrowserContext").contains(jsonName)) { if (asList("Page", "BrowserContext").contains(jsonName)) {
output.add("import java.util.function.BiConsumer;"); output.add("import java.util.function.Consumer;");
} }
if (asList("Page", "Frame", "BrowserContext").contains(jsonName)) { if (asList("Page", "Frame", "BrowserContext").contains(jsonName)) {
output.add("import java.util.function.Predicate;"); output.add("import java.util.function.Predicate;");

View File

@ -107,10 +107,10 @@ class Types {
add("ChromiumBrowser.startTracing.options.path", "string", "Path"); add("ChromiumBrowser.startTracing.options.path", "string", "Path");
// Route // Route
add("BrowserContext.route.handler", "function(Route, Request)", "BiConsumer<Route, Request>"); add("BrowserContext.route.handler", "function(Route, Request)", "Consumer<Route>");
add("BrowserContext.unroute.handler", "function(Route, Request)", "BiConsumer<Route, Request>"); add("BrowserContext.unroute.handler", "function(Route, Request)", "Consumer<Route>");
add("Page.route.handler", "function(Route, Request)", "BiConsumer<Route, Request>"); add("Page.route.handler", "function(Route, Request)", "Consumer<Route>");
add("Page.unroute.handler", "function(Route, Request)", "BiConsumer<Route, Request>"); add("Page.unroute.handler", "function(Route, Request)", "Consumer<Route>");
// Viewport size. // Viewport size.
add("Browser.newContext.options.viewport", "null|Object", "Page.Viewport", new Empty()); add("Browser.newContext.options.viewport", "null|Object", "Page.Viewport", new Empty());

View File

@ -17,7 +17,7 @@
package com.microsoft.playwright; package com.microsoft.playwright;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer; import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -183,9 +183,9 @@ public interface BrowserContext {
void grantPermissions(List<String> permissions, GrantPermissionsOptions options); void grantPermissions(List<String> permissions, GrantPermissionsOptions options);
Page newPage(); Page newPage();
List<Page> pages(); List<Page> pages();
void route(String url, BiConsumer<Route, Request> handler); void route(String url, Consumer<Route> handler);
void route(Pattern url, BiConsumer<Route, Request> handler); void route(Pattern url, Consumer<Route> handler);
void route(Predicate<String> url, BiConsumer<Route, Request> handler); void route(Predicate<String> url, Consumer<Route> handler);
void setDefaultNavigationTimeout(int timeout); void setDefaultNavigationTimeout(int timeout);
void setDefaultTimeout(int timeout); void setDefaultTimeout(int timeout);
void setExtraHTTPHeaders(Map<String, String> headers); void setExtraHTTPHeaders(Map<String, String> headers);
@ -194,9 +194,9 @@ public interface BrowserContext {
default void unroute(String url) { unroute(url, null); } default void unroute(String url) { unroute(url, null); }
default void unroute(Pattern url) { unroute(url, null); } default void unroute(Pattern url) { unroute(url, null); }
default void unroute(Predicate<String> url) { unroute(url, null); } default void unroute(Predicate<String> url) { unroute(url, null); }
void unroute(String url, BiConsumer<Route, Request> handler); void unroute(String url, Consumer<Route> handler);
void unroute(Pattern url, BiConsumer<Route, Request> handler); void unroute(Pattern url, Consumer<Route> handler);
void unroute(Predicate<String> url, BiConsumer<Route, Request> handler); void unroute(Predicate<String> url, Consumer<Route> handler);
default Deferred<Event<EventType>> waitForEvent(EventType event) { default Deferred<Event<EventType>> waitForEvent(EventType event) {
return waitForEvent(event, (WaitForEventOptions) null); return waitForEvent(event, (WaitForEventOptions) null);
} }

View File

@ -18,7 +18,7 @@ package com.microsoft.playwright;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer; import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -875,9 +875,9 @@ public interface Page {
return reload(null); return reload(null);
} }
Response reload(ReloadOptions options); Response reload(ReloadOptions options);
void route(String url, BiConsumer<Route, Request> handler); void route(String url, Consumer<Route> handler);
void route(Pattern url, BiConsumer<Route, Request> handler); void route(Pattern url, Consumer<Route> handler);
void route(Predicate<String> url, BiConsumer<Route, Request> handler); void route(Predicate<String> url, Consumer<Route> handler);
default byte[] screenshot() { default byte[] screenshot() {
return screenshot(null); return screenshot(null);
} }
@ -953,9 +953,9 @@ public interface Page {
default void unroute(String url) { unroute(url, null); } default void unroute(String url) { unroute(url, null); }
default void unroute(Pattern url) { unroute(url, null); } default void unroute(Pattern url) { unroute(url, null); }
default void unroute(Predicate<String> url) { unroute(url, null); } default void unroute(Predicate<String> url) { unroute(url, null); }
void unroute(String url, BiConsumer<Route, Request> handler); void unroute(String url, Consumer<Route> handler);
void unroute(Pattern url, BiConsumer<Route, Request> handler); void unroute(Pattern url, Consumer<Route> handler);
void unroute(Predicate<String> url, BiConsumer<Route, Request> handler); void unroute(Predicate<String> url, Consumer<Route> handler);
String url(); String url();
Video video(); Video video();
Viewport viewportSize(); Viewport viewportSize();

View File

@ -24,6 +24,7 @@ import com.microsoft.playwright.*;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -173,21 +174,21 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
} }
@Override @Override
public void route(String url, BiConsumer<Route, Request> handler) { public void route(String url, Consumer<Route> handler) {
route(new UrlMatcher(url), handler); route(new UrlMatcher(url), handler);
} }
@Override @Override
public void route(Pattern url, BiConsumer<Route, Request> handler) { public void route(Pattern url, Consumer<Route> handler) {
route(new UrlMatcher(url), handler); route(new UrlMatcher(url), handler);
} }
@Override @Override
public void route(Predicate<String> url, BiConsumer<Route, Request> handler) { public void route(Predicate<String> url, Consumer<Route> handler) {
route(new UrlMatcher(url), handler); route(new UrlMatcher(url), handler);
} }
private void route(UrlMatcher matcher, BiConsumer<Route, Request> handler) { private void route(UrlMatcher matcher, Consumer<Route> handler) {
routes.add(matcher, handler); routes.add(matcher, handler);
if (routes.size() == 1) { if (routes.size() == 1) {
JsonObject params = new JsonObject(); JsonObject params = new JsonObject();
@ -243,17 +244,17 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
} }
@Override @Override
public void unroute(String url, BiConsumer<Route, Request> handler) { public void unroute(String url, Consumer<Route> handler) {
unroute(new UrlMatcher(url), handler); unroute(new UrlMatcher(url), handler);
} }
@Override @Override
public void unroute(Pattern url, BiConsumer<Route, Request> handler) { public void unroute(Pattern url, Consumer<Route> handler) {
unroute(new UrlMatcher(url), handler); unroute(new UrlMatcher(url), handler);
} }
@Override @Override
public void unroute(Predicate<String> url, BiConsumer<Route, Request> handler) { public void unroute(Predicate<String> url, Consumer<Route> handler) {
unroute(new UrlMatcher(url), handler); unroute(new UrlMatcher(url), handler);
} }
@ -268,7 +269,7 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
return toDeferred(new WaitableRace<>(waitables)); return toDeferred(new WaitableRace<>(waitables));
} }
private void unroute(UrlMatcher matcher, BiConsumer<Route, Request> handler) { private void unroute(UrlMatcher matcher, Consumer<Route> handler) {
routes.remove(matcher, handler); routes.remove(matcher, handler);
if (routes.size() == 0) { if (routes.size() == 0) {
JsonObject params = new JsonObject(); JsonObject params = new JsonObject();
@ -281,8 +282,7 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
protected void handleEvent(String event, JsonObject params) { protected void handleEvent(String event, JsonObject params) {
if ("route".equals(event)) { if ("route".equals(event)) {
Route route = connection.getExistingObject(params.getAsJsonObject("route").get("guid").getAsString()); Route route = connection.getExistingObject(params.getAsJsonObject("route").get("guid").getAsString());
Request request = connection.getExistingObject(params.getAsJsonObject("request").get("guid").getAsString()); boolean handled = routes.handle(route);
boolean handled = routes.handle(route, request);
if (!handled) { if (!handled) {
route.continue_(); route.continue_();
} }

View File

@ -24,6 +24,7 @@ import com.microsoft.playwright.*;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -147,10 +148,9 @@ public class PageImpl extends ChannelOwner implements Page {
listeners.notify(EventType.FRAMEDETACHED, frame); listeners.notify(EventType.FRAMEDETACHED, frame);
} else if ("route".equals(event)) { } else if ("route".equals(event)) {
Route route = connection.getExistingObject(params.getAsJsonObject("route").get("guid").getAsString()); Route route = connection.getExistingObject(params.getAsJsonObject("route").get("guid").getAsString());
Request request = connection.getExistingObject(params.getAsJsonObject("request").get("guid").getAsString()); boolean handled = routes.handle(route);
boolean handled = routes.handle(route, request);
if (!handled) { if (!handled) {
handled = browserContext.routes.handle(route, request); handled = browserContext.routes.handle(route);
} }
if (!handled) { if (!handled) {
route.continue_(); route.continue_();
@ -507,21 +507,21 @@ public class PageImpl extends ChannelOwner implements Page {
} }
@Override @Override
public void route(String url, BiConsumer<Route, Request> handler) { public void route(String url, Consumer<Route> handler) {
route(new UrlMatcher(url), handler); route(new UrlMatcher(url), handler);
} }
@Override @Override
public void route(Pattern url, BiConsumer<Route, Request> handler) { public void route(Pattern url, Consumer<Route> handler) {
route(new UrlMatcher(url), handler); route(new UrlMatcher(url), handler);
} }
@Override @Override
public void route(Predicate<String> url, BiConsumer<Route, Request> handler) { public void route(Predicate<String> url, Consumer<Route> handler) {
route(new UrlMatcher(url), handler); route(new UrlMatcher(url), handler);
} }
private void route(UrlMatcher matcher, BiConsumer<Route, Request> handler) { private void route(UrlMatcher matcher, Consumer<Route> handler) {
routes.add(matcher, handler); routes.add(matcher, handler);
if (routes.size() == 1) { if (routes.size() == 1) {
JsonObject params = new JsonObject(); JsonObject params = new JsonObject();
@ -649,21 +649,21 @@ public class PageImpl extends ChannelOwner implements Page {
} }
@Override @Override
public void unroute(String url, BiConsumer<Route, Request> handler) { public void unroute(String url, Consumer<Route> handler) {
unroute(new UrlMatcher(url), handler); unroute(new UrlMatcher(url), handler);
} }
@Override @Override
public void unroute(Pattern url, BiConsumer<Route, Request> handler) { public void unroute(Pattern url, Consumer<Route> handler) {
unroute(new UrlMatcher(url), handler); unroute(new UrlMatcher(url), handler);
} }
@Override @Override
public void unroute(Predicate<String> url, BiConsumer<Route, Request> handler) { public void unroute(Predicate<String> url, Consumer<Route> handler) {
unroute(new UrlMatcher(url), handler); unroute(new UrlMatcher(url), handler);
} }
private void unroute(UrlMatcher matcher, BiConsumer<Route, Request> handler) { private void unroute(UrlMatcher matcher, Consumer<Route> handler) {
routes.remove(matcher, handler); routes.remove(matcher, handler);
if (routes.size() == 0) { if (routes.size() == 0) {
JsonObject params = new JsonObject(); JsonObject params = new JsonObject();

View File

@ -22,6 +22,7 @@ import com.microsoft.playwright.Route;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
class Router { class Router {
@ -29,19 +30,19 @@ class Router {
private static class RouteInfo { private static class RouteInfo {
final UrlMatcher matcher; final UrlMatcher matcher;
final BiConsumer<Route, Request> handler; final Consumer<Route> handler;
RouteInfo(UrlMatcher matcher, BiConsumer<Route, Request> handler) { RouteInfo(UrlMatcher matcher, Consumer<Route> handler) {
this.matcher = matcher; this.matcher = matcher;
this.handler = handler; this.handler = handler;
} }
} }
void add(UrlMatcher matcher, BiConsumer<Route, Request> handler) { void add(UrlMatcher matcher, Consumer<Route> handler) {
routes.add(new RouteInfo(matcher, handler)); routes.add(new RouteInfo(matcher, handler));
} }
void remove(UrlMatcher matcher, BiConsumer<Route, Request> handler) { void remove(UrlMatcher matcher, Consumer<Route> handler) {
routes = routes.stream() routes = routes.stream()
.filter(info -> !info.matcher.equals(matcher) || (handler != null && info.handler != handler)) .filter(info -> !info.matcher.equals(matcher) || (handler != null && info.handler != handler))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -51,10 +52,10 @@ class Router {
return routes.size(); return routes.size();
} }
boolean handle(Route route, Request request) { boolean handle(Route route) {
for (RouteInfo info : routes) { for (RouteInfo info : routes) {
if (info.matcher.test(request.url())) { if (info.matcher.test(route.request().url())) {
info.handler.accept(route, request); info.handler.accept(route);
return true; return true;
} }
} }

View File

@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
@ -32,7 +33,7 @@ public class TestBrowserContextRoute extends TestBase {
BrowserContext context = browser.newContext(); BrowserContext context = browser.newContext();
boolean[] intercepted = {false}; boolean[] intercepted = {false};
Page page = context.newPage(); Page page = context.newPage();
context.route("**/empty.html", (route, req) -> { context.route("**/empty.html", route -> {
intercepted[0] = true; intercepted[0] = true;
Request request = route.request(); Request request = route.request();
assertTrue(request.url().contains("empty.html")); assertTrue(request.url().contains("empty.html"));
@ -57,20 +58,20 @@ public class TestBrowserContextRoute extends TestBase {
Page page = context.newPage(); Page page = context.newPage();
List<Integer> intercepted = new ArrayList<>(); List<Integer> intercepted = new ArrayList<>();
BiConsumer<Route, Request> handler1 = (route, request) -> { Consumer<Route> handler1 = route -> {
intercepted.add(1); intercepted.add(1);
route.continue_(); route.continue_();
}; };
context.route("**/empty.html", handler1); context.route("**/empty.html", handler1);
context.route("**/empty.html", (route, request) -> { context.route("**/empty.html", route -> {
intercepted.add(2); intercepted.add(2);
route.continue_(); route.continue_();
}); });
context.route("**/empty.html", (route, request) -> { context.route("**/empty.html", route -> {
intercepted.add(3); intercepted.add(3);
route.continue_(); route.continue_();
}); });
context.route("**/*", (route, request) -> { context.route("**/*", route -> {
intercepted.add(4); intercepted.add(4);
route.continue_(); route.continue_();
}); });
@ -93,11 +94,11 @@ public class TestBrowserContextRoute extends TestBase {
@Test @Test
void shouldYieldToPageRoute() { void shouldYieldToPageRoute() {
BrowserContext context = browser.newContext(); BrowserContext context = browser.newContext();
context.route("**/empty.html", (route, request) -> { context.route("**/empty.html", route -> {
route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("context")); route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("context"));
}); });
Page page = context.newPage(); Page page = context.newPage();
page.route("**/empty.html", (route, request) -> { page.route("**/empty.html", route -> {
route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("page")); route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("page"));
}); });
Response response = page.navigate(server.EMPTY_PAGE); Response response = page.navigate(server.EMPTY_PAGE);
@ -109,11 +110,11 @@ public class TestBrowserContextRoute extends TestBase {
@Test @Test
void shouldFallBackToContextRoute() { void shouldFallBackToContextRoute() {
BrowserContext context = browser.newContext(); BrowserContext context = browser.newContext();
context.route("**/empty.html", (route, request) -> { context.route("**/empty.html", route -> {
route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("context")); route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("context"));
}); });
Page page = context.newPage(); Page page = context.newPage();
page.route("**/non-empty.html", (route, request) -> { page.route("**/non-empty.html", route -> {
route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("page")); route.fulfill(new Route.FulfillResponse().withStatus(200).withBody("page"));
}); });
Response response = page.navigate(server.EMPTY_PAGE); Response response = page.navigate(server.EMPTY_PAGE);

View File

@ -81,7 +81,7 @@ public class TestNetworkRequest extends TestBase {
void shouldNotWorkForARedirectAndInterception() { void shouldNotWorkForARedirectAndInterception() {
server.setRedirect("/foo.html", "/empty.html"); server.setRedirect("/foo.html", "/empty.html");
List<Request> requests = new ArrayList<>(); List<Request> requests = new ArrayList<>();
page.route("**", (route, request) -> { page.route("**", route -> {
requests.add(route.request()); requests.add(route.request());
route.continue_(); route.continue_();
}); });
@ -189,7 +189,7 @@ public class TestNetworkRequest extends TestBase {
}); });
Request[] request = {null}; Request[] request = {null};
page.addListener(REQUEST, event -> request[0] = (Request) event.data()); page.addListener(REQUEST, event -> request[0] = (Request) event.data());
page.route("/post", (route, req) -> route.continue_()); page.route("/post", route -> route.continue_());
page.evaluate("async () => {\n" + page.evaluate("async () => {\n" +
" await fetch('./post', { method: 'POST', body: new Uint8Array(Array.from(Array(256).keys())) });\n" + " await fetch('./post', { method: 'POST', body: new Uint8Array(Array.from(Array(256).keys())) });\n" +
"}"); "}");

View File

@ -24,6 +24,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static com.microsoft.playwright.Page.EventType.REQUEST; import static com.microsoft.playwright.Page.EventType.REQUEST;
@ -37,7 +38,8 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldIntercept() { void shouldIntercept() {
boolean[] intercepted = {false}; boolean[] intercepted = {false};
page.route("**/empty.html", (route, request) -> { page.route("**/empty.html", route -> {
Request request = route.request();
assertEquals(request, route.request()); assertEquals(request, route.request());
assertTrue(request.url().contains("empty.html")); assertTrue(request.url().contains("empty.html"));
assertNotNull(request.headers().get("user-agent")); assertNotNull(request.headers().get("user-agent"));
@ -59,20 +61,20 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldUnroute() { void shouldUnroute() {
List<Integer> intercepted = new ArrayList<>(); List<Integer> intercepted = new ArrayList<>();
BiConsumer<Route, Request> handler1 = (route, request) -> { Consumer<Route> handler1 = route -> {
intercepted.add(1); intercepted.add(1);
route.continue_(); route.continue_();
}; };
page.route("**/empty.html", handler1); page.route("**/empty.html", handler1);
page.route("**/empty.html", (route, request) -> { page.route("**/empty.html", route -> {
intercepted.add(2); intercepted.add(2);
route.continue_(); route.continue_();
}); });
page.route("**/empty.html", (route, request) -> { page.route("**/empty.html", route -> {
intercepted.add(3); intercepted.add(3);
route.continue_(); route.continue_();
}); });
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
intercepted.add(4); intercepted.add(4);
route.continue_(); route.continue_();
}); });
@ -94,7 +96,7 @@ public class TestPageRoute extends TestBase {
void shouldWorkWhenPOSTIsRedirectedWith302() { void shouldWorkWhenPOSTIsRedirectedWith302() {
server.setRedirect("/rredirect", "/empty.html"); server.setRedirect("/rredirect", "/empty.html");
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
page.setContent("<form action='/rredirect' method='post'>\n" + page.setContent("<form action='/rredirect' method='post'>\n" +
" <input type='hidden' id='foo' name='foo' value='FOOBAR'>\n" + " <input type='hidden' id='foo' name='foo' value='FOOBAR'>\n" +
"</form>"); "</form>");
@ -106,7 +108,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldWorkWhenHeaderManipulationHeadersWithRedirect() { void shouldWorkWhenHeaderManipulationHeadersWithRedirect() {
server.setRedirect("/rrredirect", "/empty.html"); server.setRedirect("/rrredirect", "/empty.html");
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
Map<String, String> headers = new HashMap<>(route.request().headers()); Map<String, String> headers = new HashMap<>(route.request().headers());
headers.put("foo", "bar"); headers.put("foo", "bar");
route.continue_(new Route.ContinueOverrides().withHeaders(headers)); route.continue_(new Route.ContinueOverrides().withHeaders(headers));
@ -117,7 +119,7 @@ public class TestPageRoute extends TestBase {
// @see https://github.com/GoogleChrome/puppeteer/issues/4743 // @see https://github.com/GoogleChrome/puppeteer/issues/4743
@Test @Test
void shouldBeAbleToRemoveHeaders() throws ExecutionException, InterruptedException { void shouldBeAbleToRemoveHeaders() throws ExecutionException, InterruptedException {
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
Map<String, String> headers = new HashMap<>(route.request().headers()); Map<String, String> headers = new HashMap<>(route.request().headers());
headers.put("foo", "bar"); headers.put("foo", "bar");
headers.remove("accept"); headers.remove("accept");
@ -132,7 +134,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldContainRefererHeader() { void shouldContainRefererHeader() {
List<Request> requests = new ArrayList<>(); List<Request> requests = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
requests.add(route.request()); requests.add(route.request());
route.continue_(); route.continue_();
}); });
@ -149,7 +151,7 @@ public class TestPageRoute extends TestBase {
context.addCookies(asList(new BrowserContext.AddCookie() context.addCookies(asList(new BrowserContext.AddCookie()
.withUrl(server.EMPTY_PAGE).withName("foo").withValue("bar"))); .withUrl(server.EMPTY_PAGE).withName("foo").withValue("bar")));
// Setup request interception. // Setup request interception.
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
Response response = page.reload(); Response response = page.reload();
assertEquals(200, response.status()); assertEquals(200, response.status());
} }
@ -157,8 +159,8 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldShowCustomHTTPHeaders() { void shouldShowCustomHTTPHeaders() {
page.setExtraHTTPHeaders(mapOf("foo", "bar")); page.setExtraHTTPHeaders(mapOf("foo", "bar"));
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
assertEquals("bar", request.headers().get("foo")); assertEquals("bar", route.request().headers().get("foo"));
route.continue_(); route.continue_();
}); });
Response response = page.navigate(server.EMPTY_PAGE); Response response = page.navigate(server.EMPTY_PAGE);
@ -170,7 +172,7 @@ public class TestPageRoute extends TestBase {
void shouldWorkWithRedirectInsideSyncXHR() { void shouldWorkWithRedirectInsideSyncXHR() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
server.setRedirect("/logo.png", "/pptr.png"); server.setRedirect("/logo.png", "/pptr.png");
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
Object status = page.evaluate("async () => {\n" + Object status = page.evaluate("async () => {\n" +
" const request = new XMLHttpRequest();\n" + " const request = new XMLHttpRequest();\n" +
" request.open('GET', '/logo.png', false); // `false` makes the request synchronous\n" + " request.open('GET', '/logo.png', false); // `false` makes the request synchronous\n" +
@ -183,7 +185,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldWorkWithCustomRefererHeaders() { void shouldWorkWithCustomRefererHeaders() {
page.setExtraHTTPHeaders(mapOf("referer", server.EMPTY_PAGE)); page.setExtraHTTPHeaders(mapOf("referer", server.EMPTY_PAGE));
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
assertEquals(server.EMPTY_PAGE, route.request().headers().get("referer")); assertEquals(server.EMPTY_PAGE, route.request().headers().get("referer"));
route.continue_(); route.continue_();
}); });
@ -193,7 +195,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldBeAbortable() { void shouldBeAbortable() {
page.route(Pattern.compile(".*\\.css$"), (route, request) -> route.abort()); page.route(Pattern.compile(".*\\.css$"), route -> route.abort());
boolean[] failed = {false}; boolean[] failed = {false};
page.addListener(REQUESTFAILED, event -> { page.addListener(REQUESTFAILED, event -> {
Request request = (Request) event.data(); Request request = (Request) event.data();
@ -208,7 +210,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldBeAbortableWithCustomErrorCodes() { void shouldBeAbortableWithCustomErrorCodes() {
page.route("**/*", (route, request) -> route.abort("internetdisconnected")); page.route("**/*", route -> route.abort("internetdisconnected"));
Request[] failedRequest = {null}; Request[] failedRequest = {null};
page.addListener(REQUESTFAILED, event -> failedRequest[0] = (Request) event.data()); page.addListener(REQUESTFAILED, event -> failedRequest[0] = (Request) event.data());
try { try {
@ -227,7 +229,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldSendReferer() throws ExecutionException, InterruptedException { void shouldSendReferer() throws ExecutionException, InterruptedException {
page.setExtraHTTPHeaders(mapOf("referer", "http://google.com/")); page.setExtraHTTPHeaders(mapOf("referer", "http://google.com/"));
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
Future<Server.Request> request = server.waitForRequest("/grid.html"); Future<Server.Request> request = server.waitForRequest("/grid.html");
page.navigate(server.PREFIX + "/grid.html"); page.navigate(server.PREFIX + "/grid.html");
assertEquals(asList("http://google.com/"), request.get().headers.get("referer")); assertEquals(asList("http://google.com/"), request.get().headers.get("referer"));
@ -235,7 +237,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldFailNavigationWhenAbortingMainResource() { void shouldFailNavigationWhenAbortingMainResource() {
page.route("**/*", (route, request) -> route.abort()); page.route("**/*", route -> route.abort());
try { try {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
fail("did not throw"); fail("did not throw");
@ -253,7 +255,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldNotWorkWithRedirects() { void shouldNotWorkWithRedirects() {
List<Request> intercepted = new ArrayList<>(); List<Request> intercepted = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(); route.continue_();
intercepted.add(route.request()); intercepted.add(route.request());
}); });
@ -290,7 +292,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldWorkWithRedirectsForSubresources() { void shouldWorkWithRedirectsForSubresources() {
List<Request> intercepted = new ArrayList<>(); List<Request> intercepted = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(); route.continue_();
intercepted.add(route.request()); intercepted.add(route.request());
}); });
@ -333,7 +335,7 @@ public class TestPageRoute extends TestBase {
boolean[] spinner = {false}; boolean[] spinner = {false};
// Cancel 2nd request. // Cancel 2nd request.
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
if (spinner[0]) { if (spinner[0]) {
route.abort(); route.abort();
} else { } else {
@ -351,7 +353,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldNavigateToDataURLAndNotFireDataURLRequests() { void shouldNavigateToDataURLAndNotFireDataURLRequests() {
List<Request> requests = new ArrayList<>(); List<Request> requests = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
requests.add(route.request()); requests.add(route.request());
route.continue_(); route.continue_();
}); });
@ -365,7 +367,7 @@ public class TestPageRoute extends TestBase {
void shouldBeAbleToFetchDataURLAndNotFireDataURLRequests() { void shouldBeAbleToFetchDataURLAndNotFireDataURLRequests() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
List<Request> requests = new ArrayList<>(); List<Request> requests = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
requests.add(route.request()); requests.add(route.request());
route.continue_(); route.continue_();
}); });
@ -378,7 +380,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldNavigateToURLWithHashAndAndFireRequestsWithoutHash() { void shouldNavigateToURLWithHashAndAndFireRequestsWithoutHash() {
List<Request> requests = new ArrayList<>(); List<Request> requests = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
requests.add(route.request()); requests.add(route.request());
route.continue_(); route.continue_();
}); });
@ -393,7 +395,7 @@ public class TestPageRoute extends TestBase {
void shouldWorkWithEncodedServer() throws InterruptedException { void shouldWorkWithEncodedServer() throws InterruptedException {
// The requestWillBeSent will report encoded URL, whereas interception will // The requestWillBeSent will report encoded URL, whereas interception will
// report URL as-is. @see crbug.com/759388 // report URL as-is. @see crbug.com/759388
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
Response response = page.navigate(server.PREFIX + "/some nonexisting page"); Response response = page.navigate(server.PREFIX + "/some nonexisting page");
assertEquals(404, response.status()); assertEquals(404, response.status());
} }
@ -404,7 +406,7 @@ public class TestPageRoute extends TestBase {
exchange.sendResponseHeaders(200, 0); exchange.sendResponseHeaders(200, 0);
exchange.getResponseBody().close(); exchange.getResponseBody().close();
}); });
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
Response response = page.navigate(server.PREFIX + "/malformed?rnd=%911"); Response response = page.navigate(server.PREFIX + "/malformed?rnd=%911");
assertEquals(200, response.status()); assertEquals(200, response.status());
} }
@ -414,7 +416,7 @@ public class TestPageRoute extends TestBase {
// The requestWillBeSent will report URL as-is, whereas interception will // The requestWillBeSent will report URL as-is, whereas interception will
// report encoded URL for stylesheet. @see crbug.com/759388 // report encoded URL for stylesheet. @see crbug.com/759388
List<Request> requests = new ArrayList<>(); List<Request> requests = new ArrayList<>();
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(); route.continue_();
requests.add(route.request()); requests.add(route.request());
}); });
@ -428,7 +430,7 @@ public class TestPageRoute extends TestBase {
void shouldNotThrowInvalidInterceptionIdIfTheRequestWasCancelled() { void shouldNotThrowInvalidInterceptionIdIfTheRequestWasCancelled() {
page.setContent("<iframe></iframe>"); page.setContent("<iframe></iframe>");
Route[] route = {null}; Route[] route = {null};
page.route("**/*", (r, req) -> route[0] = r); page.route("**/*", r -> route[0] = r);
// Wait for request interception. // Wait for request interception.
Deferred<Event<Page.EventType>> event = page.waitForEvent(REQUEST); Deferred<Event<Page.EventType>> event = page.waitForEvent(REQUEST);
page.evalOnSelector("iframe", "(frame, url) => frame.src = url", server.EMPTY_PAGE); page.evalOnSelector("iframe", "(frame, url) => frame.src = url", server.EMPTY_PAGE);
@ -446,7 +448,7 @@ public class TestPageRoute extends TestBase {
void shouldInterceptMainResourceDuringCrossProcessNavigation() { void shouldInterceptMainResourceDuringCrossProcessNavigation() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
boolean[] intercepted = {false}; boolean[] intercepted = {false};
page.route(server.CROSS_PROCESS_PREFIX + "/empty.html", (route, request) -> { page.route(server.CROSS_PROCESS_PREFIX + "/empty.html", route -> {
intercepted[0] = true; intercepted[0] = true;
route.continue_(); route.continue_();
}); });
@ -458,9 +460,8 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldCreateARedirect() { void shouldCreateARedirect() {
page.navigate(server.PREFIX + "/empty.html"); page.navigate(server.PREFIX + "/empty.html");
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
System.out.println(request.url()); if (!route.request().url().equals(server.PREFIX + "/redirect_this")) {
if (!request.url().equals(server.PREFIX + "/redirect_this")) {
route.continue_(); route.continue_();
return; return;
} }
@ -478,9 +479,9 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldSupportCorsWithGET() { void shouldSupportCorsWithGET() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/cars*", (route, request) -> { page.route("**/cars*", route -> {
Map<String, String> headers = new HashMap<>(); Map<String, String> headers = new HashMap<>();
if (request.url().endsWith("allow")) { if (route.request().url().endsWith("allow")) {
headers.put("access-control-allow-origin", "*"); headers.put("access-control-allow-origin", "*");
} }
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
@ -514,7 +515,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldSupportCorsWithPOST() { void shouldSupportCorsWithPOST() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/cars", (route, request) -> { page.route("**/cars", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withStatus(200) .withStatus(200)
.withContentType("application/json") .withContentType("application/json")
@ -536,7 +537,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldSupportCorsWithCredentials() { void shouldSupportCorsWithCredentials() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/cars", (route, request) -> { page.route("**/cars", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withStatus(200) .withStatus(200)
.withContentType("application/json") .withContentType("application/json")
@ -560,7 +561,7 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldRejectCorsWithDisallowedCredentials() { void shouldRejectCorsWithDisallowedCredentials() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/cars", (route, request) -> { page.route("**/cars", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withStatus(200) .withStatus(200)
.withContentType("application/json") .withContentType("application/json")
@ -588,12 +589,12 @@ public class TestPageRoute extends TestBase {
@Test @Test
void shouldSupportCorsForDifferentMethods() { void shouldSupportCorsForDifferentMethods() {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/cars", (route, request) -> { page.route("**/cars", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withStatus(200) .withStatus(200)
.withContentType("application/json") .withContentType("application/json")
.withHeaders(mapOf("Access-Control-Allow-Origin", "*")) .withHeaders(mapOf("Access-Control-Allow-Origin", "*"))
.withBody("[\"" + request.method() + "\",\"electric\",\"gas\"]")); .withBody("[\"" + route.request().method() + "\",\"electric\",\"gas\"]"));
}); });
// First POST // First POST
{ {

View File

@ -56,7 +56,7 @@ public class TestPopup extends TestBase {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.setContent("<a target=_blank rel=noopener href='empty.html'>link</a>"); page.setContent("<a target=_blank rel=noopener href='empty.html'>link</a>");
boolean[] intercepted = {false}; boolean[] intercepted = {false};
context.route("**/empty.html", (route, request) -> { context.route("**/empty.html", route -> {
route.continue_(); route.continue_();
intercepted[0] = true; intercepted[0] = true;
}); });
@ -166,7 +166,7 @@ public class TestPopup extends TestBase {
Page page = context.newPage(); Page page = context.newPage();
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
boolean[] intercepted = {false}; boolean[] intercepted = {false};
context.route("**/empty.html", (route, request) -> { context.route("**/empty.html", route -> {
route.continue_(); route.continue_();
intercepted[0] = true; intercepted[0] = true;
}); });

View File

@ -32,13 +32,13 @@ public class TestRequestContinue extends TestBase {
@Test @Test
void shouldWork() { void shouldWork() {
page.route("**/*", (route, request) -> route.continue_()); page.route("**/*", route -> route.continue_());
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
} }
@Test @Test
void shouldAmendHTTPHeaders() throws ExecutionException, InterruptedException { void shouldAmendHTTPHeaders() throws ExecutionException, InterruptedException {
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
Map<String, String> headers = new HashMap<>(route.request().headers()); Map<String, String> headers = new HashMap<>(route.request().headers());
headers.put("FOO", "bar"); headers.put("FOO", "bar");
route.continue_(new Route.ContinueOverrides().withHeaders(headers)); route.continue_(new Route.ContinueOverrides().withHeaders(headers));
@ -53,7 +53,7 @@ public class TestRequestContinue extends TestBase {
void shouldAmendMethod() throws ExecutionException, InterruptedException { void shouldAmendMethod() throws ExecutionException, InterruptedException {
Future<Server.Request> sRequest = server.waitForRequest("/sleep.zzz"); Future<Server.Request> sRequest = server.waitForRequest("/sleep.zzz");
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/*", (route, request) -> route.continue_(new Route.ContinueOverrides().withMethod("POST"))); page.route("**/*", route -> route.continue_(new Route.ContinueOverrides().withMethod("POST")));
Future<Server.Request> request = server.waitForRequest("/sleep.zzz"); Future<Server.Request> request = server.waitForRequest("/sleep.zzz");
page.evaluate("() => fetch('/sleep.zzz')"); page.evaluate("() => fetch('/sleep.zzz')");
assertEquals("POST", request.get().method); assertEquals("POST", request.get().method);
@ -63,7 +63,7 @@ public class TestRequestContinue extends TestBase {
@Test @Test
void shouldAmendMethodOnMainRequest() throws ExecutionException, InterruptedException { void shouldAmendMethodOnMainRequest() throws ExecutionException, InterruptedException {
Future<Server.Request> request = server.waitForRequest("/empty.html"); Future<Server.Request> request = server.waitForRequest("/empty.html");
page.route("**/*", (route, req) -> route.continue_(new Route.ContinueOverrides().withMethod("POST"))); page.route("**/*", route -> route.continue_(new Route.ContinueOverrides().withMethod("POST")));
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
assertEquals("POST", request.get().method); assertEquals("POST", request.get().method);
} }
@ -71,7 +71,7 @@ public class TestRequestContinue extends TestBase {
@Test @Test
void shouldAmendPostData() throws ExecutionException, InterruptedException { void shouldAmendPostData() throws ExecutionException, InterruptedException {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(new Route.ContinueOverrides().withPostData("doggo")); route.continue_(new Route.ContinueOverrides().withPostData("doggo"));
}); });
Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz"); Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz");
@ -82,7 +82,7 @@ public class TestRequestContinue extends TestBase {
@Test @Test
void shouldAmendUtf8PostData() throws ExecutionException, InterruptedException { void shouldAmendUtf8PostData() throws ExecutionException, InterruptedException {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(new Route.ContinueOverrides().withPostData("пушкин")); route.continue_(new Route.ContinueOverrides().withPostData("пушкин"));
}); });
Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz"); Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz");
@ -94,7 +94,7 @@ public class TestRequestContinue extends TestBase {
@Test @Test
void shouldAmendLongerPostData() throws ExecutionException, InterruptedException { void shouldAmendLongerPostData() throws ExecutionException, InterruptedException {
page.navigate(server.EMPTY_PAGE); page.navigate(server.EMPTY_PAGE);
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(new Route.ContinueOverrides().withPostData("doggo-is-longer-than-birdy")); route.continue_(new Route.ContinueOverrides().withPostData("doggo-is-longer-than-birdy"));
}); });
Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz"); Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz");
@ -110,7 +110,7 @@ public class TestRequestContinue extends TestBase {
for (int i = 0; i < arr.length; i++) { for (int i = 0; i < arr.length; i++) {
arr[i] = (byte) i; arr[i] = (byte) i;
} }
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.continue_(new Route.ContinueOverrides().withPostData(arr)); route.continue_(new Route.ContinueOverrides().withPostData(arr));
}); });
Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz"); Future<Server.Request> serverRequest = server.waitForRequest("/sleep.zzz");

View File

@ -29,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestRequestFulfill extends TestBase { public class TestRequestFulfill extends TestBase {
@Test @Test
void shouldWork() { void shouldWork() {
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withStatus(201) .withStatus(201)
.withContentType("text/html") .withContentType("text/html")
@ -44,7 +44,7 @@ public class TestRequestFulfill extends TestBase {
@Test @Test
void shouldWorkWithStatusCode422() { void shouldWorkWithStatusCode422() {
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withStatus(422) .withStatus(422)
.withBody("Yo, page!")); .withBody("Yo, page!"));
@ -58,7 +58,7 @@ public class TestRequestFulfill extends TestBase {
@Test @Test
void shouldAllowMockingBinaryResponses() { void shouldAllowMockingBinaryResponses() {
// TODO: test.skip(browserName === "firefox" && headful, "// Firefox headful produces a different image."); // TODO: test.skip(browserName === "firefox" && headful, "// Firefox headful produces a different image.");
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
byte[] imageBuffer; byte[] imageBuffer;
try { try {
imageBuffer = Files.readAllBytes(new File("src/test/resources/pptr.png").toPath()); imageBuffer = Files.readAllBytes(new File("src/test/resources/pptr.png").toPath());
@ -84,7 +84,7 @@ public class TestRequestFulfill extends TestBase {
void shouldAllowMockingSvgWithCharset() { void shouldAllowMockingSvgWithCharset() {
// TODO: test.skip(browserName === "firefox" && headful, "// Firefox headful produces a different image."); // TODO: test.skip(browserName === "firefox" && headful, "// Firefox headful produces a different image.");
// Firefox headful produces a different image. // Firefox headful produces a different image.
page.route("**/*", (route, request) -> { page.route("**/*", route -> {
route.fulfill(new Route.FulfillResponse() route.fulfill(new Route.FulfillResponse()
.withContentType("image/svg+xml ; charset=utf-8") .withContentType("image/svg+xml ; charset=utf-8")
.withBody("<svg width=\"50\" height=\"50\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"10\" y=\"10\" width=\"30\" height=\"30\" stroke=\"black\" fill=\"transparent\" stroke-width=\"5\"/></svg>")); .withBody("<svg width=\"50\" height=\"50\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"10\" y=\"10\" width=\"30\" height=\"30\" stroke=\"black\" fill=\"transparent\" stroke-width=\"5\"/></svg>"));