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>