summaryrefslogtreecommitdiffstats
path: root/dom/html/test/forms/test_preserving_metadata_between_reloads.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/html/test/forms/test_preserving_metadata_between_reloads.html')
-rw-r--r--dom/html/test/forms/test_preserving_metadata_between_reloads.html84
1 files changed, 84 insertions, 0 deletions
diff --git a/dom/html/test/forms/test_preserving_metadata_between_reloads.html b/dom/html/test/forms/test_preserving_metadata_between_reloads.html
new file mode 100644
index 0000000000..07ca05f7ce
--- /dev/null
+++ b/dom/html/test/forms/test_preserving_metadata_between_reloads.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Test preserving metadata between page reloads</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script src="/tests/SimpleTest/EventUtils.js"></script>
+ <link rel="stylesheet" href="/tests/SimpleTest/test.css" />
+ </head>
+<body>
+<p id="display"></p>
+<div id="content">
+ <iframe id="test-frame" width="800px" height="600px" srcdoc='
+ <html>
+ <body>
+ <h3>Bug 1635224: Preserve mLastValueChangeWasInteractive between reloads</h3>
+ <div>
+ <form>
+ <textarea id="maxlen-textarea" maxlength="2" rows="2" cols="10"></textarea><br/>
+ <input id="maxlen-inputtext" type="text" maxlength="2"><br/>
+ <textarea id="minlen-textarea" minlength="8" rows="2" cols="10"></textarea><br/>
+ <input id="minlen-inputtext" type="text" minlength="8"><br/>
+ </form>
+ </div>
+ </body>
+ </html>
+'></iframe>
+</div>
+
+<pre id="test">
+<script>
+ SimpleTest.waitForExplicitFinish()
+ const Ci = SpecialPowers.Ci;
+ const str = "aaaaa";
+
+ function afterLoad() {
+ SimpleTest.waitForFocus(async function () {
+ await SpecialPowers.pushPrefEnv({"set": [["editor.truncate_user_pastes", false]]});
+ var iframeDoc = $("test-frame").contentDocument;
+ var src = iframeDoc.getElementById("src");
+
+ function test(fieldId, callback) {
+ var field = iframeDoc.getElementById(fieldId);
+ field.focus();
+ SimpleTest.waitForClipboard(str,
+ function () {
+ SpecialPowers.Cc["@mozilla.org/widget/clipboardhelper;1"]
+ .getService(Ci.nsIClipboardHelper)
+ .copyString(str);
+ },
+ function () {
+ synthesizeKey("v", { accelKey: true });
+ is(field.value, "aaaaa", "the value of " + fieldId + " was entered correctly");
+ is(field.checkValidity(), false, "the validity of " + fieldId + " should be false");
+ $("test-frame").contentWindow.location.reload();
+ is(field.value, "aaaaa", "the value of " + fieldId + " persisted correctly");
+ is(field.checkValidity(), false, "the validity of " + fieldId + " should be false after reload");
+ callback();
+ },
+ function () {
+ ok(false, "Failed to copy the string");
+ SimpleTest.finish();
+ }
+ );
+ }
+
+ function runNextTest() {
+ if (fieldIds.length) {
+ var currentFieldId = fieldIds.shift();
+ test(currentFieldId, runNextTest);
+ } else {
+ SimpleTest.finish();
+ }
+ }
+
+ var fieldIds = ["maxlen-textarea", "maxlen-inputtext", "minlen-textarea", "minlen-inputtext"];
+ runNextTest();
+ });
+ }
+ addLoadEvent(afterLoad);
+</script>
+</pre>
+</body>
+</html> \ No newline at end of file