Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// Test that clicking on a node in the markup view or picking a node with the node picker
// shows a highlighter which is automatically hidden after a delay.
add_task(async function () {
info("Loading the test document and opening the inspector");
const { inspector, toolbox, highlighterTestFront } =
await openInspectorForURL(
"data:text/html;charset=utf-8,<p id='one'>TEST 1</p><p id='two'>TEST 2</p>"
);
const { waitForHighlighterTypeShown, waitForHighlighterTypeHidden } =
getHighlighterTestHelpers(inspector);
// While in test mode, the configuration to automatically hide Box Model Highlighters
// after a delay is ignored to prevent intermittent test failures from race conditions.
// Restore this behavior just for this test because it is explicitly checked.
const HIGHLIGHTER_AUTOHIDE_TIMER = inspector.HIGHLIGHTER_AUTOHIDE_TIMER;
inspector.HIGHLIGHTER_AUTOHIDE_TIMER = 1000;
registerCleanupFunction(() => {
// Restore the value to avoid impacting other tests.
inspector.HIGHLIGHTER_AUTOHIDE_TIMER = HIGHLIGHTER_AUTOHIDE_TIMER;
});
info(
"Check that selecting an element in the markup-view shows the highlighter and auto-hides it"
);
let onHighlighterShown = waitForHighlighterTypeShown(
inspector.highlighters.TYPES.BOXMODEL
);
const onHighlighterHidden = waitForHighlighterTypeHidden(
inspector.highlighters.TYPES.BOXMODEL
);
let delay;
const start = Date.now();
onHighlighterHidden.then(() => {
delay = Date.now() - start;
});
await clickContainer("#one", inspector);
info("Wait for Box Model Highlighter shown");
await onHighlighterShown;
info("Wait for Box Model Highlighter hidden");
await onHighlighterHidden;
ok(true, "Highlighter was shown and hidden");
Assert.greaterOrEqual(
delay,
inspector.HIGHLIGHTER_AUTOHIDE_TIMER,
`Highlighter was hidden after expected delay (${delay}ms)`
);
info("Check that picking a node hides the highlighter right away");
onHighlighterShown = waitForHighlighterTypeShown(
inspector.highlighters.TYPES.BOXMODEL
);
await startPicker(toolbox);
await hoverElement(inspector, "#two", 0, 0);
await onHighlighterShown;
ok(
await highlighterTestFront.isHighlighting(),
"Highlighter was shown when hovering the node"
);
await pickElement(inspector, "#two", 0, 0);
is(
await highlighterTestFront.isHighlighting(),
false,
"Highlighter gets hidden without delay after picking a node"
);
});