5 <title>Test for Bug
1175040 - PageStyleActor.getLayout
</title>
6 <script src=
"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
7 <link rel=
"stylesheet" type=
"text/css" href=
"chrome://mochikit/content/tests/SimpleTest/test.css">
8 <script type=
"application/javascript" src=
"inspector-helpers.js"></script>
9 <script type=
"application/javascript">
12 window.onload = function() {
13 SimpleTest.waitForExplicitFinish();
20 addTest(async function() {
21 const url = document.getElementById(
"inspectorContent").href;
22 const { target } = await attachURL(url);
23 const inspector = await target.getFront(
"inspector");
24 gWalker = inspector.walker;
25 gStyles = await inspector.getPageStyle();
30 ok(gStyles.getLayout,
"The PageStyleActor has a getLayout method");
34 addAsyncTest(async function() {
35 const node = await gWalker.querySelector(gWalker.rootNode,
"#layout-element");
36 const layout = await gStyles.getLayout(node, {});
38 const properties = [
"width",
"height",
39 "margin-top",
"margin-right",
"margin-bottom",
40 "margin-left",
"padding-top",
"padding-right",
41 "padding-bottom",
"padding-left",
"border-top-width",
42 "border-right-width",
"border-bottom-width",
43 "border-left-width",
"z-index",
"box-sizing",
"display",
45 for (const prop of properties) {
46 ok((prop in layout),
"The layout object returned has " + prop);
52 addAsyncTest(async function() {
53 const node = await gWalker.querySelector(gWalker.rootNode,
"#layout-element");
54 const layout = await gStyles.getLayout(node, {});
57 "box-sizing":
"border-box",
58 "position":
"absolute",
64 "margin-right":
"20px",
65 "margin-bottom":
"30px",
69 for (const name in expected) {
70 is(layout[name], expected[name],
"The " + name +
" property is correct");
76 addAsyncTest(async function() {
77 const node = await gWalker.querySelector(gWalker.rootNode,
78 "#layout-auto-margin-element");
80 let layout = await gStyles.getLayout(node, {});
81 ok(!(
"autoMargins" in layout),
82 "By default, getLayout doesn't return auto margins");
84 layout = await gStyles.getLayout(node, {autoMargins: true});
85 ok((
"autoMargins" in layout),
86 "getLayout does return auto margins when asked to");
87 is(layout.autoMargins.left,
"auto",
"The left margin is auto");
88 is(layout.autoMargins.right,
"auto",
"The right margin is auto");
89 ok(!layout.autoMargins.bottom,
"The bottom margin is not auto");
90 ok(!layout.autoMargins.top,
"The top margin is not auto");
96 gStyles = gWalker = null;
103 <a target=
"_blank" href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=1175040">Mozilla Bug
1175040</a>
104 <a id=
"inspectorContent" target=
"_blank" href=
"inspector-styles-data.html">Test Document
</a>
106 <div id=
"content" style=
"display: none"></div>