| <!DOCTYPE HTML> |
| <script src="../../resources/js-test-pre.js"></script> |
| <style> |
| div { display: inline-block; } |
| p { width: 200px; height: 120px; margin: 0px; } |
| #simple-all { margin: calc(13px + 12px); } |
| #simple-left { margin-left: calc(13px + 12px); } |
| #simple-right { margin-right: calc(13px + 12px); } |
| #simple-top { margin-top: calc(13px + 12px); } |
| #simple-bottom { margin-bottom: calc(13px + 12px); } |
| #percent-all { margin: calc(10% - 5px); } |
| #percent-left { margin-left: calc(10% - 5px); } |
| #percent-right { margin-right: calc(10% - 5px); } |
| #percent-top { margin-top: calc(10% - 5px); } |
| #percent-bottom { margin-bottom: calc(10% - 5px); } |
| </style> |
| |
| <div id="test-container"> |
| <p id="simple-all">This element should have an overall margin of 25 pixels.</p><br/> |
| <p id="simple-left">This element should have a left margin of 25 pixels.</p><br/> |
| <p id="simple-right">This element should have a right margin of 25 pixels.</p><br/> |
| <p id="simple-top">This element should have a top margin of 25 pixels.</p><br/> |
| <p id="simple-bottom">This element should have a bottom margin of 25 pixels.</p><br/> |
| <div id="wrapper" style="width: 300px; background-color: cornsilk; display: block;"> |
| <p id="percent-all">This element should have an overall margin of 25 pixels (10% of parent width of 300px minus 5px).</p><br/> |
| <p id="percent-left">This element should have a left margin of 25 pixels (10% of parent width of 300px minus 5px).</p><br/> |
| <p id="percent-right">This element should have a right margin of 25 pixels (10% of parent width of 300px minus 5px).</p><br/> |
| <p id="percent-top">This element should have a top margin of 25 pixels (10% of parent width of 300px minus 5px).</p><br/> |
| <p id="percent-bottom">This element should have a bottom margin of 25 pixels (10% of parent width of 300px minus 5px).</p><br/> |
| </div> |
| </div> |
| <script> |
| |
| function computedMarginLeft(id) |
| { |
| return getComputedStyle(document.getElementById(id), null).marginLeft; |
| } |
| function computedMarginRight(id) |
| { |
| return getComputedStyle(document.getElementById(id), null).marginRight; |
| } |
| function computedMarginTop(id) |
| { |
| return getComputedStyle(document.getElementById(id), null).marginTop; |
| } |
| function computedMarginBottom(id) |
| { |
| return getComputedStyle(document.getElementById(id), null).marginBottom; |
| } |
| |
| var innerWidth = 200; |
| var innerHeight = 120; |
| var margin = "25px"; |
| var noMargin = "0px"; |
| |
| var tests = document.getElementsByTagName("p"); |
| for (var i = 0; i < tests.length; ++i) { |
| var innerElement = tests[i] |
| var expectedLeft = noMargin; |
| var expectedTop = noMargin; |
| var expectedRight = noMargin; |
| var expectedBottom = noMargin; |
| switch (innerElement.id.split("-")[1]) { |
| case "all": |
| expectedLeft = margin; |
| expectedTop = margin; |
| expectedRight = margin; |
| expectedBottom = margin; |
| break; |
| case "top": |
| expectedTop = margin; |
| break; |
| case "bottom": |
| expectedBottom = margin; |
| break; |
| case "left": |
| expectedLeft = margin; |
| break; |
| case "right": |
| expectedRight = margin; |
| break; |
| } |
| |
| shouldBeEqualToString('computedMarginLeft("' + innerElement.id + '")', expectedLeft); |
| shouldBeEqualToString('computedMarginTop("' + innerElement.id + '")', expectedTop); |
| shouldBeEqualToString('computedMarginRight("' + innerElement.id + '")', expectedRight); |
| shouldBeEqualToString('computedMarginBottom("' + innerElement.id + '")', expectedBottom); |
| } |
| |
| if (window.testRunner) { |
| var testContainer = document.getElementById("test-container"); |
| if (testContainer) |
| document.body.removeChild(testContainer); |
| } |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |