test_settext_input_event.html (1300B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Test that setTextContents only sends one DOM input event</title> 5 <meta charset="utf-8" /> 6 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> 7 8 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 9 <script type="application/javascript" 10 src="../common.js"></script> 11 <script type="application/javascript"> 12 async function doTest() { 13 let input = getAccessible("input", [nsIAccessibleEditableText]); 14 let eventPromise = new Promise(resolve => 15 document.getElementById("input").addEventListener( 16 "input", resolve, { once: true })); 17 18 input.setTextContents("goodbye"); 19 let inputEvent = await eventPromise; 20 is(inputEvent.target.value, "goodbye", "input set to new value."); 21 22 SimpleTest.finish(); 23 } 24 25 SimpleTest.waitForExplicitFinish(); 26 addA11yLoadEvent(doTest); 27 </script> 28 </head> 29 <body> 30 31 <a target="_blank" 32 title="HyperTextAccessible::ReplaceText causes two distinct DOM 'input' events" 33 href="https://bugzilla.mozilla.org/show_bug.cgi?id=1490840">Mozilla Bug 1490840</a> 34 <p id="display"></p> 35 <div id="content" style="display: none"></div> 36 <input id="input" value="hello"> 37 </body> 38 </html>