browser/devtools/markupview/test/browser_markupview_navigation.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

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 }

mercurial