| <!DOCTYPE HTML> |
| <style> |
| p { width:200px; height:120px; } |
| .simple-all { padding: calc(13px + 12px); } |
| .simple-left { padding-left: calc(13px + 12px); } |
| .simple-right { padding-right: calc(13px + 12px); } |
| .simple-top { padding-top: calc(13px + 12px); } |
| .simple-bottom { padding-bottom: calc(13px + 12px); } |
| .percent-all { padding: calc(10% - 5px); } |
| .percent-left { padding-left: calc(10% - 5px); } |
| .percent-right { padding-right: calc(10% - 5px); } |
| .percent-top { padding-top: calc(10% - 5px); } |
| .percent-bottom { padding-bottom: calc(10% - 5px); } |
| </style> |
| |
| <p class="simple-all">This element should have an overall padding of 25 pixels.</p> |
| <p class="simple-left">This element should have a left padding of 25 pixels.</p> |
| <p class="simple-right">This element should have a right padding of 25 pixels.</p> |
| <p class="simple-top">This element should have a top padding of 25 pixels.</p> |
| <p class="simple-bottom">This element should have a bottom padding of 25 pixels.</p> |
| |
| <div style="width: 300px; background-color: cornsilk;"> |
| <p class="percent-all">This element should have an overall padding of 25 pixels (10% of parent width of 300px minus 5px).</p> |
| <p class="percent-left">This element should have a left padding of 25 pixels (10% of parent width of 300px minus 5px).</p> |
| <p class="percent-right">This element should have a right padding of 25 pixels (10% of parent width of 300px minus 5px).</p> |
| <p class="percent-top">This element should have a top padding of 25 pixels (10% of parent width of 300px minus 5px).</p> |
| <p class="percent-bottom">This element should have a bottom padding of 25 pixels (10% of parent width of 300px minus 5px).</p> |
| </div> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var innerWidth = 200; |
| var innerHeight = 120; |
| var padding = 25; |
| |
| var tests = document.getElementsByTagName("p"); |
| for (var i = 0; i < tests.length; ++i) { |
| var element = tests[i]; |
| var width = element.offsetWidth; |
| var height = element.offsetHeight; |
| |
| var expectedWidth = innerWidth; |
| var expectedHeight = innerHeight; |
| |
| switch (element.className.split("-")[1]) { |
| case "all": |
| expectedWidth += 2 * padding; |
| expectedHeight += 2 * padding; |
| break; |
| case "top": |
| case "bottom": |
| expectedHeight += padding; |
| break; |
| case "left": |
| case "right": |
| expectedWidth += padding; |
| break; |
| } |
| |
| var error = []; |
| if (width != expectedWidth) |
| error.push("wrong width"); |
| if (height != expectedHeight) |
| error.push("wrong height"); |
| |
| results = document.getElementById("results"); |
| if (error == "") { |
| element.style.backgroundColor = "green"; |
| element.innerHTML += " => PASS"; |
| } else { |
| element.style.backgroundColor = "red"; |
| element.innerHTML += " => FAIL: " + error.join(", "); |
| } |
| } |
| </script> |