Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* vim: set ts=2 et sw=2 tw=80: */
2 /* Any copyright is dedicated to the Public Domain.
3 http://creativecommons.org/publicdomain/zero/1.0/ */
5 "use strict";
7 // Test that the markup-view nodes can be navigated to with the keyboard
9 const TEST_URL = TEST_URL_ROOT + "doc_markup_navigation.html";
10 const TEST_DATA = [
11 ["pageup", "*doctype*"],
12 ["down", "html"],
13 ["down", "head"],
14 ["down", "body"],
15 ["down", "node0"],
16 ["right", "node0"],
17 ["down", "node1"],
18 ["down", "node2"],
19 ["down", "node3"],
20 ["down", "*comment*"],
21 ["down", "node4"],
22 ["right", "node4"],
23 ["down", "*text*"],
24 ["down", "node5"],
25 ["down", "node6"],
26 ["down", "*comment*"],
27 ["down" , "node7"],
28 ["right", "node7"],
29 ["down", "*text*"],
30 ["down", "node8"],
31 ["left", "node7"],
32 ["left", "node7"],
33 ["right", "node7"],
34 ["right", "*text*"],
35 ["down", "node8"],
36 ["right", "node8"],
37 ["left", "node8"],
38 ["down", "node9"],
39 ["down", "node10"],
40 ["down", "node11"],
41 ["down", "node12"],
42 ["right", "node12"],
43 ["down", "*text*"],
44 ["down", "node13"],
45 ["down", "node14"],
46 ["down", "node15"],
47 ["down", "node15"],
48 ["down", "node15"],
49 ["up", "node14"],
50 ["up", "node13"],
51 ["up", "*text*"],
52 ["up", "node12"],
53 ["left", "node12"],
54 ["down", "node14"],
55 ["home", "*doctype*"],
56 ["pagedown", "*text*"],
57 ["down", "node5"],
58 ["down", "node6"],
59 ["down", "*comment*"],
60 ["down", "node7"],
61 ["left", "node7"],
62 ["down", "node9"],
63 ["down", "node10"],
64 ["pageup", "node2"],
65 ["pageup", "*doctype*"],
66 ["down", "html"],
67 ["left", "html"],
68 ["down", "html"]
69 ];
71 let test = asyncTest(function*() {
72 let {inspector} = yield addTab(TEST_URL).then(openInspector);
74 info("Making sure the markup-view frame is focused");
75 inspector.markup._frame.focus();
77 info("Starting to iterate through the test data");
78 for (let [key, className] of TEST_DATA) {
79 info("Testing step: " + key + " to navigate to " + className);
80 pressKey(key);
82 info("Making sure markup-view children get updated");
83 yield waitForChildrenUpdated(inspector);
85 info("Checking the right node is selected");
86 checkSelectedNode(key, className, inspector);
87 }
88 });
90 function pressKey(key) {
91 switch(key) {
92 case "right":
93 EventUtils.synthesizeKey("VK_RIGHT", {});
94 break;
95 case "down":
96 EventUtils.synthesizeKey("VK_DOWN", {});
97 break;
98 case "left":
99 EventUtils.synthesizeKey("VK_LEFT", {});
100 break;
101 case "up":
102 EventUtils.synthesizeKey("VK_UP", {});
103 break;
104 case "pageup":
105 EventUtils.synthesizeKey("VK_PAGE_UP", {});
106 break;
107 case "pagedown":
108 EventUtils.synthesizeKey("VK_PAGE_DOWN", {});
109 break;
110 case "home":
111 EventUtils.synthesizeKey("VK_HOME", {});
112 break;
113 }
114 }
116 function checkSelectedNode(key, className, inspector) {
117 let node = inspector.selection.node;
119 if (className == "*comment*") {
120 is(node.nodeType, Node.COMMENT_NODE, "Found a comment after pressing " + key);
121 } else if (className == "*text*") {
122 is(node.nodeType, Node.TEXT_NODE, "Found text after pressing " + key);
123 } else if (className == "*doctype*") {
124 is(node.nodeType, Node.DOCUMENT_TYPE_NODE, "Found the doctype after pressing " + key);
125 } else {
126 is(node.className, className, "Found node: " + className + " after pressing " + key);
127 }
128 }