Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test that the box model view continues to work after a page navigation and that
// it also works after going back
const IFRAME1 = URL_ROOT_SSL + "doc_boxmodel_iframe1.html";
const IFRAME2 = URL_ROOT_SSL + "doc_boxmodel_iframe2.html";
add_task(async function () {
const tab = await addTab(IFRAME1);
const browser = tab.linkedBrowser;
const { inspector, boxmodel } = await openLayoutView();
await testFirstPage(inspector, boxmodel, browser);
info("Navigate to the second page");
let onMarkupLoaded = waitForMarkupLoaded(inspector);
await navigateTo(IFRAME2);
await onMarkupLoaded;
await testSecondPage(inspector, boxmodel, browser);
info("Go back to the first page");
onMarkupLoaded = waitForMarkupLoaded(inspector);
gBrowser.goBack();
await onMarkupLoaded;
await testBackToFirstPage(inspector, boxmodel, browser);
});
async function testFirstPage(inspector, boxmodel, browser) {
info("Test that the box model view works on the first page");
await selectNode("p", inspector);
info("Checking that the box model view shows the right value");
const paddingElt = boxmodel.document.querySelector(
".boxmodel-padding.boxmodel-top > span"
);
is(paddingElt.textContent, "50");
info("Listening for box model view changes and modifying the padding");
const onUpdated = waitForUpdate(inspector);
await setStyle(browser, "p", "padding", "20px");
await onUpdated;
ok(true, "Box model view got updated");
info("Checking that the box model view shows the right value after update");
is(paddingElt.textContent, "20");
}
async function testSecondPage(inspector, boxmodel, browser) {
info("Test that the box model view works on the second page");
await selectNode("p", inspector);
info("Checking that the box model view shows the right value");
const sizeElt = boxmodel.document.querySelector(".boxmodel-size > span");
is(sizeElt.textContent, "100" + "\u00D7" + "100");
info("Listening for box model view changes and modifying the size");
const onUpdated = waitForUpdate(inspector);
await setStyle(browser, "p", "width", "200px");
await onUpdated;
ok(true, "Box model view got updated");
info("Checking that the box model view shows the right value after update");
is(sizeElt.textContent, "200" + "\u00D7" + "100");
}
async function testBackToFirstPage(inspector, boxmodel, browser) {
info("Test that the box model view works on the first page after going back");
await selectNode("p", inspector);
info(
"Checking that the box model view shows the right value, which is the" +
"modified value from step one because of the bfcache"
);
const paddingElt = boxmodel.document.querySelector(
".boxmodel-padding.boxmodel-top > span"
);
is(paddingElt.textContent, "20");
info("Listening for box model view changes and modifying the padding");
const onUpdated = waitForUpdate(inspector);
await setStyle(browser, "p", "padding", "100px");
await onUpdated;
ok(true, "Box model view got updated");
info("Checking that the box model view shows the right value after update");
is(paddingElt.textContent, "100");
}