test-01.html revision 9982ae2753aea312f8260f66903f5cfb1d202d22
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <title>YUI FocusManager Node Plugin Tests</title>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen width: 150px;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen background-color: #ccc;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen border: solid 1px #333;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen padding: 10px;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen list-style: none;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen border: solid 1px #ffcc00;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen background-color: yellow;
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <a href="#" class="focusable"><em>One</em></a>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">One</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Two</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Three</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Four</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable" tabindex="0">Two</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Three</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Four</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><input type="button" name="button-1" value="Five" class="focusable" disabled></li>
9ee18af3a036074c4021c82ae2e67f5ccaa9ea9dTom Gundersen <li><input type="button" name="button-2" value="Six" class="focusable"></li>
9ee18af3a036074c4021c82ae2e67f5ccaa9ea9dTom Gundersen <li><button type="button" class="focusable" disabled><em>Seven</em></button></li>
9ee18af3a036074c4021c82ae2e67f5ccaa9ea9dTom Gundersen <li><button type="button" class="focusable"><em><em>Eight</em></em></button></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <a href="#" class="focusable"><em>One</em></a>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a id="anchor-1" href="#" class="focusable">One</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Two</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Three</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Four</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Two</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Three</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><a href="#" class="focusable">Four</a></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><input type="button" name="button-1" value="Five" class="focusable" disabled></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><input type="button" name="button-2" value="Six" class="focusable"></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><button type="button" class="focusable" disabled><em>Seven</em></button></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen <li><button type="button" class="focusable"><em><em>Eight</em></em></button></li>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen<script src="/build/yui/yui.js" type="text/javascript"></script>
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen YUI({timeout: 10000}).use("node-event-simulate", "node-focusmanager", "test", "console", function(Y) {
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen Y.on("contentready", function () {
40862866417265ac8c20422cb44f14a8f141ce0dTom Gundersen var myConsole = new Y.Console().render();
40862866417265ac8c20422cb44f14a8f141ce0dTom Gundersen var testFocusManager = new Y.Test.Case({
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen name: "FocusManager Tests",
40862866417265ac8c20422cb44f14a8f141ce0dTom Gundersen testActiveDescendant: function() {
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen // If no value is specified for the "activeDescendant"
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen // attribute, the value is interpreted from the markup
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen // by using the first descendant whose tabIndex attribute
e2acdb6b0f68d9b4152708a9f21bf9e11f8b9e7eTorstein Husebø // is set to "0"
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen var oList1 = Y.Node.get("#list-1");
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen descendants: ">li>.focusable",
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen keys: { next: "down:40", previous: "down:38" },
cfb5b3805759e63dc5e0cae6e92e1df885b5c5b6Tom Gundersen focusClass: "focused",
var oList2 = Y.Node.get("#list-2");
oList1.unplug("focusManager");
oList2.unplug("focusManager");
oList1.focusManager.set("activeDescendant", -1);
oList1.focusManager.get("descendants").each(function (node) {
oList1.focusManager.get("descendants").item(0).simulate("mousedown");
oList1.focusManager.set("activeDescendant", -1);
// ...Or a disabled Node reference
oList1.unplug("focusManager");
var oList1 = Y.Node.get("#list-1");
oList1.focusManager.set("descendants", ".focusable");
var oSublist = Y.Node.get("#list-1-2"),
oParentNode = oSublist.get("parentNode");
oParentNode.removeChild(oSublist);
oList1.unplug("focusManager");
var oList2 = Y.Node.get("#list-2");
Y.Node.get("#anchor-1").focus();
oList2.unplug("focusManager");
var oList1 = Y.Node.get("#list-1");
var nodes = oList1.queryAll(".focused");
nodes = oList1.queryAll(".focused");
oList1.focusManager.set("focusClass", {
return node.get("parentNode");
nodes = oList1.queryAll(".focused");
Y.Assert.isTrue(oList1.focusManager.get("descendants").item(0).get("parentNode").hasClass("focused"));
nodes = oList1.queryAll(".focused");
Y.Assert.isFalse(oList1.focusManager.get("descendants").item(0).get("parentNode").hasClass("focused"));
Y.Test.Runner.add(testFocusManager);