summaryrefslogtreecommitdiffstats
path: root/dom/xhr/tests/test_worker_xhr_headers.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/xhr/tests/test_worker_xhr_headers.html')
-rw-r--r--dom/xhr/tests/test_worker_xhr_headers.html86
1 files changed, 86 insertions, 0 deletions
diff --git a/dom/xhr/tests/test_worker_xhr_headers.html b/dom/xhr/tests/test_worker_xhr_headers.html
new file mode 100644
index 0000000000..1416ababd7
--- /dev/null
+++ b/dom/xhr/tests/test_worker_xhr_headers.html
@@ -0,0 +1,86 @@
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Test for XHR Headers</title>
+ <script src="/tests/SimpleTest/SimpleTest.js">
+ </script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
+ </head>
+ <body>
+ <p id="display"></p>
+ <div id="content" style="display: none"></div>
+ <pre id="test">
+ <script class="testbody">
+"use strict";
+
+SimpleTest.waitForExplicitFinish();
+
+var path =
+ location.pathname.substring(0, location.pathname.lastIndexOf("/") + 1);
+var filenamePrefix = "worker_xhr_headers_";
+var serverFilename = filenamePrefix + "server.sjs";
+var workerFilename = filenamePrefix + "worker.js";
+var otherHost = "example.com";
+
+info("Informing server about the current host");
+
+var xhr = new XMLHttpRequest();
+xhr.open("POST", path + serverFilename);
+xhr.setRequestHeader("options-host", otherHost);
+xhr.setRequestHeader("empty", "");
+xhr.onreadystatechange = function() {
+ if (xhr.readyState == 4) {
+ info("Launching worker");
+
+ var worker = new Worker(path + workerFilename);
+ worker.postMessage("http://" + otherHost + path + serverFilename);
+
+ worker.onmessage = function(event) {
+ ok(event.data.response === "", "Worker responded, saw no response");
+
+ var loopCount = 0;
+
+ function checkServer() {
+ var xhr2 = new XMLHttpRequest();
+ xhr2.open("GET", path + serverFilename);
+ xhr2.onreadystatechange = function() {
+ if (xhr2.readyState == 4) {
+ if (xhr2.responseText) {
+ is(xhr2.responseText,
+ "Success: expected OPTIONS request with '" +
+ event.data.header + "' header",
+ "Server saw expected requests");
+ SimpleTest.finish();
+ } else if (++loopCount < 30) {
+ setTimeout(checkServer, 1000);
+ } else {
+ ok(false, "Server never saw any requests");
+ SimpleTest.finish();
+ }
+ }
+ };
+
+ info("Checking server status (" + loopCount + ")");
+ xhr2.send();
+ }
+
+ checkServer();
+ };
+
+ worker.onerror = function(event) {
+ ok(false, "Worker had an error: '" + event.message + "'");
+ event.preventDefault();
+ SimpleTest.finish();
+ };
+ }
+};
+xhr.send();
+
+ </script>
+ </pre>
+ </body>
+</html>