3 if (self
.importScripts
) {
6 document
.getElementById('console').appendChild(document
.createTextNode(message
+ "\n"));
10 var uuidRegex
= new RegExp('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}');
12 function replaceUUID(s
)
14 return s
.replace(uuidRegex
, 'UUID');
17 function sendXMLHttpRequestSync(method
, url
)
19 var xhr
= new XMLHttpRequest();
20 xhr
.open(method
, url
, false);
23 log("Status: " + xhr
.status
);
24 log("Response: " + xhr
.responseText
);
26 log("Received exception, code: " + error
.code
+ ", name: " + error
.name
+ ", message: " + replaceUUID(error
.message
));
30 function sendXMLHttpRequestAsync(method
, url
)
32 return new Promise(function (resolve
) {
33 var xhr
= new XMLHttpRequest();
35 xhr
.onload = function()
37 log("Status: " + xhr
.status
);
38 log("Response: " + xhr
.responseText
);
40 xhr
.onerror = function()
42 log("Error event is dispatched");
44 xhr
.onloadend = function()
49 xhr
.open(method
, url
, true);
53 log("Received exception, code: " + error
.code
+ ", name: " + error
.name
+ ", message: " + replaceUUID(error
.message
));
58 function runXHRs(file
)
60 var fileURL
= URL
.createObjectURL(file
);
62 log("Test that sync XMLHttpRequest GET succeeds.");
63 sendXMLHttpRequestSync("GET", fileURL
);
65 log("Test that sync XMLHttpRequest POST fails.");
66 sendXMLHttpRequestSync("POST", fileURL
);
68 log("Test that sync XMLHttpRequest GET fails after the blob URL is revoked.");
69 URL
.revokeObjectURL(fileURL
);
70 sendXMLHttpRequestSync("GET", fileURL
);
72 fileURL
= URL
.createObjectURL(file
);
74 log("Test that async XMLHttpRequest GET succeeds.");
75 sendXMLHttpRequestAsync("GET", fileURL
).then(function()
77 log("Test that async XMLHttpRequest POST fails.");
78 return sendXMLHttpRequestAsync("POST", fileURL
);
81 log("Test that async XMLHttpRequest GET fails after the blob URL is revoked.");
82 URL
.revokeObjectURL(fileURL
);
83 return sendXMLHttpRequestAsync("GET", fileURL
);
87 if (!self
.importScripts
&& testRunner
.notifyDone
)
88 testRunner
.notifyDone();
92 if (self
.importScripts
) {
93 onmessage = function(event
)