This test checks the use of SVGAnimatedEnumeration within SVGMarkerElement

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".



Check initial 'markerUnits' value
PASS markerElement.markerUnits.toString() is "[object SVGAnimatedEnumeration]"
PASS typeof(markerElement.markerUnits.baseVal) is "number"
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE

Switch to 'strokeWidth'
PASS markerElement.markerUnits.baseVal = SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.getAttribute('markerUnits') is "strokeWidth"

Try setting invalid values
PASS markerElement.markerUnits.baseVal = 3 threw exception Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1.
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.getAttribute('markerUnits') is "strokeWidth"
PASS markerElement.markerUnits.baseVal = -1 threw exception Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1.
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.getAttribute('markerUnits') is "strokeWidth"
PASS markerElement.markerUnits.baseVal = 0 threw exception Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1.
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.getAttribute('markerUnits') is "strokeWidth"

Switch to 'userSpaceOnUse'
PASS markerElement.markerUnits.baseVal = SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE is SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE
PASS markerElement.getAttribute('markerUnits') is "userSpaceOnUse"

Check initial 'orient' value
PASS markerElement.orientType.toString() is "[object SVGAnimatedEnumeration]"
PASS typeof(markerElement.orientType.baseVal) is "number"
PASS markerElement.orientAngle.baseVal.value is 0
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO

Switch to 'Pi/2 rad' value - via setOrientToAngle()
PASS anglePiHalfRad = svgElement.createSVGAngle(); anglePiHalfRad.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD, (Math.PI / 2).toFixed(2)) is undefined.
PASS markerElement.setOrientToAngle(anglePiHalfRad) is undefined.
PASS markerElement.orientAngle.baseVal.value.toFixed(1) is "90.0"
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_RAD
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "1.57rad"

Switch to 'auto' value - via setOrientToAuto()
PASS markerElement.setOrientToAuto() is undefined.
PASS markerElement.orientAngle.baseVal.value is 0
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
PASS markerElement.getAttribute('orient') is "auto"

Switch to '20deg' value - via setOrientToAngle()
PASS angle20deg = svgElement.createSVGAngle(); angle20deg.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 20) is undefined.
PASS markerElement.setOrientToAngle(angle20deg) is undefined.
PASS markerElement.orientAngle.baseVal.value is 20
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "20deg"

Switch to '10deg' value
PASS markerElement.orientAngle.baseVal.value = 10 is 10
PASS markerElement.orientAngle.baseVal.value is 10
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"

Switch to 'auto' value - by modifying orientType, this shouldn't change the orientAngle, but change the 'orient' attribute
PASS markerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_AUTO is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
PASS markerElement.orientAngle.baseVal.value is 10
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
PASS markerElement.getAttribute('orient') is "auto"

Switch to '10deg' value - by modifying orientType to be angle again, the 10deg should be preserved in the orientAngle, and the 'orient' attribute should change
PASS markerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.orientAngle.baseVal.value is 10
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"

Try setting invalid values
PASS markerElement.orientType.baseVal = 3 threw exception Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1.
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"
PASS markerElement.orientType.baseVal = -1 threw exception Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1.
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"
PASS markerElement.orientType.baseVal = 0 threw exception Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1.
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"

Switch back to 'auto' value
PASS markerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_AUTO is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
PASS markerElement.orientAngle.baseVal.value is 10
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
PASS markerElement.getAttribute('orient') is "auto"

Switch to '100grad' value - only touch orientAngle, shouldn't change orientType nor the 'orient' attribute
PASS markerElement.orientAngle.baseVal.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD, 100) is undefined.
PASS markerElement.orientAngle.baseVal.value is 90
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_GRAD
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
PASS markerElement.getAttribute('orient') is "auto"

Finish switching to '100grad' value - by modifying the orientType to angle
PASS markerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.orientAngle.baseVal.value is 90
PASS markerElement.orientAngle.baseVal.unitType is SVGAngle.SVG_ANGLETYPE_GRAD
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "100grad"
PASS successfullyParsed is true

TEST COMPLETE

