Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Errors
- This test failed 4 times in the preceding 30 days. quicksearch this test
- Manifest: devtools/client/dom/test/browser.toml
/* 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(
`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(
`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(
`Got expected "document" value (${documentPropertyValue})`
);
});
function getDocumentPropertyValue(panel) {
return getRowByLabel(panel, "document").querySelector("td.treeValueCell")
.textContent;
}