コード例 #1
0
def test_should_work_for_redirect(page: Page, server: Server) -> None:
    server.set_redirect("/foo.html", "/empty.html")
    responses = []
    page.on("response", lambda response: responses.append(response))
    page.goto(server.PREFIX + "/foo.html")
    for r in responses:
        r.finished()

    assert len(responses) == 2
    assert responses[0].url == server.PREFIX + "/foo.html"
    assert responses[1].url == server.PREFIX + "/empty.html"

    timing1 = responses[0].request.timing
    verify_connections_timing_consistency(timing1)
    assert timing1["requestStart"] >= timing1["connectEnd"]
    assert timing1["responseStart"] > timing1["requestStart"]
    assert timing1["responseEnd"] >= timing1["responseStart"]
    assert timing1["responseEnd"] < 10000

    timing2 = responses[1].request.timing
    verify_connections_timing_consistency(timing2)
    assert timing2["requestStart"] >= 0
    assert timing2["responseStart"] > timing2["requestStart"]
    assert timing2["responseEnd"] >= timing2["responseStart"]
    assert timing2["responseEnd"] < 10000
コード例 #2
0
def test_should_propagate_extra_http_headers_with_redirects(
        playwright: Playwright, server: Server) -> None:
    server.set_redirect("/a/redirect1", "/b/c/redirect2")
    server.set_redirect("/b/c/redirect2", "/simple.json")
    request = playwright.request.new_context(
        extra_http_headers={"My-Secret": "Value"})
    with server.expect_request("/a/redirect1") as server_req1:
        with server.expect_request("/b/c/redirect2") as server_req2:
            with server.expect_request("/simple.json") as server_req3:
                request.get(f"{server.PREFIX}/a/redirect1"),
    assert server_req1.value.getHeader("my-secret") == "Value"
    assert server_req2.value.getHeader("my-secret") == "Value"
    assert server_req3.value.getHeader("my-secret") == "Value"
コード例 #3
0
async def test_should_propagate_extra_http_headers_with_redirects(
        playwright: Playwright, server: Server):
    server.set_redirect("/a/redirect1", "/b/c/redirect2")
    server.set_redirect("/b/c/redirect2", "/simple.json")
    request = await playwright.request.new_context(
        extra_http_headers={"My-Secret": "Value"})
    [req1, req2, req3, _] = await asyncio.gather(
        server.wait_for_request("/a/redirect1"),
        server.wait_for_request("/b/c/redirect2"),
        server.wait_for_request("/simple.json"),
        request.get(f"{server.PREFIX}/a/redirect1"),
    )
    assert req1.getHeader("my-secret") == "Value"
    assert req2.getHeader("my-secret") == "Value"
    assert req3.getHeader("my-secret") == "Value"