| Index: third_party/WebKit/LayoutTests/svg/dom/script-tests/SVGLength-viewport-units.js
|
| diff --git a/third_party/WebKit/LayoutTests/svg/dom/script-tests/SVGLength-viewport-units.js b/third_party/WebKit/LayoutTests/svg/dom/script-tests/SVGLength-viewport-units.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..98453b3e99f2e6827648e73ffc26e5ccaec01099
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/svg/dom/script-tests/SVGLength-viewport-units.js
|
| @@ -0,0 +1,69 @@
|
| +description("This test checks the Viewport Units for SVGLength");
|
| +
|
| +var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
| +document.body.appendChild(svgElement);
|
| +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);
|
| +}
|
| +
|
| +debug("");
|
| +debug("Tests the vw unit");
|
| +svgElement.setAttribute("width", "10vw");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "10 * viewportWidthPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.valueInSpecifiedUnits", "10");
|
| +shouldThrow("svgElement.width.baseVal.valueAsString = '2vw'");
|
| +shouldNotThrow("svgElement.width.baseVal.valueInSpecifiedUnits = '2'");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "2 * viewportWidthPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.unitType", "SVGLength.SVG_LENGTHTYPE_UNKNOWN");
|
| +
|
| +debug("");
|
| +debug("Tests the vh unit");
|
| +svgElement.setAttribute("width", "10vh");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "10 * viewportHeightPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.valueInSpecifiedUnits", "10");
|
| +shouldThrow("svgElement.width.baseVal.valueAsString = '2vh'");
|
| +shouldNotThrow("svgElement.width.baseVal.valueInSpecifiedUnits = '2'");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "2 * viewportHeightPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.unitType", "SVGLength.SVG_LENGTHTYPE_UNKNOWN");
|
| +
|
| +debug("");
|
| +debug("Tests the vmin unit");
|
| +svgElement.setAttribute("width", "10vmin");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "10 * viewportMinPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.valueInSpecifiedUnits", "10");
|
| +shouldThrow("svgElement.width.baseVal.valueAsString = '2vmin'");
|
| +shouldNotThrow("svgElement.width.baseVal.valueInSpecifiedUnits = '2'");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "2 * viewportMinPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.unitType", "SVGLength.SVG_LENGTHTYPE_UNKNOWN");
|
| +
|
| +debug("");
|
| +debug("Tests the vmax unit");
|
| +svgElement.setAttribute("width", "10vmax");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "10 * viewportMaxPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.valueInSpecifiedUnits", "10");
|
| +shouldThrow("svgElement.width.baseVal.valueAsString = '2vmax'");
|
| +shouldNotThrow("svgElement.width.baseVal.valueInSpecifiedUnits = '2'");
|
| +shouldBeCloseEnough("svgElement.width.baseVal.value", "2 * viewportMaxPercent()", EPSILON);
|
| +shouldBe("svgElement.width.baseVal.unitType", "SVGLength.SVG_LENGTHTYPE_UNKNOWN");
|
| +
|
| +successfullyParsed = true;
|
|
|