forked from mirrors/gecko-dev
MozReview-Commit-ID: FprlN3Vm9H7 --HG-- extra : rebase_source : f9b225e5a4464b7e6f937e4670a0bfbf472dc916
151 lines
4.4 KiB
JavaScript
151 lines
4.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
/**
|
|
* Tests if the abstract tree base class for the profiler's tree view
|
|
* is keyboard accessible.
|
|
*/
|
|
|
|
const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
|
|
const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
|
|
|
|
add_task(function* () {
|
|
let { MyCustomTreeItem, myDataSrc } = synthesizeCustomTreeClass();
|
|
|
|
let container = document.createElement("vbox");
|
|
yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
|
|
|
|
// Populate the tree by pressing RIGHT...
|
|
|
|
let treeRoot = new MyCustomTreeItem(myDataSrc, { parent: null });
|
|
treeRoot.attachTo(container);
|
|
treeRoot.focus();
|
|
|
|
key("VK_RIGHT");
|
|
ok(treeRoot.expanded,
|
|
"The root node is now expanded.");
|
|
is(document.commandDispatcher.focusedElement, treeRoot.target,
|
|
"The root node is still focused.");
|
|
|
|
let fooItem = treeRoot.getChild(0);
|
|
let barItem = treeRoot.getChild(1);
|
|
|
|
key("VK_RIGHT");
|
|
ok(!fooItem.expanded,
|
|
"The 'foo' node is not expanded yet.");
|
|
is(document.commandDispatcher.focusedElement, fooItem.target,
|
|
"The 'foo' node is now focused.");
|
|
|
|
key("VK_RIGHT");
|
|
ok(fooItem.expanded,
|
|
"The 'foo' node is now expanded.");
|
|
is(document.commandDispatcher.focusedElement, fooItem.target,
|
|
"The 'foo' node is still focused.");
|
|
|
|
key("VK_RIGHT");
|
|
ok(!barItem.expanded,
|
|
"The 'bar' node is not expanded yet.");
|
|
is(document.commandDispatcher.focusedElement, barItem.target,
|
|
"The 'bar' node is now focused.");
|
|
|
|
key("VK_RIGHT");
|
|
ok(barItem.expanded,
|
|
"The 'bar' node is now expanded.");
|
|
is(document.commandDispatcher.focusedElement, barItem.target,
|
|
"The 'bar' node is still focused.");
|
|
|
|
let bazItem = barItem.getChild(0);
|
|
|
|
key("VK_RIGHT");
|
|
ok(!bazItem.expanded,
|
|
"The 'baz' node is not expanded yet.");
|
|
is(document.commandDispatcher.focusedElement, bazItem.target,
|
|
"The 'baz' node is now focused.");
|
|
|
|
key("VK_RIGHT");
|
|
ok(bazItem.expanded,
|
|
"The 'baz' node is now expanded.");
|
|
is(document.commandDispatcher.focusedElement, bazItem.target,
|
|
"The 'baz' node is still focused.");
|
|
|
|
// Test RIGHT on a leaf node.
|
|
|
|
key("VK_RIGHT");
|
|
is(document.commandDispatcher.focusedElement, bazItem.target,
|
|
"The 'baz' node is still focused.");
|
|
|
|
// Test DOWN on a leaf node.
|
|
|
|
key("VK_DOWN");
|
|
is(document.commandDispatcher.focusedElement, bazItem.target,
|
|
"The 'baz' node is now refocused.");
|
|
|
|
// Test UP.
|
|
|
|
key("VK_UP");
|
|
is(document.commandDispatcher.focusedElement, barItem.target,
|
|
"The 'bar' node is now refocused.");
|
|
|
|
key("VK_UP");
|
|
is(document.commandDispatcher.focusedElement, fooItem.target,
|
|
"The 'foo' node is now refocused.");
|
|
|
|
key("VK_UP");
|
|
is(document.commandDispatcher.focusedElement, treeRoot.target,
|
|
"The root node is now refocused.");
|
|
|
|
// Test DOWN.
|
|
|
|
key("VK_DOWN");
|
|
is(document.commandDispatcher.focusedElement, fooItem.target,
|
|
"The 'foo' node is now refocused.");
|
|
|
|
key("VK_DOWN");
|
|
is(document.commandDispatcher.focusedElement, barItem.target,
|
|
"The 'bar' node is now refocused.");
|
|
|
|
key("VK_DOWN");
|
|
is(document.commandDispatcher.focusedElement, bazItem.target,
|
|
"The 'baz' node is now refocused.");
|
|
|
|
// Test LEFT.
|
|
|
|
key("VK_LEFT");
|
|
ok(barItem.expanded,
|
|
"The 'bar' node is still expanded.");
|
|
is(document.commandDispatcher.focusedElement, barItem.target,
|
|
"The 'bar' node is now refocused.");
|
|
|
|
key("VK_LEFT");
|
|
ok(!barItem.expanded,
|
|
"The 'bar' node is not expanded anymore.");
|
|
is(document.commandDispatcher.focusedElement, barItem.target,
|
|
"The 'bar' node is still focused.");
|
|
|
|
key("VK_LEFT");
|
|
ok(treeRoot.expanded,
|
|
"The root node is still expanded.");
|
|
is(document.commandDispatcher.focusedElement, treeRoot.target,
|
|
"The root node is now refocused.");
|
|
|
|
key("VK_LEFT");
|
|
ok(!treeRoot.expanded,
|
|
"The root node is not expanded anymore.");
|
|
is(document.commandDispatcher.focusedElement, treeRoot.target,
|
|
"The root node is still focused.");
|
|
|
|
// Test LEFT on the root node.
|
|
|
|
key("VK_LEFT");
|
|
is(document.commandDispatcher.focusedElement, treeRoot.target,
|
|
"The root node is still focused.");
|
|
|
|
// Test UP on the root node.
|
|
|
|
key("VK_UP");
|
|
is(document.commandDispatcher.focusedElement, treeRoot.target,
|
|
"The root node is still focused.");
|
|
|
|
container.remove();
|
|
});
|