diff options
Diffstat (limited to 'dom/xhr/tests/xhr_worker.js')
-rw-r--r-- | dom/xhr/tests/xhr_worker.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/dom/xhr/tests/xhr_worker.js b/dom/xhr/tests/xhr_worker.js new file mode 100644 index 000000000..178c391b6 --- /dev/null +++ b/dom/xhr/tests/xhr_worker.js @@ -0,0 +1,84 @@ +/** + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ +var xhr = new XMLHttpRequest(); + +function onload(event) { + if (event.target != xhr) { + throw "onload event.target != xhr"; + } + + if (event.target.status != 200) { + var message = { type: "error", + error: event.target.status }; + postMessage(message); + } + + var message = { type: "load", + data: xhr.responseText }; + postMessage(message); +} + +xhr.onload = onload; +xhr.addEventListener("load", onload, false); +xhr.removeEventListener("load", onload, false); +if (!xhr.onload) { + var message = { type: "error", + error: "Lost message listener!" }; + postMessage(message); +} + +xhr.onerror = function(event) { + if (event.target != xhr) { + throw "onerror event.target != xhr"; + } + var message = { type: "error", + error: event.target.status }; + postMessage(message); +}; +xhr.onerror = xhr.onerror; +if (!xhr.onerror || xhr.onerror != xhr.onerror) { + throw "onerror wasn't set properly"; +} + +function onprogress(event) { + if (event.target != xhr) { + throw "onprogress event.target != xhr"; + } + var message = { type: "progress", + current: event.loaded, + total: event.total }; + postMessage(message); +} +xhr.addEventListener("progress", onprogress, false); + +xhr.addEventListener("foopety", function(event) {}, false); +xhr.removeEventListener("doopety", function(event) {}, false); + +xhr.onloadend = function(event) { + var message = { type: "loadend" }; + postMessage(message); +} + +var upload = xhr.upload; +upload.onprogress = function(event) { }; +upload.addEventListener("foo", function(event) { }, false); +upload.removeEventListener("foo", function(event) { }, false); +upload.addEventListener("load", function(event) { }, false); +upload.removeEventListener("foo", function(event) { }, false); +upload.onload = function(event) { + var message = { type: "upload.load" }; + postMessage(message); +} + +onmessage = function(event) { + if (xhr.DONE != 4 || XMLHttpRequest.DONE != 4) { + throw "xhr constants not correct!"; + } + if (xhr.readystate > xhr.UNSENT) { + throw "XHR already running!"; + } + xhr.open("POST", event.data); + xhr.send("Data to send"); +} |