diff options
Diffstat (limited to 'dom/tests/mochitest/beacon/test_beaconPreflightWithCustomContentType.html')
-rw-r--r-- | dom/tests/mochitest/beacon/test_beaconPreflightWithCustomContentType.html | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/dom/tests/mochitest/beacon/test_beaconPreflightWithCustomContentType.html b/dom/tests/mochitest/beacon/test_beaconPreflightWithCustomContentType.html new file mode 100644 index 000000000..e8e2add11 --- /dev/null +++ b/dom/tests/mochitest/beacon/test_beaconPreflightWithCustomContentType.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1210302 +--> +<head> + <title>Test for Bug 1210302</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1210302">Mozilla Bug 936340</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +var beaconUrl = "http://example.com/tests/dom/tests/mochitest/beacon/beacon-preflight-handler.sjs?beacon"; + +var intervalID = null; + +function queryIfBeaconSucceeded() { + clearInterval(intervalID); + var xhr = new XMLHttpRequest(); + xhr.open("GET", "beacon-preflight-handler.sjs?verify", true); + xhr.onload = function() { + is(xhr.responseText, "green", "SendBeacon should have succeeded after preflight!"); + SimpleTest.finish(); + }; + xhr.onerror = function() { + ok(false, "xhr request returned error"); + SimpleTest.finish(); + }; + xhr.send(); +} + +// not enabled by default yet. +SimpleTest.waitForExplicitFinish(); +SpecialPowers.pushPrefEnv({'set': [["beacon.enabled", true]]}, beginTest); + +function beginTest() { + var abv = new Uint8Array([0,1,2,3]); + var blob = new Blob(abv, {type: "application/badness, text/plain"}); + var sent = navigator.sendBeacon(beaconUrl, blob); + ok(sent, "sending the beacon should start successfully"); + + // we have to make sure sending the beacon did not fail, so + // we have to wait for 2 seconds before we can query the result. + intervalID = setInterval(queryIfBeaconSucceeded, 2000); +} + +</script> +</pre> +</body> +</html> |