Bug 178324, refactor focus by moving all focus handling into one place and simplifying it, add many tests, fixes many other bugs too numerous to mention in this small checkin comment, r=josh,smichaud,ere,dbaron,marco,neil,gavin,smaug,sr=smaug (CLOSED TREE)
2009-06-10 11:00:39 -07:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
|
|
|
<?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
|
|
|
|
|
|
|
|
<window title="Tests for focus on elements with anonymous focusable children"
|
|
|
|
onload="setTimeout(runTests, 0);"
|
|
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
|
|
|
|
|
|
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
|
|
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
|
|
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
|
|
|
|
|
|
|
<label accesskey="a" control="menulist"/>
|
|
|
|
<label accesskey="b" control="textbox"/>
|
|
|
|
<label accesskey="c" control="scale"/>
|
|
|
|
|
|
|
|
<menulist id="menulist" editable="true">
|
|
|
|
<menupopup>
|
|
|
|
<menuitem label="One"/>
|
|
|
|
</menupopup>
|
|
|
|
</menulist>
|
|
|
|
<textbox id="textbox"/>
|
|
|
|
<scale id="scale"/>
|
|
|
|
|
|
|
|
<script class="testbody" type="application/javascript">
|
|
|
|
<![CDATA[
|
|
|
|
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
|
|
|
|
var gBlurs = 0, gFocuses = 0;
|
|
|
|
var gExpectedBlur = "";
|
|
|
|
var gExpectedFocus = "";
|
|
|
|
|
2010-05-13 05:19:50 -07:00
|
|
|
function blurOccurred(event) {
|
Bug 178324, refactor focus by moving all focus handling into one place and simplifying it, add many tests, fixes many other bugs too numerous to mention in this small checkin comment, r=josh,smichaud,ere,dbaron,marco,neil,gavin,smaug,sr=smaug (CLOSED TREE)
2009-06-10 11:00:39 -07:00
|
|
|
gBlurs++;
|
|
|
|
is(event.originalTarget, gExpectedBlur, "blur " + gBlurs + "," + event.originalTarget.localName);
|
|
|
|
}
|
|
|
|
|
2010-05-13 05:19:50 -07:00
|
|
|
function focusOccurred(event) {
|
Bug 178324, refactor focus by moving all focus handling into one place and simplifying it, add many tests, fixes many other bugs too numerous to mention in this small checkin comment, r=josh,smichaud,ere,dbaron,marco,neil,gavin,smaug,sr=smaug (CLOSED TREE)
2009-06-10 11:00:39 -07:00
|
|
|
gFocuses++;
|
|
|
|
is(event.originalTarget, gExpectedFocus, "focus " + gFocuses + "," + event.originalTarget.localName);
|
|
|
|
}
|
|
|
|
|
|
|
|
function runTests()
|
|
|
|
{
|
2010-05-13 05:19:50 -07:00
|
|
|
addEventListener("focus", focusOccurred, true);
|
|
|
|
addEventListener("blur", blurOccurred, true);
|
Bug 178324, refactor focus by moving all focus handling into one place and simplifying it, add many tests, fixes many other bugs too numerous to mention in this small checkin comment, r=josh,smichaud,ere,dbaron,marco,neil,gavin,smaug,sr=smaug (CLOSED TREE)
2009-06-10 11:00:39 -07:00
|
|
|
|
|
|
|
gExpectedBlur = null;
|
|
|
|
gExpectedFocus = $("menulist").inputField;
|
|
|
|
$("menulist").focus();
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = $("textbox").inputField;
|
|
|
|
$("textbox").focus();
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = document.getAnonymousNodes($("scale"))[0];
|
|
|
|
$("scale").focus();
|
|
|
|
|
|
|
|
var accessKeyDetails = (navigator.platform.indexOf("Mac") >= 0) ?
|
|
|
|
{ ctrlKey : true } : { altKey : true, shiftKey: true };
|
|
|
|
|
|
|
|
gExpectedBlur = document.getAnonymousNodes($("scale"))[0];
|
|
|
|
gExpectedFocus = $("menulist").inputField;
|
|
|
|
synthesizeKey("a", accessKeyDetails);
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = $("textbox").inputField;
|
|
|
|
synthesizeKey("b", accessKeyDetails);
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = document.getAnonymousNodes($("scale"))[0];
|
|
|
|
synthesizeKey("c", accessKeyDetails);
|
|
|
|
|
2009-10-22 12:06:08 -07:00
|
|
|
if (navigator.platform.indexOf("Mac") == -1) {
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = $("textbox").inputField;
|
|
|
|
synthesizeKey("VK_TAB", { shiftKey: true });
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = $("menulist").inputField;
|
|
|
|
synthesizeKey("VK_TAB", { shiftKey: true });
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = $("textbox").inputField;
|
|
|
|
synthesizeKey("VK_TAB", { });
|
|
|
|
|
|
|
|
gExpectedBlur = gExpectedFocus;
|
|
|
|
gExpectedFocus = document.getAnonymousNodes($("scale"))[0];
|
|
|
|
synthesizeKey("VK_TAB", { });
|
|
|
|
|
|
|
|
is(gBlurs, 9, "correct number of blurs");
|
|
|
|
is(gFocuses, 10, "correct number of focuses");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
is(gBlurs, 5, "correct number of blurs");
|
|
|
|
is(gFocuses, 6, "correct number of focuses");
|
|
|
|
}
|
Bug 178324, refactor focus by moving all focus handling into one place and simplifying it, add many tests, fixes many other bugs too numerous to mention in this small checkin comment, r=josh,smichaud,ere,dbaron,marco,neil,gavin,smaug,sr=smaug (CLOSED TREE)
2009-06-10 11:00:39 -07:00
|
|
|
|
|
|
|
SimpleTest.finish();
|
|
|
|
}
|
|
|
|
|
|
|
|
]]>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<p id="display">
|
|
|
|
</p>
|
|
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
|
|
<pre id="test">
|
|
|
|
</pre>
|
|
|
|
</body>
|
|
|
|
|
|
|
|
</window>
|