test_bug605125-1.html (2714B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=605125 5 --> 6 <head> 7 <title>Test for Bug 605125</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 10 </head> 11 <body> 12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=605125">Mozilla Bug 605125</a> 13 <p id="display"></p> 14 <div id="content"> 15 <form id='f1'> 16 <textarea></textarea> 17 <input> 18 <button type='submit'></button> 19 <select></select> 20 </form> 21 22 <table> 23 <form id='f2'> 24 <tr> 25 <textarea></textarea> 26 <input> 27 <button type='submit'></button> 28 <select></select> 29 </tr> 30 </form> 31 </table> 32 <input form='f1' required> 33 <input form='f2' required> 34 </div> 35 <pre id="test"> 36 <script type="application/javascript"> 37 38 /** Test for Bug 605125 */ 39 40 /** 41 * NOTE: this test is very similar to 605124-1.html. 42 */ 43 44 function checkPseudoClass(aElement, aExpected) 45 { 46 is(aElement.matches(":-moz-ui-valid"), aExpected, 47 "matches(':-moz-ui-valid') should return " + aExpected + " for " + aElement); 48 } 49 50 var content = document.getElementById('content'); 51 var textarea = document.getElementsByTagName('textarea')[0]; 52 var input = document.getElementsByTagName('input')[0]; 53 var button = document.getElementsByTagName('button')[0]; 54 var select = document.getElementsByTagName('select')[0]; 55 var form = document.forms[0]; 56 57 checkPseudoClass(textarea, false); 58 checkPseudoClass(input, false); 59 checkPseudoClass(select, false); 60 61 // Try to submit. 62 button.click(); 63 checkPseudoClass(textarea, true); 64 checkPseudoClass(input, true); 65 checkPseudoClass(select, true); 66 67 // No longer in the form. 68 content.appendChild(textarea); 69 content.appendChild(input); 70 content.appendChild(select); 71 checkPseudoClass(textarea, true); 72 checkPseudoClass(input, true); 73 checkPseudoClass(select, true); 74 75 // Back in the form. 76 form.appendChild(textarea); 77 form.appendChild(input); 78 form.appendChild(select); 79 checkPseudoClass(textarea, true); 80 checkPseudoClass(input, true); 81 checkPseudoClass(select, true); 82 83 /* Case when elements get orphaned. */ 84 var textarea = document.getElementsByTagName('textarea')[1]; 85 var input = document.getElementsByTagName('input')[1]; 86 var button = document.getElementsByTagName('button')[1]; 87 var select = document.getElementsByTagName('select')[1]; 88 var form = document.forms[1]; 89 90 // Try to submit. 91 button.click(); 92 checkPseudoClass(textarea, true); 93 checkPseudoClass(input, true); 94 checkPseudoClass(select, true); 95 96 // Remove the form. 97 document.getElementsByTagName('table')[0].removeChild(form); 98 checkPseudoClass(textarea, true); 99 checkPseudoClass(input, true); 100 checkPseudoClass(select, true); 101 102 </script> 103 </pre> 104 </body> 105 </html>