|
29 | 29 | import java.util.concurrent.Future; |
30 | 30 | import java.util.concurrent.atomic.AtomicInteger; |
31 | 31 | import java.util.function.Consumer; |
| 32 | +import java.util.function.Predicate; |
32 | 33 | import java.util.regex.Pattern; |
33 | 34 |
|
34 | 35 | import static com.microsoft.playwright.Utils.mapOf; |
@@ -95,6 +96,38 @@ void shouldUnroute() { |
95 | 96 | assertEquals(asList(1), intercepted); |
96 | 97 | } |
97 | 98 |
|
| 99 | + @Test |
| 100 | + void shouldUnroutePredicate() { |
| 101 | + List<Integer> intercepted = new ArrayList<>(); |
| 102 | + Predicate<String> predicate = r -> true; |
| 103 | + page.route(predicate, route -> { |
| 104 | + intercepted.add(1); |
| 105 | + route.resume(); |
| 106 | + }); |
| 107 | + page.route(predicate, route -> { |
| 108 | + intercepted.add(2); |
| 109 | + route.resume(); |
| 110 | + }); |
| 111 | + Consumer<Route> handler3 = route -> { |
| 112 | + intercepted.add(3); |
| 113 | + route.resume(); |
| 114 | + }; |
| 115 | + page.route(predicate, handler3); |
| 116 | + |
| 117 | + page.navigate(server.EMPTY_PAGE); |
| 118 | + assertEquals(asList(3), intercepted); |
| 119 | + |
| 120 | + intercepted.clear(); |
| 121 | + page.unroute(predicate, handler3); |
| 122 | + page.navigate(server.EMPTY_PAGE); |
| 123 | + assertEquals(asList(2), intercepted); |
| 124 | + |
| 125 | + intercepted.clear(); |
| 126 | + page.unroute(predicate); |
| 127 | + page.navigate(server.EMPTY_PAGE); |
| 128 | + assertEquals(asList(), intercepted); |
| 129 | + } |
| 130 | + |
98 | 131 | @Test |
99 | 132 | void shouldWorkWhenPOSTIsRedirectedWith302() { |
100 | 133 | server.setRedirect("/rredirect", "/empty.html"); |
|
0 commit comments