mirror of
https://github.com/microsoft/playwright-java.git
synced 2025-09-08 21:01:00 +00:00
chore: remore redundant parameter from route handler (#58)
This commit is contained in:
parent
6022d47686
commit
ad51236002
@ -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;");
|
||||||
|
@ -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());
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
@ -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_();
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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" +
|
||||||
"}");
|
"}");
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
});
|
});
|
||||||
|
@ -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");
|
||||||
|
@ -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>"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user