summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/beacon/beacon-navigate.https.window.js
blob: 8b42a47cd9886af4e6b2a074ee8578295f4a3289 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// META: timeout=long
// META: script=/common/utils.js
// META: script=/common/get-host-info.sub.js
// META: script=beacon-common.sub.js

'use strict';

const {HTTP_REMOTE_ORIGIN} = get_host_info();

for (const type of [STRING, ARRAYBUFFER, FORM, BLOB]) {
  parallelPromiseTest(async (t) => {
    const iframe = document.createElement('iframe');
    document.body.appendChild(iframe);
    t.add_cleanup(() => iframe.remove());

    const payload = makePayload(SMALL, type);
    const id = token();
    const url = `/beacon/resources/beacon.py?cmd=store&id=${id}`;
    assert_true(iframe.contentWindow.navigator.sendBeacon(url, payload));

    iframe.src = `${HTTP_REMOTE_ORIGIN}/common/blank.html`;
  }, `The frame navigates away after calling sendBeacon[type = ${type}].`);
}