diff options
Diffstat (limited to 'toolkit/devtools/inspector/test/browser_inspector_highlighter-hover_03.js')
-rw-r--r-- | toolkit/devtools/inspector/test/browser_inspector_highlighter-hover_03.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/toolkit/devtools/inspector/test/browser_inspector_highlighter-hover_03.js b/toolkit/devtools/inspector/test/browser_inspector_highlighter-hover_03.js new file mode 100644 index 000000000..3c359f6c9 --- /dev/null +++ b/toolkit/devtools/inspector/test/browser_inspector_highlighter-hover_03.js @@ -0,0 +1,55 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test that once a node has been hovered over and marked as such, if it is +// navigated away using the keyboard, the highlighter moves to the new node, and +// if it is then navigated back to, it is briefly highlighted again + +const TEST_PAGE = "data:text/html;charset=utf-8," + + "<p id=\"one\">one</p><p id=\"two\">two</p>"; + +add_task(function*() { + let {inspector} = yield openInspectorForURL(TEST_PAGE); + + info("Making sure the markup-view frame is focused"); + inspector.markup._frame.focus(); + + // Mock the highlighter to easily track which node gets highlighted. + // We don't need to test here that the highlighter is actually visible, we + // just care about whether the markup-view asks it to be shown + let highlightedNode = null; + inspector.toolbox._highlighter.showBoxModel = function(nodeFront) { + highlightedNode = nodeFront; + return promise.resolve(); + }; + inspector.toolbox._highlighter.hideBoxModel = function() { + return promise.resolve(); + }; + + function* isHighlighting(selector, desc) { + let nodeFront = yield getNodeFront(selector, inspector); + is(highlightedNode, nodeFront, desc); + } + + info("Hover over <p#one> line in the markup-view"); + yield hoverContainer("#one", inspector); + yield isHighlighting("#one", "<p#one> is highlighted"); + + info("Navigate to <p#two> with the keyboard"); + let onUpdated = inspector.once("inspector-updated"); + EventUtils.synthesizeKey("VK_DOWN", {}); + yield onUpdated; + onUpdated = inspector.once("inspector-updated"); + EventUtils.synthesizeKey("VK_DOWN", {}); + yield onUpdated; + yield isHighlighting("#two", "<p#two> is highlighted"); + + info("Navigate back to <p#one> with the keyboard"); + onUpdated = inspector.once("inspector-updated"); + EventUtils.synthesizeKey("VK_UP", {}); + yield onUpdated; + yield isHighlighting("#one", "<p#one> is highlighted again"); +}); |