| <!DOCTYPE HTML> |
| <title>Use of SVGAnimatedEnumeration within SVGFECompositeElement</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| test(function() { |
| // This test checks the use of SVGAnimatedEnumeration within SVGFECompositeElement. |
| |
| var feCompositeElement = document.createElementNS("http://www.w3.org/2000/svg", "feComposite"); |
| feCompositeElement.setAttribute("operator", "over"); |
| |
| // Check initial 'operator' value. |
| assert_true(feCompositeElement.operator instanceof SVGAnimatedEnumeration); |
| assert_equals(typeof(feCompositeElement.operator.baseVal), "number"); |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER); |
| |
| // Switch to 'in'. |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN); |
| assert_equals(feCompositeElement.getAttribute('operator'), "in"); |
| |
| // Switch to 'out'. |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT); |
| assert_equals(feCompositeElement.getAttribute('operator'), "out"); |
| |
| // Switch to 'atop'. |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP); |
| assert_equals(feCompositeElement.getAttribute('operator'), "atop"); |
| |
| // Switch to 'xor' |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR); |
| assert_equals(feCompositeElement.getAttribute('operator'), "xor"); |
| |
| // Switch to 'lighter'. |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_LIGHTER; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_LIGHTER); |
| assert_equals(feCompositeElement.getAttribute('operator'), "lighter"); |
| |
| // Switch to 'arithmetic'. |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC); |
| assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic"); |
| |
| // Try setting invalid values. |
| assert_throws_js(TypeError, function() { feCompositeElement.operator.baseVal = 8; }); |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC); |
| assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic"); |
| |
| assert_throws_js(TypeError, function() { feCompositeElement.operator.baseVal = -1; }); |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC); |
| assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic"); |
| |
| assert_throws_js(TypeError, function() { feCompositeElement.operator.baseVal = 0; }); |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC); |
| assert_equals(feCompositeElement.getAttribute('operator'), "arithmetic"); |
| |
| // Switch to 'over'. |
| feCompositeElement.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER; |
| assert_equals(feCompositeElement.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER); |
| assert_equals(feCompositeElement.getAttribute('operator'), "over"); |
| }); |
| </script> |