[LayoutTests] Convert http/tests/blink convert PHP to Python
[WebKit-https.git] / LayoutTests / http / tests / blink / sendbeacon / beacon-same-origin.html
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <script src="/js-test-resources/js-test.js"></script>
5 <script>
6 description("Testing navigator.sendBeacon() within same origin.");
7
8 window.jsTestIsAsync = true;
9
10 var binary_array = new Uint32Array(10);
11 for (var i = 0; i < binary_array.length; i++) {
12     binary_array[i] = 64 + i;
13 }
14
15 var blob = new Blob(["hello", " ", "world"], {type: "text/plain;from-beacon=true"});
16 var form = new FormData();
17 form.append("key", "value");
18 var searchParams = new URLSearchParams("a=b&c=d");
19
20 var tests = [
21     "SameOrigin",
22     binary_array,
23     blob,
24     form,
25     searchParams];
26
27 var payload;
28 function testOne() {
29     payload = tests.shift();
30     if (!payload) {
31         finishJSTest();
32         return;
33     }
34     debug("Sending beacon with type: " + Object.prototype.toString.call(payload));
35     shouldBeTrue('navigator.sendBeacon("resources/save-beacon.py?name=same-origin", payload);');
36     var xhr = new XMLHttpRequest();
37     xhr.open("GET", "resources/check-beacon.py?name=same-origin");
38     xhr.onload = function () {
39         var lines = xhr.responseText.split("\n");
40         for (var i in lines)
41             testPassed(lines[i]);
42         testOne();
43     };
44     xhr.onerror = function () {
45         testFailed("Unable to fetch beacon status");
46         testOne();
47     };
48     xhr.send();
49 }
50
51 function test() {
52     if (window.testRunner) {
53         testRunner.dumpAsText();
54         testRunner.waitUntilDone();
55         //testRunner.dumpPingLoaderCallbacks();
56     }
57     testOne();
58 }
59 </script>
60 </head>
61 <body onload="test();">
62 </body>
63 </html>