OLD | NEW |
| (Empty) |
1 function log(message) | |
2 { | |
3 if (self.importScripts) { | |
4 postMessage(message); | |
5 } else { | |
6 document.getElementById('console').appendChild(document.createTextNode(m
essage + "\n")); | |
7 } | |
8 } | |
9 | |
10 var uuidRegex = new RegExp('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9
a-f]{12}'); | |
11 | |
12 function replaceUUID(s) | |
13 { | |
14 return s.replace(uuidRegex, 'UUID'); | |
15 } | |
16 | |
17 function sendXMLHttpRequestSync(method, url) | |
18 { | |
19 var xhr = new XMLHttpRequest(); | |
20 xhr.open(method, url, false); | |
21 try { | |
22 xhr.send(); | |
23 log("Status: " + xhr.status); | |
24 log("Response: " + xhr.responseText); | |
25 } catch (error) { | |
26 log("Received exception, code: " + error.code + ", name: " + error.name
+ ", message: " + replaceUUID(error.message)); | |
27 } | |
28 } | |
29 | |
30 function sendXMLHttpRequestAsync(method, url) | |
31 { | |
32 return new Promise(function (resolve) { | |
33 var xhr = new XMLHttpRequest(); | |
34 | |
35 xhr.onload = function() | |
36 { | |
37 log("Status: " + xhr.status); | |
38 log("Response: " + xhr.responseText); | |
39 }; | |
40 xhr.onerror = function() | |
41 { | |
42 log("Error event is dispatched"); | |
43 }; | |
44 xhr.onloadend = function() | |
45 { | |
46 resolve(); | |
47 }; | |
48 | |
49 xhr.open(method, url, true); | |
50 try { | |
51 xhr.send(); | |
52 } catch (error) { | |
53 log("Received exception, code: " + error.code + ", name: " + error.n
ame + ", message: " + replaceUUID(error.message)); | |
54 } | |
55 }); | |
56 } | |
57 | |
58 function runXHRs(file) | |
59 { | |
60 var fileURL = URL.createObjectURL(file); | |
61 | |
62 log("Test that sync XMLHttpRequest GET succeeds."); | |
63 sendXMLHttpRequestSync("GET", fileURL); | |
64 | |
65 log("Test that sync XMLHttpRequest POST fails."); | |
66 sendXMLHttpRequestSync("POST", fileURL); | |
67 | |
68 log("Test that sync XMLHttpRequest GET fails after the blob URL is revoked."
); | |
69 URL.revokeObjectURL(fileURL); | |
70 sendXMLHttpRequestSync("GET", fileURL); | |
71 | |
72 fileURL = URL.createObjectURL(file); | |
73 | |
74 log("Test that async XMLHttpRequest GET succeeds."); | |
75 sendXMLHttpRequestAsync("GET", fileURL).then(function() | |
76 { | |
77 log("Test that async XMLHttpRequest POST fails."); | |
78 return sendXMLHttpRequestAsync("POST", fileURL); | |
79 }).then(function() | |
80 { | |
81 log("Test that async XMLHttpRequest GET fails after the blob URL is revo
ked."); | |
82 URL.revokeObjectURL(fileURL); | |
83 return sendXMLHttpRequestAsync("GET", fileURL); | |
84 }).then(function() | |
85 { | |
86 log("DONE"); | |
87 if (!self.importScripts && testRunner.notifyDone) | |
88 testRunner.notifyDone(); | |
89 }); | |
90 } | |
91 | |
92 if (self.importScripts) { | |
93 onmessage = function(event) | |
94 { | |
95 runXHRs(event.data); | |
96 }; | |
97 } | |
OLD | NEW |