tor-browser

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

test_submit_invalid_file.html (1844B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=702949
      5 -->
      6 <head>
      7  <meta charset="utf-8">
      8  <title>Test invalid file submission</title>
      9  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     10  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
     11 </head>
     12 <body>
     13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=702949">Mozilla Bug 702949</a>
     14 <p id="display"></p>
     15 <div id="content" style="display: none">
     16  <form action='http://mochi.test:8888/chrome/dom/html/test/forms/submit_invalid_file.sjs' method='post' target='result'
     17        enctype='multipart/form-data'>
     18    <input type='file' name='file'>
     19  </form>
     20  <iframe name='result'></iframe>
     21 </div>
     22 <pre id="test">
     23 </pre>
     24 <script type="application/javascript">
     25  /*
     26   * Test invalid file submission by submitting a file that has been deleted
     27   * from the file system before the form has been submitted.
     28   * The form submission triggers a sjs file that shows its output in a frame.
     29   * That means the test might time out if it fails.
     30   */
     31 
     32  SimpleTest.waitForExplicitFinish();
     33  addLoadEvent(function() {
     34    var { FileUtils } = SpecialPowers.ChromeUtils.importESModule(
     35      "resource://gre/modules/FileUtils.sys.mjs"
     36    );
     37 
     38    var i = document.getElementsByTagName('input')[0];
     39 
     40    var file = FileUtils.getDir("TmpD", []);
     41    file.append("testfile");
     42    file.createUnique(SpecialPowers.Ci.nsIFile.NORMAL_FILE_TYPE, 0o644);
     43 
     44    SpecialPowers.wrap(i).value = file.path;
     45    file.remove(/* recursive = */ false);
     46 
     47    document.getElementsByName('result')[0].addEventListener('load', function() {
     48      is(window.frames[0].document.body.textContent, "SUCCESS");
     49      SimpleTest.finish();
     50    });
     51    document.forms[0].submit();
     52  });
     53 </script>
     54 </body>
     55 </html>