123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=622597
- -->
- <head>
- <title>Test for Bug 622597</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=622597">Mozilla Bug 622597</a>
- <p id="display"></p>
- <div id="content">
- <form>
- <input required>
- <textarea required></textarea>
- <select required><option>foo</option><option value="">bar</option></select>
- <button>submit</button>
- </form>
- </div>
- <pre id="test">
- <script type="application/javascript">
- /** Test for Bug 622597 **/
- var form = document.forms[0];
- var input = form.elements[0];
- var textarea = form.elements[1];
- var select = form.elements[2];
- var button = form.elements[3];
- function checkPseudoClasses(aElement, aValid, aInvalid)
- {
- is(aElement.matches(":-moz-ui-valid"), aValid,
- aValid ? aElement + " should match :-moz-ui-valid"
- : aElement + " should not match :-moz-ui-valid");
- is(aElement.matches(":-moz-ui-invalid"), aInvalid,
- aInvalid ? aElement + " should match :-moz-ui-invalid"
- : aElement + " should not match :-moz-ui-invalid");
- if (aValid && aInvalid) {
- ok(false,
- aElement + " should not match :-moz-ui-valid AND :-moz-ui-invalid");
- }
- }
- select.addEventListener("focus", function() {
- select.removeEventListener("focus", arguments.callee, false);
- SimpleTest.executeSoon(function() {
- form.noValidate = false;
- SimpleTest.executeSoon(function() {
- checkPseudoClasses(select, false, true);
- SimpleTest.finish();
- });
- });
- }, false);
- textarea.addEventListener("focus", function() {
- textarea.removeEventListener("focus", arguments.callee, false);
- SimpleTest.executeSoon(function() {
- form.noValidate = false;
- SimpleTest.executeSoon(function() {
- checkPseudoClasses(textarea, false, true);
- form.noValidate = true;
- select.selectedIndex = 1;
- select.focus();
- });
- });
- }, false);
- input.addEventListener("invalid", function() {
- input.removeEventListener("invalid", arguments.callee, false);
- input.addEventListener("focus", function() {
- input.removeEventListener("focus", arguments.callee, false);
- SimpleTest.executeSoon(function() {
- form.noValidate = false;
- SimpleTest.executeSoon(function() {
- checkPseudoClasses(input, false, true);
- form.noValidate = true;
- textarea.value = '';
- textarea.focus();
- });
- });
- }, false);
- SimpleTest.executeSoon(function() {
- form.noValidate = true;
- input.blur();
- input.value = '';
- input.focus();
- });
- }, false);
- button.addEventListener("focus", function() {
- button.removeEventListener("focus", arguments.callee, false);
- SimpleTest.executeSoon(function() {
- synthesizeKey("VK_RETURN", {});
- });
- }, false);
- SimpleTest.waitForExplicitFinish();
- SimpleTest.waitForFocus(function() {
- button.focus();
- });
- </script>
- </pre>
- </body>
- </html>
|