/* 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 . */
// Test that jump to definition works in preview popups
"use strict";
const TEST_URL =
"data:text/html," +
encodeURIComponent(``);
const TEST_URL_ONE_LINE =
"data:text/html," +
encodeURIComponent(
``
);
add_task(async function testJumpToDefinition() {
const dbg = await initDebuggerWithAbsoluteURL(TEST_URL, TEST_URL);
invokeInTab("main");
await waitForPaused(dbg);
info("Hovers over 'this' token to display the preview.");
await tryHovering(dbg, 3, 5, "previewPopup");
info("Wait for the 'b' function to be previewed");
await waitForAllElements(dbg, "previewPopupObjectFunction", 1);
info("Click on the function to jump to its location");
await clickElement(dbg, "previewPopupObjectFunctionJumpToDefinition");
await waitForSelectedLocation(dbg, 6, 13);
});
add_task(async function testJumpToDefinitionInPrettyPrintedSource() {
const dbg = await initDebuggerWithAbsoluteURL(
TEST_URL_ONE_LINE,
TEST_URL_ONE_LINE
);
await selectSource(dbg, TEST_URL_ONE_LINE);
await prettyPrint(dbg);
invokeInTab("main");
await waitForPaused(dbg);
info("Hovers over 'this' token to display the preview.");
await tryHovering(dbg, 3, 3, "previewPopup");
info("Wait for the 'b' function to be previewed");
await waitForAllElements(dbg, "previewPopupObjectFunction", 1);
info("Click on the function to jump to its location");
await clickElement(dbg, "previewPopupObjectFunctionJumpToDefinition");
await waitForSelectedLocation(dbg, 6, 11);
});
add_task(async function testJumpToDefinitionOfObjectProperty() {
const dbg = await initDebuggerWithAbsoluteURL(TEST_URL, TEST_URL);
invokeInTab("main");
await waitForPaused(dbg);
info("Hovers over 'o' token to display the preview.");
await tryHovering(dbg, 7, 9, "previewPopup");
info("Wait for the 'b' function to be previewed");
await waitForAllElements(dbg, "previewPopupObjectFunction", 1);
info("Click on the function to jump to its location");
await clickElement(dbg, "previewPopupObjectFunctionJumpToDefinition");
await waitForSelectedLocation(dbg, 6, 13);
});