tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug1238440.html (1834B)


      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">
     12 
     13 var script;
     14 
     15 function step_createScript() {
     16  info("Creating script...");
     17  var url = SimpleTest.getTestFileURL("script_bug1238440.js");
     18  script = SpecialPowers.loadChromeScript(url);
     19  next();
     20 }
     21 
     22 function step_destroyScript() {
     23  info("Destroying script...");
     24  script.destroy();
     25  next();
     26 }
     27 
     28 
     29 function step_createFile() {
     30  info("Creating file...");
     31 
     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();
     37  }
     38 
     39  script.addMessageListener("file.opened", onOpened);
     40  script.sendAsyncMessage("file.open");
     41 }
     42 
     43 function step_changeFile() {
     44  info("Changing file...");
     45  script.addMessageListener("file.changed", next);
     46  script.sendAsyncMessage("file.change");
     47 }
     48 
     49 function step_fileReader(status) {
     50  var fr = new FileReader();
     51   fr.onload = function() {
     52   is(status, true, "onload called!");
     53   next();
     54 }
     55 
     56 fr.onerror = function(e) {
     57   e.preventDefault();
     58   is(status, false, "onerror called!");
     59   next();
     60 }
     61 
     62 fr.readAsArrayBuffer(document.getElementById("file").files[0]);
     63 }
     64 
     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,
     72 ];
     73 
     74 function next() {
     75  if (!steps.length) {
     76    SimpleTest.finish();
     77    return;
     78  }
     79 
     80  var step = steps.shift();
     81  step();
     82 }
     83 
     84 SimpleTest.waitForExplicitFinish();
     85 next();
     86  </script>
     87 </body>
     88 </html>