test_bug557087-4.html (2065B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=557087 5 --> 6 <head> 7 <title>Test for Bug 557087</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <script src="/tests/SimpleTest/EventUtils.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 11 </head> 12 <body> 13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=557087">Mozilla Bug 557087</a> 14 <p id="display"></p> 15 <div id="content"> 16 <iframe name='f'></iframe> 17 <form target='f' action="data:text/html"> 18 <input type='text' id='a'> 19 <input type='checkbox' id='b'> 20 <input type='radio' id='c'> 21 <fieldset disabled> 22 <fieldset> 23 <input type='submit' id='s'> 24 </fieldset> 25 </fieldset> 26 </form> 27 </div> 28 <pre id="test"> 29 <script type="application/javascript"> 30 31 /** Test for Bug 557087 */ 32 33 SimpleTest.waitForExplicitFinish(); 34 35 var gExpectedSubmits = 6; 36 var gSubmitReceived = 0; 37 var gEnd = false; 38 39 var fieldsets = document.getElementsByTagName("fieldset"); 40 var form = document.forms[0]; 41 42 form.addEventListener("submit", function() { 43 ok(gEnd, gEnd ? "expected submit" : "non expected submit"); 44 if (++gSubmitReceived >= gExpectedSubmits) { 45 form.removeEventListener("submit", arguments.callee); 46 SimpleTest.finish(); 47 } 48 }); 49 50 var inputs = [ 51 document.getElementById('a'), 52 document.getElementById('b'), 53 document.getElementById('c'), 54 ]; 55 56 function doSubmit() 57 { 58 for (e of inputs) { 59 e.focus(); 60 synthesizeKey("KEY_Enter"); 61 } 62 } 63 64 SimpleTest.waitForFocus(function() { 65 doSubmit(); 66 67 fieldsets[1].disabled = true; 68 fieldsets[0].disabled = false; 69 doSubmit(); 70 71 fieldsets[0].disabled = false; 72 fieldsets[1].disabled = false; 73 74 gEnd = true; 75 doSubmit(); 76 77 // Simple check that we can submit from inside a legend even if the fieldset 78 // is disabled. 79 var legend = document.createElement("legend"); 80 fieldsets[0].appendChild(legend); 81 fieldsets[0].disabled = true; 82 legend.appendChild(document.getElementById('s')); 83 84 doSubmit(); 85 }); 86 87 </script> 88 </pre> 89 </body> 90 </html>