fix: reverse route handlers order (#517)
This PR mirrors https://github.com/microsoft/playwright/pull/7585 https://github.com/microsoft/playwright/issues/7394
This commit is contained in:
@@ -37,7 +37,7 @@ class Router {
|
||||
}
|
||||
|
||||
void add(UrlMatcher matcher, Consumer<Route> handler) {
|
||||
routes.add(new RouteInfo(matcher, handler));
|
||||
routes.add(0, new RouteInfo(matcher, handler));
|
||||
}
|
||||
|
||||
void remove(UrlMatcher matcher, Consumer<Route> handler) {
|
||||
|
||||
@@ -57,11 +57,10 @@ public class TestBrowserContextRoute extends TestBase {
|
||||
Page page = context.newPage();
|
||||
|
||||
List<Integer> intercepted = new ArrayList<>();
|
||||
Consumer<Route> 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 @@ public class TestBrowserContextRoute extends TestBase {
|
||||
intercepted.add(3);
|
||||
route.resume();
|
||||
});
|
||||
context.route("**/*", route -> {
|
||||
Consumer<Route> 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();
|
||||
}
|
||||
|
||||
@@ -63,11 +63,11 @@ public class TestPageRoute extends TestBase {
|
||||
@Test
|
||||
void shouldUnroute() {
|
||||
List<Integer> intercepted = new ArrayList<>();
|
||||
Consumer<Route> 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 @@ public class TestPageRoute extends TestBase {
|
||||
intercepted.add(3);
|
||||
route.resume();
|
||||
});
|
||||
page.route("**/*", route -> {
|
||||
Consumer<Route> 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
|
||||
|
||||
Reference in New Issue
Block a user