blob: b399264a8d2ba84f768c5101fa61f9fc1ce19d06 [file] [log] [blame]
<!DOCTYPE HTML>
<title>Use of SVGAnimatedEnumeration within SVGFEBlendElement</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(function() {
// This test checks the use of SVGAnimatedEnumeration within SVGFEBlendElement.
var feBlendElement = document.createElementNS("http://www.w3.org/2000/svg", "feBlend");
feBlendElement.setAttribute("mode", "normal");
// Check initial 'mode' value.
assert_true(feBlendElement.mode instanceof SVGAnimatedEnumeration);
assert_equals(typeof(feBlendElement.mode.baseVal), "number");
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL);
// Switch to 'multiply'.
feBlendElement.mode.baseVal = SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY;
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY);
assert_equals(feBlendElement.getAttribute('mode'), "multiply");
// Switch to 'screen'.
feBlendElement.mode.baseVal = SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN;
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN);
assert_equals(feBlendElement.getAttribute('mode'), "screen");
// Switch to 'darken';
feBlendElement.mode.baseVal = SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN;
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN);
assert_equals(feBlendElement.getAttribute('mode'), "darken");
// Switch to 'lighten'
feBlendElement.mode.baseVal = SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN;
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN);
assert_equals(feBlendElement.getAttribute('mode'), "lighten");
// Try setting invalid values.
assert_throws(new TypeError(), function() { feBlendElement.mode.baseVal = 6; });
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN);
assert_equals(feBlendElement.getAttribute('mode'), "lighten");
assert_throws(new TypeError(), function() { feBlendElement.mode.baseVal = -1; });
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN);
assert_equals(feBlendElement.getAttribute('mode'), "lighten");
assert_throws(new TypeError(), function() { feBlendElement.mode.baseVal = 0; });
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN);
assert_equals(feBlendElement.getAttribute('mode'), "lighten");
// Switch to 'normal'.
feBlendElement.mode.baseVal = SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL;
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL);
assert_equals(feBlendElement.getAttribute('mode'), "normal");
// baseVal access when mode is set to a value not in SVGFEBlendElement.SVG_FEBLEND_MODE_*. .
feBlendElement.setAttribute("mode", "color-dodge");
assert_equals(feBlendElement.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_UNKNOWN);
assert_throws(new TypeError(), function() { feBlendElement.mode.baseVal = 13; });
assert_equals(feBlendElement.getAttribute('mode'), "color-dodge");
});
</script>