Bug 1423007 - Part 1: Use Async Function in devtools/client/shared/test/browser_treeWidget_keyboard_interaction.js r=jryans

This commit is contained in:
Tooru Fujisawa 2018-01-20 20:40:11 +09:00
Родитель 69535b850f
Коммит fc1e16a541
1 изменённых файлов: 16 добавлений и 16 удалений

Просмотреть файл

@ -11,16 +11,16 @@ const TEST_URI = "data:text/html;charset=utf-8,<head>" +
"ets.css'></head><body><div></div><span></span></body>";
const {TreeWidget} = require("devtools/client/shared/widgets/TreeWidget");
add_task(function* () {
yield addTab("about:blank");
let [host, win, doc] = yield createHost("bottom", TEST_URI);
add_task(async function () {
await addTab("about:blank");
let [host, win, doc] = await createHost("bottom", TEST_URI);
let tree = new TreeWidget(doc.querySelector("div"), {
defaultType: "store"
});
populateTree(tree, doc);
yield testKeyboardInteraction(tree, win);
await testKeyboardInteraction(tree, win);
tree.destroy();
host.destroy();
@ -83,7 +83,7 @@ function click(node) {
/**
* Tests if pressing navigation keys on the tree items does the expected behavior
*/
function* testKeyboardInteraction(tree, win) {
async function testKeyboardInteraction(tree, win) {
info("Testing keyboard interaction with the tree");
let event;
let pass = (e, d, a) => event.resolve([e, d, a]);
@ -93,7 +93,7 @@ function* testKeyboardInteraction(tree, win) {
event = defer();
tree.once("select", pass);
click(node);
yield event.promise;
await event.promise;
node = tree.root.children.firstChild.nextSibling.firstChild;
// node should not have selected class
ok(!node.classList.contains("theme-selected"), "Node should not have selected class");
@ -103,7 +103,7 @@ function* testKeyboardInteraction(tree, win) {
event = defer();
tree.once("select", pass);
EventUtils.sendKey("DOWN", win);
let [name, data, attachment] = yield event.promise;
let [name, data, attachment] = await event.promise;
is(name, "select", "Select event was fired after pressing down");
is(data[0], "level1", "Correct item was selected after pressing down");
ok(!attachment, "null attachment was emitted");
@ -114,7 +114,7 @@ function* testKeyboardInteraction(tree, win) {
event = defer();
tree.once("select", pass);
EventUtils.sendKey("DOWN", win);
[name, data, attachment] = yield event.promise;
[name, data, attachment] = await event.promise;
is(data.length, 2, "Correct level item was selected after second down keypress");
is(data[0], "level1", "Correct parent level");
is(data[1], "level2", "Correct second level");
@ -123,7 +123,7 @@ function* testKeyboardInteraction(tree, win) {
event = defer();
tree.once("select", pass);
EventUtils.sendKey("DOWN", win);
[name, data, attachment] = yield event.promise;
[name, data, attachment] = await event.promise;
is(data.length, 3, "Correct level item was selected after third down keypress");
is(data[0], "level1", "Correct parent level");
is(data[1], "level2", "Correct second level");
@ -133,7 +133,7 @@ function* testKeyboardInteraction(tree, win) {
event = defer();
tree.once("select", pass);
EventUtils.sendKey("DOWN", win);
[name, data, attachment] = yield event.promise;
[name, data, attachment] = await event.promise;
is(data.length, 2, "Correct level item was selected after fourth down keypress");
is(data[0], "level1", "Correct parent level");
is(data[1], "level2-1", "Correct second level");
@ -149,7 +149,7 @@ function* testKeyboardInteraction(tree, win) {
node = tree._selectedLabel;
ok(node.hasAttribute("expanded"), "Item is expanded before left keypress");
EventUtils.sendKey("LEFT", win);
yield event.promise;
await event.promise;
ok(!node.hasAttribute("expanded"), "Item is not expanded after left keypress");
@ -162,7 +162,7 @@ function* testKeyboardInteraction(tree, win) {
node = tree.root.children.firstChild.nextSibling.firstChild;
ok(node.hasAttribute("expanded"), "Parent is expanded");
EventUtils.sendKey("LEFT", win);
[name, data] = yield event.promise;
[name, data] = await event.promise;
is(data.length, 3, "Correct level item was selected after second left keypress");
is(data[0], "level1", "Correct parent level");
is(data[1], "level2", "Correct second level");
@ -175,7 +175,7 @@ function* testKeyboardInteraction(tree, win) {
event = defer();
tree.once("select", pass);
EventUtils.sendKey("DOWN", win);
[name, data, attachment] = yield event.promise;
[name, data, attachment] = await event.promise;
is(data.length, 2, "Correct level item was selected after fifth down keypress");
is(data[0], "level1", "Correct parent level");
is(data[1], "level2-1", "Correct second level");
@ -190,7 +190,7 @@ function* testKeyboardInteraction(tree, win) {
node = tree._selectedLabel;
ok(node.hasAttribute("expanded"), "Item is expanded before left keypress");
EventUtils.sendKey("LEFT", win);
yield event.promise;
await event.promise;
ok(!node.hasAttribute("expanded"), "Item is collapsed after left keypress");
// pressing right should expand this now.
@ -203,7 +203,7 @@ function* testKeyboardInteraction(tree, win) {
node = tree._selectedLabel;
ok(!node.hasAttribute("expanded"), "Item is collapsed before right keypress");
EventUtils.sendKey("RIGHT", win);
yield event.promise;
await event.promise;
ok(node.hasAttribute("expanded"), "Item is expanded after right keypress");
// selecting last item node to test edge navigation case
@ -217,7 +217,7 @@ function* testKeyboardInteraction(tree, win) {
}, {once: true});
info("Pressing down key on last item of the tree");
EventUtils.sendKey("DOWN", win);
yield event.promise;
await event.promise;
ok(tree.isSelected(["level1.1", "level2", "level3"]),
"Last item is still selected after pressing down on last item of the tree");