Bug 1892041 - Part 1: Update test262 features. r=spidermonkey-reviewers,dminor
[gecko.git] / dom / base / test / test_bug1238440.html
blob528b337c00373957b8c7a328ae9642d960d82bd7
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>Test - bug 1238440</title>
6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
8 </head>
9 <body>
10 <input type="file" id="file" />
11 <script type="application/javascript">
13 var script;
15 function step_createScript() {
16 info("Creating script...");
17 var url = SimpleTest.getTestFileURL("script_bug1238440.js");
18 script = SpecialPowers.loadChromeScript(url);
19 next();
22 function step_destroyScript() {
23 info("Destroying script...");
24 script.destroy();
25 next();
29 function step_createFile() {
30 info("Creating file...");
32 function onOpened(message) {
33 var fileList = document.getElementById('file');
34 SpecialPowers.wrap(fileList).mozSetFileArray([message.file]);
35 ok(!!message.file, "File created and set");
36 next();
39 script.addMessageListener("file.opened", onOpened);
40 script.sendAsyncMessage("file.open");
43 function step_changeFile() {
44 info("Changing file...");
45 script.addMessageListener("file.changed", next);
46 script.sendAsyncMessage("file.change");
49 function step_fileReader(status) {
50 var fr = new FileReader();
51 fr.onload = function() {
52 is(status, true, "onload called!");
53 next();
56 fr.onerror = function(e) {
57 e.preventDefault();
58 is(status, false, "onerror called!");
59 next();
62 fr.readAsArrayBuffer(document.getElementById("file").files[0]);
65 var steps = [
66 step_createScript,
67 step_createFile,
68 function() { step_fileReader(true); },
69 step_changeFile,
70 function() { step_fileReader(false); },
71 step_destroyScript,
74 function next() {
75 if (!steps.length) {
76 SimpleTest.finish();
77 return;
80 var step = steps.shift();
81 step();
84 SimpleTest.waitForExplicitFinish();
85 next();
86 </script>
87 </body>
88 </html>