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 b711cd3d1..0c096ec6e 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/Router.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/Router.java @@ -37,7 +37,7 @@ private static class RouteInfo { } void add(UrlMatcher matcher, Consumer handler) { - routes.add(new RouteInfo(matcher, handler)); + routes.add(0, new RouteInfo(matcher, handler)); } void remove(UrlMatcher matcher, Consumer handler) { diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java index 7d87153d5..7fc84eb37 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextRoute.java @@ -57,11 +57,10 @@ void shouldUnroute() { Page page = context.newPage(); List intercepted = new ArrayList<>(); - Consumer handler1 = route -> { + context.route("**/*", route -> { intercepted.add(1); route.resume(); - }; - context.route("**/empty.html", handler1); + }); context.route("**/empty.html", route -> { intercepted.add(2); route.resume(); @@ -70,22 +69,23 @@ void shouldUnroute() { intercepted.add(3); route.resume(); }); - context.route("**/*", route -> { + Consumer handler4 = route -> { intercepted.add(4); route.resume(); - }); + }; + context.route("**/empty.html", handler4); page.navigate(server.EMPTY_PAGE); - assertEquals(asList(1), intercepted); + assertEquals(asList(4), intercepted); intercepted.clear(); - context.unroute("**/empty.html", handler1); + context.unroute("**/empty.html", handler4); page.navigate(server.EMPTY_PAGE); - assertEquals(asList(2), intercepted); + assertEquals(asList(3), intercepted); intercepted.clear(); context.unroute("**/empty.html"); page.navigate(server.EMPTY_PAGE); - assertEquals(asList(4), intercepted); + assertEquals(asList(1), intercepted); context.close(); } diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java index fd042a114..c9814fd7d 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java @@ -63,11 +63,11 @@ void shouldIntercept() { @Test void shouldUnroute() { List intercepted = new ArrayList<>(); - Consumer handler1 = route -> { + page.route("**/*", route -> { intercepted.add(1); route.resume(); - }; - page.route("**/empty.html", handler1); + }); + page.route("**/empty.html", route -> { intercepted.add(2); route.resume(); @@ -76,22 +76,23 @@ void shouldUnroute() { intercepted.add(3); route.resume(); }); - page.route("**/*", route -> { + Consumer handler4 = route -> { intercepted.add(4); route.resume(); - }); + }; + page.route("**/empty.html", handler4); page.navigate(server.EMPTY_PAGE); - assertEquals(asList(1), intercepted); + assertEquals(asList(4), intercepted); intercepted.clear(); - page.unroute("**/empty.html", handler1); + page.unroute("**/empty.html", handler4); page.navigate(server.EMPTY_PAGE); - assertEquals(asList(2), intercepted); + assertEquals(asList(3), intercepted); intercepted.clear(); page.unroute("**/empty.html"); page.navigate(server.EMPTY_PAGE); - assertEquals(asList(4), intercepted); + assertEquals(asList(1), intercepted); } @Test