blob: d6ee2c3732daa383447018fadc7818345edaf9fc [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<svg width="1" height="1" visibility="hidden">
</svg>
<script>
var svgElement = document.querySelector("svg");
var viewportWidth = window.innerWidth;
var viewportHeight = window.innerHeight;
var EPSILON = Math.pow(2, -8);
function viewportWidthPercent()
{
return (viewportWidth / 100);
}
function viewportHeightPercent()
{
return (viewportHeight / 100);
}
function viewportMinPercent()
{
return (Math.min(viewportWidth, viewportHeight) / 100);
}
function viewportMaxPercent()
{
return (Math.max(viewportWidth, viewportHeight) / 100);
}
test(function() {
svgElement.setAttribute("width", "10vw");
assert_approx_equals(svgElement.width.baseVal.value, 10 * viewportWidthPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 10);
svgElement.width.baseVal.valueAsString = '2vw';
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 2);
assert_approx_equals(svgElement.width.baseVal.value, 2 * viewportWidthPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_UNKNOWN);
}, "Tests vw unit");
test(function() {
svgElement.setAttribute("width", "10vh");
assert_approx_equals(svgElement.width.baseVal.value, 10 * viewportHeightPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 10);
svgElement.width.baseVal.valueAsString = '2vh';
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 2);
assert_approx_equals(svgElement.width.baseVal.value, 2 * viewportHeightPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_UNKNOWN);
}, "Tests vh unit");
test(function() {
svgElement.setAttribute("width", "10vmin");
assert_approx_equals(svgElement.width.baseVal.value, 10 * viewportMinPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 10);
svgElement.width.baseVal.valueAsString = '2vmin';
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 2);
assert_approx_equals(svgElement.width.baseVal.value, 2 * viewportMinPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_UNKNOWN);
}, "Tests vmin unit");
test(function() {
svgElement.setAttribute("width", "10vmax");
assert_approx_equals(svgElement.width.baseVal.value, 10 * viewportMaxPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 10);
svgElement.width.baseVal.valueAsString = '2vmax';
assert_equals(svgElement.width.baseVal.valueInSpecifiedUnits, 2);
assert_approx_equals(svgElement.width.baseVal.value, 2 * viewportMaxPercent(), EPSILON);
assert_equals(svgElement.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_UNKNOWN);
}, "Tests vmax unit");
</script>