/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const EXAMPLE_COM_URI =
"https://example.com/document-builder.sjs?html=
com";
const EXAMPLE_ORG_URI =
"https://example.org/document-builder.sjs?html=
org";
add_task(async function () {
const tab = await addTab(EXAMPLE_COM_URI);
const toolbox = await openToolboxForTab(tab, "inspector");
const comNode = await getNodeBySelector(toolbox, "#com");
ok(comNode, "Found node for the COM page");
info("Navigate to the ORG page");
await navigateTo(EXAMPLE_ORG_URI);
const orgNode = await getNodeBySelector(toolbox, "#org");
ok(orgNode, "Found node for the ORG page");
info("Reload the ORG page");
await navigateTo(EXAMPLE_ORG_URI);
const orgNodeAfterReload = await getNodeBySelector(toolbox, "#org");
ok(orgNodeAfterReload, "Found node for the ORG page after reload");
isnot(orgNode, orgNodeAfterReload, "The new node is different");
info("Navigate back to the COM page");
await navigateTo(EXAMPLE_COM_URI);
const comNodeAfterNavigation = await getNodeBySelector(toolbox, "#com");
ok(comNodeAfterNavigation, "Found node for the COM page after navigation");
info("Navigate to about:blank");
await navigateTo("about:blank");
const blankBodyAfterNavigation = await getNodeBySelector(toolbox, "body");
ok(
blankBodyAfterNavigation,
"Found node for the about:blank page after navigation"
);
info("Navigate to about:robots");
await navigateTo("about:robots");
const aboutRobotsAfterNavigation = await getNodeBySelector(
toolbox,
"div.container"
);
ok(
aboutRobotsAfterNavigation,
"Found node for the about:robots page after navigation"
);
});
async function getNodeBySelector(toolbox, selector) {
const inspector = await toolbox.selectTool("inspector");
return inspector.walker.querySelector(inspector.walker.rootNode, selector);
}