blob: 0dcd611a96ab727a085c6a948236d0b7d103110e [file] [log] [blame]
<!doctype html><!-- webkit-test-runner [ dumpJSConsoleLogInStdErr=true ] -->
<html>
<head>
<meta charset="utf-8">
<title>Fetch in pagehide</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
</head>
<body>
<script src="/common/utils.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script>
const RESOURCES_DIR = "/beacon/resources/";
function checkUrl(id)
{
return RESOURCES_DIR + "content-type-and-body.py?cmd=get&id=" + id;
}
promise_test(async (test) => {
const w1 = open("resources/fetch-in-pagehide-window.html#keepalive");
await new Promise(resolve => w1.onload = resolve);
let id = w1.id;
step_timeout(function() {
w1.location = "/";
}, 0);
await new Promise(resolve => step_timeout(resolve, 1000));
const response = await fetch(checkUrl(id));
assert_equals(response.status, 200);
const result = await response.text();
assert_equals(result, "text/plain;charset=UTF-8: test", "Correct content-type header result");
}, "Test that fetch sent from pagehide event handler is properly received with keepalive");
promise_test(async (test) => {
const w2 = open("resources/fetch-in-pagehide-window.html#nokeepalive");
await new Promise(resolve => w2.onload = resolve);
let id = w2.id;
step_timeout(function() {
w2.location = "/";
}, 0);
await new Promise(resolve => test.step_timeout(resolve, 50));
const response = await fetch(checkUrl(id));
assert_equals(response.status, 400);
}, "Test that fetch sent from pagehide event handler is not received with no keepalive");
</script>
</body>
</html>