diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java index d39a0b76..efbf1016 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageRoute.java @@ -29,6 +29,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; +import java.util.function.Predicate; import java.util.regex.Pattern; import static com.microsoft.playwright.Utils.mapOf; @@ -95,6 +96,38 @@ public class TestPageRoute extends TestBase { assertEquals(asList(1), intercepted); } + @Test + void shouldUnroutePredicate() { + List intercepted = new ArrayList<>(); + Predicate predicate = r -> true; + page.route(predicate, route -> { + intercepted.add(1); + route.resume(); + }); + page.route(predicate, route -> { + intercepted.add(2); + route.resume(); + }); + Consumer handler3 = route -> { + intercepted.add(3); + route.resume(); + }; + page.route(predicate, handler3); + + page.navigate(server.EMPTY_PAGE); + assertEquals(asList(3), intercepted); + + intercepted.clear(); + page.unroute(predicate, handler3); + page.navigate(server.EMPTY_PAGE); + assertEquals(asList(2), intercepted); + + intercepted.clear(); + page.unroute(predicate); + page.navigate(server.EMPTY_PAGE); + assertEquals(asList(), intercepted); + } + @Test void shouldWorkWhenPOSTIsRedirectedWith302() { server.setRedirect("/rredirect", "/empty.html");