blob: 18bf70b37e73b54481d86157b75e48b8d11dd743 [file] [log] [blame]
<!DOCTYPE html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<div id="testDiv" style="position: absolute;"></div>
<pre id="testPre"><pre>
<script>
description("Tests that negative calc() values are properly clamped when needed.");
var testDiv = document.getElementById("testDiv");
var testPre = document.getElementById("testPre");
shouldBeEmptyString("testDiv.style['width']");
evalAndLog("testDiv.style['width'] = '100px'");
evalAndLog("testDiv.style['width'] = 'calc(5px - 10px)'");
shouldBeEqualToString("testDiv.style['width']", "calc(-5px)");
shouldBeEqualToString("window.getComputedStyle(testDiv).getPropertyValue('width')", "0px");
evalAndLog("testDiv.style['width'] = '100px'");
evalAndLog("testDiv.style['width'] = 'calc(10% - 100px)'");
shouldBeEqualToString("testDiv.style['width']", "calc(10% - 100px)");
shouldBeEqualToString("window.getComputedStyle(testDiv).getPropertyValue('width')", "0px");
evalAndLog("testDiv.style['line-height'] = '10%'");
evalAndLog("testDiv.style['line-height'] = 'calc(10% - 20%)'");
shouldBeEqualToString("testDiv.style['line-height']", "calc(-10%)");
shouldBeEqualToString("window.getComputedStyle(testDiv).getPropertyValue('line-height')", "0px");
evalAndLog("testPre.style['tab-size'] = '8'");
evalAndLog("testPre.style['tab-size'] = 'calc(2 - 4)'");
shouldBeEqualToString("testPre.style['tab-size']", "8");
shouldBeEqualToString("window.getComputedStyle(testPre).getPropertyValue('tab-size')", "8");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>