summaryrefslogtreecommitdiffstats
path: root/dom/url/tests/url_worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/url/tests/url_worker.js')
-rw-r--r--dom/url/tests/url_worker.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/dom/url/tests/url_worker.js b/dom/url/tests/url_worker.js
new file mode 100644
index 0000000000..4611f7ab6b
--- /dev/null
+++ b/dom/url/tests/url_worker.js
@@ -0,0 +1,98 @@
+/* eslint-env worker */
+
+onmessage = function(event) {
+ if (event.data != 0) {
+ var worker = new Worker("url_worker.js");
+ worker.onmessage = function(ev) {
+ postMessage(ev.data);
+ };
+
+ worker.postMessage(event.data - 1);
+ return;
+ }
+
+ let status = false;
+ try {
+ if (URL instanceof Object) {
+ status = true;
+ }
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "URL object:" + URL });
+
+ status = false;
+ var blob = null;
+ try {
+ blob = new Blob([]);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob:" + blob });
+
+ status = false;
+ let url = null;
+ try {
+ url = URL.createObjectURL(blob);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob URL:" + url });
+
+ status = false;
+ try {
+ URL.revokeObjectURL(url);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob Revoke URL" });
+
+ status = false;
+ url = null;
+ try {
+ url = URL.createObjectURL(true);
+ } catch (e) {
+ status = true;
+ }
+
+ postMessage({
+ type: "status",
+ status,
+ msg: "CreateObjectURL should fail if the arg is not a blob",
+ });
+
+ status = false;
+ url = null;
+ try {
+ url = URL.createObjectURL(blob);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob URL2:" + url });
+ postMessage({ type: "url", url });
+
+ status = false;
+ try {
+ URL.createObjectURL({});
+ } catch (e) {
+ status = true;
+ }
+
+ postMessage({ type: "status", status, msg: "Exception wanted" });
+
+ blob = new Blob([123]);
+ var uri = URL.createObjectURL(blob);
+ postMessage({
+ type: "status",
+ status: !!uri,
+ msg: "The URI has been generated from the blob",
+ });
+
+ var u = new URL(uri);
+ postMessage({
+ type: "status",
+ status: u.origin == location.origin,
+ msg: "The URL generated from a blob URI has an origin.",
+ });
+
+ postMessage({ type: "finish" });
+};