tor-browser

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

test_basic.html (3444B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test for Directory API</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script type="text/javascript" src="filesystem_commons.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8 </head>
      9 
     10 <body>
     11 <script type="application/javascript">
     12 
     13 var directory;
     14 var fileList;
     15 
     16 function create_fileList(aPath) {
     17  fileList = document.createElement("input");
     18  fileList.setAttribute("type", "file");
     19  document.body.appendChild(fileList);
     20 
     21  var url = SimpleTest.getTestFileURL("script_fileList.js");
     22  var script = SpecialPowers.loadChromeScript(url);
     23 
     24  function onOpened(message) {
     25    SpecialPowers.wrap(fileList).mozSetDirectory(message.dir);
     26    fileList.setAttribute("data-name", message.name);
     27 
     28    SpecialPowers.wrap(fileList).getFilesAndDirectories().then(function(array) {
     29      array =  SpecialPowers.unwrap(array);
     30      is(array.length, 1, "We want just 1 directory.");
     31      ok(array[0] instanceof Directory, "We want just 1 directory.");
     32 
     33      directory = array[0];
     34      script.destroy();
     35      next();
     36    });
     37  }
     38 
     39  script.addMessageListener("dir.opened", onOpened);
     40  script.sendAsyncMessage("dir.open", { path: aPath });
     41 }
     42 
     43 function test_simpleFilePicker() {
     44  var url = SimpleTest.getTestFileURL("script_fileList.js");
     45  var script = SpecialPowers.loadChromeScript(url);
     46 
     47  function onOpened(message) {
     48    SpecialPowers.wrap(fileList).mozSetFileArray([message.file]);
     49 
     50    is(fileList.files.length, 1, "we want 1 element");
     51    ok(fileList.files[0] instanceof File, "we want 1 file");
     52    ok("webkitRelativePath" in fileList.files[0], "we have webkitRelativePath attribute");
     53    is(fileList.files[0].webkitRelativePath, "", "No webkit relative path for normal filePicker");
     54 
     55    script.destroy();
     56    next();
     57  }
     58 
     59  script.addMessageListener("file.opened", onOpened);
     60  script.sendAsyncMessage("file.open");
     61 }
     62 
     63 function test_duplicateGetFilesAndDirectories() {
     64  var url = SimpleTest.getTestFileURL("script_fileList.js");
     65  var script = SpecialPowers.loadChromeScript(url);
     66 
     67  function onOpened(message) {
     68    SpecialPowers.wrap(fileList).mozSetDirectory(message.dir);
     69 
     70    var p1 = SpecialPowers.wrap(fileList).getFilesAndDirectories();
     71    var p2 = SpecialPowers.wrap(fileList).getFilesAndDirectories();
     72 
     73    isnot(p1, p2, "We create 2 different promises");
     74 
     75    script.destroy();
     76    next();
     77  }
     78 
     79  script.addMessageListener("dir.opened", onOpened);
     80  script.sendAsyncMessage("dir.open", { path: "test" });
     81 }
     82 
     83 var tests = [
     84  function() { setup_tests(next); },
     85 
     86  function() { create_fileList("tree"); },
     87  function() { test_basic(directory, next); },
     88  function() { test_getFilesAndDirectories(directory, true, next); },
     89  function() { test_getFiles(directory, false, next); },
     90  function() { test_getFiles(directory, true, next); },
     91 
     92  function() { create_fileList("test"); },
     93  function() { test_getFiles_recursiveComparison(directory, next); },
     94 
     95  function() { create_fileList("root"); },
     96  function() { test_basic(directory, next); },
     97  function() { test_getFilesAndDirectories(directory, false, next); },
     98  function() { test_getFiles(directory, false, next); },
     99 
    100  test_duplicateGetFilesAndDirectories,
    101  test_simpleFilePicker,
    102 ];
    103 
    104 function next() {
    105  if (!tests.length) {
    106    SimpleTest.finish();
    107    return;
    108  }
    109 
    110  var test = tests.shift();
    111  test();
    112 }
    113 
    114 SimpleTest.waitForExplicitFinish();
    115 next();
    116 </script>
    117 </body>
    118 </html>