Skip to content

Commit 1475889

Browse files
committed
port more tests
1 parent 9d46675 commit 1475889

File tree

1 file changed

+73
-5
lines changed

1 file changed

+73
-5
lines changed

playwright/src/test/java/com/microsoft/playwright/TestPageRequestContinue.java

Lines changed: 73 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@
1616

1717
package com.microsoft.playwright;
1818

19+
import com.microsoft.playwright.options.HttpHeader;
1920
import org.junit.jupiter.api.Test;
21+
import org.junit.jupiter.api.condition.DisabledIf;
2022

2123
import java.io.OutputStreamWriter;
24+
import java.util.HashMap;
2225
import java.util.Map;
2326
import java.util.concurrent.ExecutionException;
2427
import java.util.concurrent.Future;
@@ -79,16 +82,81 @@ void shouldNotThrowWhenContinuingAfterPageIsClosed() {
7982
}
8083

8184
@Test
82-
void shouldNotOverrideCookieHeader() throws ExecutionException, InterruptedException {
85+
@DisabledIf(value = "com.microsoft.playwright.TestBase#isFirefox", disabledReason = "We currently clear all headers during interception in firefox")
86+
void continueShouldNotPropagateCookieOverrideToRedirects() throws ExecutionException, InterruptedException {
8387
// https://github.com/microsoft/playwright/issues/35168
88+
server.setRoute("/set-cookie", exchange -> {
89+
exchange.getResponseHeaders().add("Set-Cookie", "foo=bar;");
90+
exchange.sendResponseHeaders(200, 0);
91+
exchange.getResponseBody().close();
92+
});
93+
page.navigate(server.PREFIX + "/set-cookie");
94+
assertEquals("foo=bar", page.evaluate("() => document.cookie"));
95+
96+
server.setRedirect("/redirect", server.PREFIX + "/empty.html");
97+
page.route("**/redirect", route -> {
98+
Map<String, String> headers = new HashMap<>(route.request().allHeaders());
99+
headers.put("cookie", "override");
100+
route.resume(new Route.ResumeOptions().setHeaders(headers));
101+
});
102+
84103
Future<Server.Request> serverRequest = server.futureRequest("/empty.html");
85-
page.route(server.EMPTY_PAGE, route -> {
86-
Map<String, String> headers = route.request().allHeaders();
87-
headers.put("Cookie", "foo=bar");
104+
page.navigate(server.PREFIX + "/redirect");
105+
assertEquals(asList("foo=bar"), serverRequest.get().headers.get("cookie"));
106+
}
107+
108+
@Test
109+
@DisabledIf(value = "com.microsoft.playwright.TestBase#isFirefox", disabledReason = "We currently clear all headers during interception in firefox")
110+
void continueShouldNotOverrideCookie() throws ExecutionException, InterruptedException {
111+
// https://github.com/microsoft/playwright/issues/35168
112+
server.setRoute("/set-cookie", exchange -> {
113+
exchange.getResponseHeaders().add("Set-Cookie", "foo=bar;");
114+
exchange.sendResponseHeaders(200, 0);
115+
exchange.getResponseBody().close();
116+
});
117+
page.navigate(server.PREFIX + "/set-cookie");
118+
assertEquals("foo=bar", page.evaluate("() => document.cookie"));
119+
120+
page.route("**", route -> {
121+
Map<String, String> headers = new HashMap<>(route.request().allHeaders());
122+
headers.put("cookie", "override");
123+
headers.put("custom", "value");
88124
route.resume(new Route.ResumeOptions().setHeaders(headers));
89125
});
90126

127+
Future<Server.Request> serverRequest = server.futureRequest("/empty.html");
128+
page.navigate(server.EMPTY_PAGE);
129+
130+
// Original cookie from the browser's cookie jar should be sent.
131+
assertEquals(asList("foo=bar"), serverRequest.get().headers.get("cookie"));
132+
assertEquals(asList("value"), serverRequest.get().headers.get("custom"));
133+
}
134+
135+
@Test
136+
void redirectAfterContinueShouldBeAbleToDeleteCookie() throws ExecutionException, InterruptedException {
137+
// https://github.com/microsoft/playwright/issues/35168
138+
server.setRoute("/set-cookie", exchange -> {
139+
exchange.getResponseHeaders().add("Set-Cookie", "foo=bar;");
140+
exchange.sendResponseHeaders(200, 0);
141+
exchange.getResponseBody().close();
142+
});
143+
page.navigate(server.PREFIX + "/set-cookie");
144+
assertEquals("foo=bar", page.evaluate("() => document.cookie"));
145+
146+
server.setRoute("/delete-cookie", exchange -> {
147+
exchange.getResponseHeaders().add("Set-Cookie", "foo=bar; expires=Thu, 01 Jan 1970 00:00:00 GMT");
148+
exchange.sendResponseHeaders(200, 0);
149+
exchange.getResponseBody().close();
150+
});
151+
server.setRedirect("/redirect", "/delete-cookie");
152+
page.route("**/redirect", route -> {
153+
// Pass original headers explicitly when continuing.
154+
route.resume(new Route.ResumeOptions().setHeaders(route.request().allHeaders()));
155+
});
156+
page.navigate(server.PREFIX + "/redirect");
157+
158+
Future<Server.Request> serverRequest = server.futureRequest("/empty.html");
91159
page.navigate(server.EMPTY_PAGE);
92-
assertNull(serverRequest.get().headers.get("Cookie"));
160+
assertNull(serverRequest.get().headers.get("cookie"));
93161
}
94162
}

0 commit comments

Comments
 (0)