Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE HTML>
<title>Use of SVGAnimatedEnumeration within SVGGradientElement</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(function() {
// This test checks the use of SVGAnimatedEnumeration within SVGGradientElement.
var gradientElement = document.createElementNS("http://www.w3.org/2000/svg", "linearGradient");
gradientElement.setAttribute("gradientUnits", "userSpaceOnUse");
gradientElement.setAttribute("spreadMethod", "pad");
// gradientUnits
// Check initial 'gradientUnits' value.
assert_true(gradientElement.gradientUnits instanceof SVGAnimatedEnumeration);
assert_equals(typeof(gradientElement.gradientUnits.baseVal), "number");
assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
// Switch to 'objectBoundingBox'.
gradientElement.gradientUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
// Try setting invalid values.
assert_throws_js(TypeError, function() { gradientElement.gradientUnits.baseVal = 3; });
assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
assert_throws_js(TypeError, function() { gradientElement.gradientUnits.baseVal = -1; });
assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
assert_throws_js(TypeError, function() { gradientElement.gradientUnits.baseVal = 0; });
assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
assert_equals(gradientElement.getAttribute('gradientUnits'), "objectBoundingBox");
// Switch to 'userSpaceOnUse'.
gradientElement.gradientUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE;
assert_equals(gradientElement.gradientUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE);
assert_equals(gradientElement.getAttribute('gradientUnits'), "userSpaceOnUse");
// spreadMethod
// Check initial 'spreadMethod' value.
assert_true(gradientElement.spreadMethod instanceof SVGAnimatedEnumeration);
assert_equals(typeof(gradientElement.spreadMethod.baseVal), "number");
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_PAD);
// Switch to 'reflect' value.
gradientElement.spreadMethod.baseVal = SVGGradientElement.SVG_SPREADMETHOD_REFLECT;
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REFLECT);
assert_equals(gradientElement.getAttribute('spreadMethod'), "reflect");
// Switch to 'repeat' value.
gradientElement.spreadMethod.baseVal = SVGGradientElement.SVG_SPREADMETHOD_REPEAT;
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
// Try setting invalid values.
assert_throws_js(TypeError, function() { gradientElement.spreadMethod.baseVal = 4; });
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
assert_throws_js(TypeError, function() { gradientElement.spreadMethod.baseVal = -1; });
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
assert_throws_js(TypeError, function() { gradientElement.spreadMethod.baseVal = 0; });
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT);
assert_equals(gradientElement.getAttribute('spreadMethod'), "repeat");
// Switch to 'pad'.
gradientElement.spreadMethod.baseVal = SVGGradientElement.SVG_SPREADMETHOD_PAD;
assert_equals(gradientElement.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_PAD);
assert_equals(gradientElement.getAttribute('spreadMethod'), "pad");
});
</script>