| <!DOCTYPE HTML> |
| <title>Use of SVGAnimatedEnumeration within SVGFEColorMatrixElement</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| test(function() { |
| // This test checks the use of SVGAnimatedEnumeration within SVGFEColorMatrixElement. |
| |
| var feColorMatrixElement = document.createElementNS("http://www.w3.org/2000/svg", "feColorMatrix"); |
| feColorMatrixElement.setAttribute("type", "matrix"); |
| |
| // Check initial 'type' value. |
| assert_true(feColorMatrixElement.type instanceof SVGAnimatedEnumeration); |
| assert_equals(typeof(feColorMatrixElement.type.baseVal), "number"); |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX); |
| |
| // Switch to 'saturate'. |
| feColorMatrixElement.type.baseVal = SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE; |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "saturate"); |
| |
| // Switch to 'hueRotate'. |
| feColorMatrixElement.type.baseVal = SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE; |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "hueRotate"); |
| |
| // Switch to 'luminanceToAlpha'. |
| feColorMatrixElement.type.baseVal = SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA; |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha"); |
| |
| // Try setting invalid values. |
| assert_throws(new TypeError(), function() { feColorMatrixElement.type.baseVal = 5; }); |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha"); |
| |
| assert_throws(new TypeError(), function() { feColorMatrixElement.type.baseVal = -1; }); |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha"); |
| |
| assert_throws(new TypeError(), function() { feColorMatrixElement.type.baseVal = 0; }); |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "luminanceToAlpha"); |
| |
| // Switch to 'matrix'. |
| feColorMatrixElement.type.baseVal = SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX; |
| assert_equals(feColorMatrixElement.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX); |
| assert_equals(feColorMatrixElement.getAttribute('type'), "matrix"); |
| }); |
| </script> |