test_passwords.html (2653B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>nsIAccessibleText getText related function tests for text and password inputs</title> 5 <link rel="stylesheet" type="text/css" 6 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 src="../text.js"></script> 13 14 <script type="application/javascript"> 15 function doTest() { 16 // //////////////////////////////////////////////////////////////////////// 17 // regular text and password inputs 18 // //////////////////////////////////////////////////////////////////////// 19 20 // ////////////////////////////////////////////////////////////////////// 21 // characterCount and getText for regular text field 22 23 var IDs = [ "username" ]; 24 testCharacterCount(IDs, 4); 25 testText(IDs, 0, 4, "test"); 26 27 // ////////////////////////////////////////////////////////////////////// 28 // characterCount and getText for password field 29 30 IDs = [ "password" ]; 31 testCharacterCount(IDs, 4); 32 let password = document.getElementById("password"); 33 let editor = SpecialPowers.wrap(password).editor; 34 let passwordMask = editor.passwordMask; 35 testText(IDs, 0, 4, `${passwordMask}${passwordMask}${passwordMask}${passwordMask}`); 36 // a11y data is updated at next tick so that we need to refresh here. 37 editor.unmask(0, 2); 38 SpecialPowers.DOMWindowUtils.advanceTimeAndRefresh(0); 39 testText(IDs, 0, 4, `te${passwordMask}${passwordMask}`); 40 editor.unmask(2, 4); 41 SpecialPowers.DOMWindowUtils.advanceTimeAndRefresh(0); 42 testText(IDs, 0, 4, `${passwordMask}${passwordMask}st`); 43 editor.unmask(0, 4); 44 SpecialPowers.DOMWindowUtils.advanceTimeAndRefresh(0); 45 testText(IDs, 0, 4, `test`); 46 SpecialPowers.DOMWindowUtils.restoreNormalRefresh(); 47 48 SimpleTest.finish(); 49 } 50 51 SimpleTest.waitForExplicitFinish(); 52 addA11yLoadEvent(doTest); 53 </script> 54 </head> 55 <body> 56 57 <a target="_blank" 58 title="mochitest for getText for password fields" 59 href="https://bugzilla.mozilla.org/show_bug.cgi?id=415943">Mozilla Bug 415943</a> 60 <p id="display"></p> 61 <div id="content" style="display: none"></div> 62 <pre id="test"> 63 </pre> 64 65 <form action="post.php" method="post"> 66 <label for="username">User name:</label> 67 <input id="username" value="test"><br /> 68 <label for="password">Password:</label> 69 <input type="password" id="password" value="test"/> 70 </form> 71 </body> 72 </html>