Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE HTML>
<title>Use of SVGAnimatedEnumeration within SVGFEDisplacementMapElement</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(function() {
// This test checks the use of SVGAnimatedEnumeration within SVGFEDisplacementMapElement.
var feDisplacementMapElement = document.createElementNS("http://www.w3.org/2000/svg", "feDisplacementMap");
feDisplacementMapElement.setAttribute("xChannelSelector", "R");
feDisplacementMapElement.setAttribute("yChannelSelector", "R");
// xChannelSelector
// Check initial 'xChannelSelector' value.
assert_true(feDisplacementMapElement.xChannelSelector instanceof SVGAnimatedEnumeration);
assert_equals(typeof(feDisplacementMapElement.xChannelSelector.baseVal), "number");
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_R);
// Switch to 'G'.
feDisplacementMapElement.xChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_G;
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_G);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "G");
// Switch to 'B'.
feDisplacementMapElement.xChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_B;
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "B");
// Switch to 'A'.
feDisplacementMapElement.xChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_A;
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
// Try setting invalid values.
assert_throws_js(TypeError, function() { feDisplacementMapElement.xChannelSelector.baseVal = 5; });
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
assert_throws_js(TypeError, function() { feDisplacementMapElement.xChannelSelector.baseVal = -1; });
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
assert_throws_js(TypeError, function() { feDisplacementMapElement.xChannelSelector.baseVal = 0; });
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "A");
// Switch to 'R'.
feDisplacementMapElement.xChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_R;
assert_equals(feDisplacementMapElement.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_R);
assert_equals(feDisplacementMapElement.getAttribute('xChannelSelector'), "R");
// yChannelSelector
// Check initial 'yChannelSelector' value.
assert_true(feDisplacementMapElement.yChannelSelector instanceof SVGAnimatedEnumeration);
assert_equals(typeof(feDisplacementMapElement.yChannelSelector.baseVal), "number");
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_R);
// Switch to 'G'.
feDisplacementMapElement.yChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_G;
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_G);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "G");
// Switch to 'B'.
feDisplacementMapElement.yChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_B;
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "B");
// Switch to 'A'.
feDisplacementMapElement.yChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_A;
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
// Try setting invalid values.
assert_throws_js(TypeError, function() { feDisplacementMapElement.yChannelSelector.baseVal = 5; });
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
assert_throws_js(TypeError, function() { feDisplacementMapElement.yChannelSelector.baseVal = -1; });
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
assert_throws_js(TypeError, function() { feDisplacementMapElement.yChannelSelector.baseVal = 0; });
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "A");
// Switch to 'R'.
feDisplacementMapElement.yChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_R;
assert_equals(feDisplacementMapElement.yChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_R);
assert_equals(feDisplacementMapElement.getAttribute('yChannelSelector'), "R");
});
</script>