/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Test that the box model properties list displays the right values // and that it updates when the node's style is changed. const TEST_URI = `
Test Node
`; const res1 = [ { property: "box-sizing", value: "border-box" }, { property: "display", value: "block" }, { property: "float", value: "left" }, { property: "line-height", value: "20px" }, { property: "position", value: "relative" }, { property: "z-index", value: 2 }, ]; const res2 = [ { property: "box-sizing", value: "content-box" }, { property: "display", value: "block" }, { property: "float", value: "right" }, { property: "line-height", value: "10px" }, { property: "position", value: "static" }, { property: "z-index", value: 5 }, ]; add_task(function* () { yield addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); let { inspector, boxmodel, testActor } = yield openLayoutView(); yield selectNode("div", inspector); yield testInitialValues(inspector, boxmodel); yield testChangingValues(inspector, boxmodel, testActor); }); function* testInitialValues(inspector, boxmodel) { info("Test that the initial values of the box model are correct"); let doc = boxmodel.document; for (let { property, value } of res1) { let elt = doc.querySelector(getPropertySelector(property)); is(elt.textContent, value, property + " has the right value."); } } function* testChangingValues(inspector, boxmodel, testActor) { info("Test that changing the document updates the box model"); let doc = boxmodel.document; let onUpdated = waitForUpdate(inspector); yield testActor.setAttribute("div", "style", "box-sizing:content-box;float:right;" + "line-height:10px;position:static;z-index:5;"); yield onUpdated; for (let { property, value } of res2) { let elt = doc.querySelector(getPropertySelector(property)); is(elt.textContent, value, property + " has the right value after style update."); } } function getPropertySelector(propertyName) { return `.boxmodel-properties-wrapper .property-view` + `[data-property-name=${propertyName}] .property-value`; }