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 TypeError: Type error.
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.getAttribute('markerUnits') is "strokeWidth"
PASS markerElement.markerUnits.baseVal = -1 threw exception TypeError: Type error.
PASS markerElement.markerUnits.baseVal is SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH
PASS markerElement.getAttribute('markerUnits') is "strokeWidth"
PASS markerElement.markerUnits.baseVal = 0 threw exception TypeError: Type error.
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 'auto-start-reverse' value - by modifying the orient attribute.
PASS markerElement.setAttribute('orient', 'auto-start-reverse') did not throw exception.
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_UNKNOWN
PASS markerElement.getAttribute('orient') is "auto-start-reverse"

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 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 '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.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 10) is undefined.
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 TypeError: Type error.
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"
PASS markerElement.orientType.baseVal = -1 threw exception TypeError: Type error.
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"
PASS markerElement.orientType.baseVal = 0 threw exception TypeError: Type error.
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
PASS markerElement.getAttribute('orient') is "10deg"

Test case sensitivity of attributes - try setting invalid values
PASS markerElement.setAttribute('orient', 'AUTO-START-REVERSE') did not throw exception.
PASS markerElement.getAttribute('orient') is "AUTO-START-REVERSE"
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN
PASS markerElement.setAttribute('orient', 'AUTO') did not throw exception.
PASS markerElement.getAttribute('orient') is "AUTO"
PASS markerElement.orientType.baseVal is SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN

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 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 '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_ANGLE
PASS markerElement.getAttribute('orient') is "100grad"

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

