|
20 | 20 | import com.microsoft.playwright.options.HttpHeader; |
21 | 21 | import org.junit.jupiter.api.Test; |
22 | 22 |
|
| 23 | +import java.nio.charset.StandardCharsets; |
23 | 24 | import java.util.*; |
| 25 | +import java.util.concurrent.ExecutionException; |
| 26 | +import java.util.concurrent.Future; |
24 | 27 | import java.util.concurrent.Semaphore; |
25 | 28 | import java.util.stream.Collectors; |
26 | 29 |
|
@@ -93,4 +96,21 @@ void shouldReportAllCookiesInOneHeader() { |
93 | 96 | String cookie = response.request().allHeaders().get("cookie"); |
94 | 97 | assertEquals("myCookie=myValue; myOtherCookie=myOtherValue", cookie); |
95 | 98 | } |
| 99 | + |
| 100 | + @Test |
| 101 | + void shouldReportPostDataFor403Request() throws InterruptedException, ExecutionException { |
| 102 | + server.setRoute("/upload", exchange -> { |
| 103 | + exchange.sendResponseHeaders(403, 0); |
| 104 | + exchange.getResponseBody().close(); |
| 105 | + }); |
| 106 | + Future<Server.Request> serverRequest = server.futureRequest("/upload"); |
| 107 | + page.navigate(server.EMPTY_PAGE); |
| 108 | + Request request = page.waitForRequest("**/*", () -> { |
| 109 | + page.evaluate("() => fetch('/upload', { method: 'POST', body: 'test'})"); |
| 110 | + }); |
| 111 | + assertEquals("test", new String(serverRequest.get().postBody, StandardCharsets.UTF_8)); |
| 112 | + assertEquals("test", request.postData()); |
| 113 | + assertEquals("POST", request.method()); |
| 114 | + assertEquals(403, request.response().status()); |
| 115 | + } |
96 | 116 | } |
0 commit comments