<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=622558 --> <head> <title>Test for Bug 622558</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=622558">Mozilla Bug 622558</a> <p id="display"></p> <div id="content"> <form> <input> <textarea></textarea> <select><option>foo</option></select> </div> <pre id="test"> <script type="application/javascript"> // Bug 940203 if (navigator.platform.startsWith("Win")) { SimpleTest.expectAssertions(0, 1); } /** Test for Bug 622558 **/ function checkSelectors(aElement) { ok(aElement.matches(":-moz-ui-invalid"), ":-moz-ui-invalid should match for " + aElement); ok(!aElement.matches(":-moz-ui-valid"), ":-moz-ui-valid should not match for " + aElement); } var input = document.getElementsByTagName('input')[0]; var textarea = document.getElementsByTagName('textarea')[0]; var select = document.getElementsByTagName('select')[0]; select.addEventListener("focus", function() { select.removeEventListener("focus", arguments.callee, false); SimpleTest.executeSoon(function() { select.setCustomValidity('foo'); SimpleTest.executeSoon(function() { checkSelectors(select); SimpleTest.finish(); }); }); }, false); textarea.addEventListener("focus", function() { textarea.removeEventListener("focus", arguments.callee, false); SimpleTest.executeSoon(function() { textarea.setCustomValidity('foo'); SimpleTest.executeSoon(function() { checkSelectors(textarea); select.focus(); }); }); }, false); input.addEventListener("focus", function() { input.removeEventListener("focus", arguments.callee, false); SimpleTest.executeSoon(function() { input.setCustomValidity('foo'); SimpleTest.executeSoon(function() { checkSelectors(input); textarea.focus(); }); }); }, false); SimpleTest.waitForExplicitFinish(); SimpleTest.waitForFocus(function() { input.focus(); }); </script> </pre> </body> </html>