Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Check that the DOM panel works as expected when a specific frame is selected in the
// iframe picker.
<h1>top_level</h1>
add_task(async function () {
const { panel } = await addTestTab(TEST_URL);
const toolbox = panel._toolbox;
info("Wait until the iframe picker button is visible");
try {
await waitFor(() => toolbox.doc.getElementById("command-button-frames"));
} catch (e) {
if (isFissionEnabled() && !isEveryFrameTargetEnabled()) {
ok(
true,
"Remote frames are not displayed in iframe picker if Fission is enabled but EFT is not"
);
return;
}
throw e;
}
info("Check `document` property when no specific frame is focused");
let documentPropertyValue = getDocumentPropertyValue(panel);
ok(
documentPropertyValue.startsWith("HTMLDocument https://example.com"),
`Got expected "document" value (${documentPropertyValue})`
);
info(
"Select the frame in the iframe picker and check that the document property is updated"
);
// Wait for the DOM panel to refresh.
const store = getReduxStoreFromPanel(panel);
let onPropertiesFetched = waitForDispatch(store, "FETCH_PROPERTIES");
const exampleOrgFrame = toolbox.doc.querySelector(
"#toolbox-frame-menu .menuitem:last-child .command"
);
exampleOrgFrame.click();
await onPropertiesFetched;
documentPropertyValue = getDocumentPropertyValue(panel);
ok(
documentPropertyValue.startsWith("HTMLDocument https://example.org"),
`Got expected "document" value (${documentPropertyValue})`
);
info(
"Select the top-level frame and check that the document property is updated"
);
onPropertiesFetched = waitForDispatch(store, "FETCH_PROPERTIES");
const exampleComFrame = toolbox.doc.querySelector(
"#toolbox-frame-menu .menuitem:first-child .command"
);
exampleComFrame.click();
await onPropertiesFetched;
documentPropertyValue = getDocumentPropertyValue(panel);
ok(
documentPropertyValue.startsWith("HTMLDocument https://example.com"),
`Got expected "document" value (${documentPropertyValue})`
);
});
function getDocumentPropertyValue(panel) {
return getRowByLabel(panel, "document").querySelector("td.treeValueCell")
.textContent;
}