| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| var cb = document.createElement("input"); |
| document.body.appendChild(cb); |
| cb.type = "checkbox"; |
| |
| description("This tests that clicking on indeterminate checkbox flips both checked/indeterminate states and calling preventDefault restores them."); |
| |
| debug("Test if clicking on unchecked indeterminate checkbox flips both checked/indeterminate states"); |
| cb.checked = false; |
| cb.indeterminate = true; |
| cb.click(); |
| shouldBeTrue('cb.checked'); |
| shouldBeFalse('cb.indeterminate'); |
| |
| debug("Test if clicking on checked indeterminate checkbox flips both checked/indeterminate states"); |
| cb.checked = true; |
| cb.indeterminate = true; |
| cb.click(); |
| shouldBeFalse('cb.checked'); |
| shouldBeFalse('cb.indeterminate'); |
| |
| debug("Test if preventDefault restores the checked/indeterminate states"); |
| cb.checked = false; |
| cb.indeterminate = true; |
| cb.onclick = function(e) { |
| shouldBeTrue('cb.checked'); |
| shouldBeFalse('cb.indeterminate'); |
| e.preventDefault(); |
| }; |
| cb.click(); |
| shouldBeFalse('cb.checked'); |
| shouldBeTrue('cb.indeterminate'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |