tor-browser

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

test_preserving_metadata_between_reloads.html (2874B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test preserving metadata between page reloads</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <script src="/tests/SimpleTest/EventUtils.js"></script>
      8  <link rel="stylesheet" href="/tests/SimpleTest/test.css" />
      9  </head>
     10 <body>
     11 <p id="display"></p>
     12 <div id="content">
     13  <iframe id="test-frame" width="800px" height="600px" srcdoc='
     14        <html>
     15          <body>
     16            <h3>Bug 1635224: Preserve mLastValueChangeWasInteractive between reloads</h3>
     17            <div>
     18              <form>
     19                <textarea id="maxlen-textarea" maxlength="2" rows="2" cols="10"></textarea><br/>
     20                <input id="maxlen-inputtext" type="text" maxlength="2"><br/>
     21                <textarea id="minlen-textarea" minlength="8" rows="2" cols="10"></textarea><br/>
     22                <input id="minlen-inputtext" type="text" minlength="8"><br/>
     23              </form>
     24            </div>
     25          </body>
     26        </html>
     27 '></iframe>
     28 </div>
     29 
     30 <pre id="test">
     31 <script>
     32  SimpleTest.waitForExplicitFinish()
     33  const Ci = SpecialPowers.Ci;
     34  const str = "aaaaa";
     35 
     36  function afterLoad() {
     37    SimpleTest.waitForFocus(async function () {
     38      await SpecialPowers.pushPrefEnv({"set": [["editor.truncate_user_pastes", false]]});
     39      var iframeDoc = $("test-frame").contentDocument;
     40      var src = iframeDoc.getElementById("src");
     41 
     42      function test(fieldId, callback) {
     43        var field = iframeDoc.getElementById(fieldId);
     44        field.focus();
     45        SimpleTest.waitForClipboard(str,
     46          function () {
     47            SpecialPowers.Cc["@mozilla.org/widget/clipboardhelper;1"]
     48              .getService(Ci.nsIClipboardHelper)
     49              .copyString(str);
     50          },
     51          function () {
     52            synthesizeKey("v", { accelKey: true });
     53            is(field.value, "aaaaa", "the value of " + fieldId + " was entered correctly");
     54            is(field.checkValidity(), false, "the validity of " + fieldId + " should be false");
     55            $("test-frame").contentWindow.location.reload();
     56            is(field.value, "aaaaa", "the value of " + fieldId + " persisted correctly");
     57            is(field.checkValidity(), false, "the validity of " + fieldId + " should be false after reload");
     58            callback();
     59          },
     60          function () {
     61            ok(false, "Failed to copy the string");
     62            SimpleTest.finish();
     63          }
     64        );
     65      }
     66 
     67      function runNextTest() {
     68        if (fieldIds.length) {
     69          var currentFieldId = fieldIds.shift();
     70          test(currentFieldId, runNextTest);
     71        } else {
     72          SimpleTest.finish();
     73        }
     74      }
     75 
     76      var fieldIds = ["maxlen-textarea", "maxlen-inputtext", "minlen-textarea", "minlen-inputtext"];
     77      runNextTest();
     78    });
     79  }
     80  addLoadEvent(afterLoad);
     81 </script>
     82 </pre>
     83 </body>
     84 </html>