diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/RequestImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/RequestImpl.java index 902d39e0..f4162e82 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/RequestImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/RequestImpl.java @@ -177,10 +177,6 @@ public class RequestImpl extends ChannelOwner implements Request { if (fallbackOverrides != null && fallbackOverrides.url != null) { return fallbackOverrides.url; } - return originalUrl(); - } - - String originalUrl() { return initializer.get("url").getAsString(); } diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/Router.java b/playwright/src/main/java/com/microsoft/playwright/impl/Router.java index da3b7ab6..5b6b7c09 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/Router.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/Router.java @@ -42,7 +42,7 @@ class Router { if (times != null && times <= 0) { return false; } - if (!matcher.test(route.request().originalUrl())) { + if (!matcher.test(route.request().url())) { return false; } if (times != null) { diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageRequestFallback.java b/playwright/src/test/java/com/microsoft/playwright/TestPageRequestFallback.java index dbe20d2d..da608952 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageRequestFallback.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageRequestFallback.java @@ -222,7 +222,7 @@ public class TestPageRequestFallback extends TestBase { void shouldOverrideRequestUrl() throws ExecutionException, InterruptedException { Future request = server.futureRequest("/global-var.html"); String[] url = {null}; - page.route("**/foo", route -> { + page.route("**/global-var.html", route -> { url[0] = route.request().url(); route.resume(); }); diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java index 583e5548..0be8bf35 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java @@ -725,4 +725,25 @@ public class TestPageRoute extends TestBase { }); assertEquals(server.PREFIX, response.headerValue("Access-Control-Allow-Origin")); } + + @Test + void shouldChainFallbackWDynamicURL() { + List intercepted = new ArrayList<>(); + page.route("**/bar", route -> { + intercepted.add(1); + route.fallback(new Route.FallbackOptions().setUrl(server.EMPTY_PAGE)); + }); + page.route("**/foo", route -> { + intercepted.add(2); + route.fallback(new Route.FallbackOptions().setUrl("http://localhost/bar")); + }); + + page.route("**/empty.html", route -> { + intercepted.add(3); + route.fallback(new Route.FallbackOptions().setUrl("http://localhost/foo")); + }); + + page.navigate(server.EMPTY_PAGE); + assertEquals(asList(3, 2, 1), intercepted); + } }