This test checks the SVGAngle API

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



Check initial angle values
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0

Check invalid arguments for 'convertToSpecifiedUnits'
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN) threw exception NotSupportedError: The operation is not supported..
PASS angle.convertToSpecifiedUnits(-1) threw exception NotSupportedError: The operation is not supported..
PASS angle.convertToSpecifiedUnits(5) threw exception NotSupportedError: The operation is not supported..
PASS angle.convertToSpecifiedUnits('aString') threw exception NotSupportedError: The operation is not supported..
PASS angle.convertToSpecifiedUnits(angle) threw exception NotSupportedError: The operation is not supported..
PASS angle.convertToSpecifiedUnits(svgElement) threw exception NotSupportedError: The operation is not supported..
PASS angle.convertToSpecifiedUnits() threw exception TypeError: Not enough arguments.
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Check valid arguments for 'convertToSpecifiedUnits', that should only modify the 'valueAsString'
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD) is undefined.
PASS angle.valueAsString is "0rad"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_RAD
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD) is undefined.
PASS angle.valueAsString is "0grad"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_GRAD
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG) is undefined.
PASS angle.valueAsString is "0deg"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFIED) is undefined.
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Check invalid arguments for 'newValueSpecifiedUnits'
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN, 50) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(-1, 50) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(5, 50) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG) threw exception TypeError: Not enough arguments.
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 'aString') is undefined.
PASS angle.value is NaN
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 0) is undefined.
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, angle) is undefined.
PASS angle.value is NaN
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, svgElement) is undefined.
PASS angle.value is NaN
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG) threw exception TypeError: Not enough arguments.
PASS angle.newValueSpecifiedUnits('aString', 4) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(angle, 4) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(svgElement, 4) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits('aString', 'aString') threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(angle, angle) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits(svgElement, svgElement) threw exception NotSupportedError: The operation is not supported..
PASS angle.newValueSpecifiedUnits() threw exception TypeError: Not enough arguments.
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG

Check valid arguments for 'newValueSpecifiedUnits', that should only modify the 'valueAsString'
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD, parseFloat(Math.PI.toFixed(5))) is undefined.
PASS angle.valueAsString.slice(-3) is "rad"
PASS angle.value.toFixed(1) is "180.0"
PASS angle.valueInSpecifiedUnits.toFixed(5) is Math.PI.toFixed(5)
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_RAD
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD, 400) is undefined.
PASS angle.valueAsString is "400grad"
PASS angle.value.toFixed(1) is "360.0"
PASS angle.valueInSpecifiedUnits is 400
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_GRAD
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 360) is undefined.
PASS angle.valueAsString is "360deg"
PASS angle.value is 360
PASS angle.valueInSpecifiedUnits is 360
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFIED, 180) is undefined.
PASS angle.valueAsString is "180"
PASS angle.value is 180
PASS angle.valueInSpecifiedUnits is 180
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Reset to initial angle state
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFIED, 0) is undefined.
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Check setting invalid 'valueAsString' arguments
PASS angle.valueAsString = '10px' threw exception SyntaxError: The string did not match the expected pattern..
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.valueAsString = '10x' threw exception SyntaxError: The string did not match the expected pattern..
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.valueAsString = '5graD' threw exception SyntaxError: The string did not match the expected pattern..
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.valueAsString = '5Rad' threw exception SyntaxError: The string did not match the expected pattern..
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.valueAsString = ',5 rad' threw exception SyntaxError: The string did not match the expected pattern..
PASS angle.valueAsString is "0"
PASS angle.value is 0
PASS angle.valueInSpecifiedUnits is 0
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Check setting invalid 'valueInSpecifiedUnits' arguments
PASS angle.valueInSpecifiedUnits = 'test' is 'test'
PASS angle.value is NaN
PASS angle.valueInSpecifiedUnits is NaN
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.valueInSpecifiedUnits = 0 is 0
PASS angle.valueInSpecifiedUnits = angle is angle
PASS angle.value is NaN
PASS angle.valueInSpecifiedUnits is NaN
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Check setting invalid 'value' arguments
PASS angle.value = 0 is 0
PASS angle.value = 'test' is 'test'
PASS angle.value is NaN
PASS angle.valueInSpecifiedUnits is NaN
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED
PASS angle.value = 0 is 0
PASS angle.value = angle is angle
PASS angle.value is NaN
PASS angle.valueInSpecifiedUnits is NaN
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_UNSPECIFIED

Reset to angle in degree units
PASS angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 0) is undefined.
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG

Check setting valid 'value' arguments, assure that 'valueInSpecifiedUnits' and 'valueAsString' are synchronized
PASS angle.value = 50 is 50
PASS angle.valueInSpecifiedUnits is 50
PASS angle.valueAsString is "50deg"
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG

Try modifiying the readonly 'unitType', needs to fail
PASS angle.unitType = SVGAngle.SVG_ANGLETTYE_RAD is undefined.
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG

Check setting valid 'valueInSpecifiedUnits' arguments, assure that 'value' and 'valueAsString' are synchronized
PASS angle.valueInSpecifiedUnits = 100 is 100
PASS angle.value is 100
PASS angle.valueAsString is "100deg"
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG

Check setting valid 'valueAsString' arguments, assure that 'value' and 'valueInSpecifiedUnits' are synchronized
PASS angle.valueAsString = '200grad' is "200grad"
PASS angle.valueInSpecifiedUnits is 200
PASS angle.value.toFixed(1) is "180.0"
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_GRAD

Now convert the GRAD value into a RAD value, and assure that all properties have been synchronized
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD) is undefined.
PASS angle.value.toFixed(1) is "180.0"
PASS angle.valueInSpecifiedUnits.toFixed(5) is "3.14159"
PASS angle.valueAsString.slice(-3) is "rad"
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_RAD

Now try converting the RAD value into an unknown value, that should fail and throw
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN) threw exception NotSupportedError: The operation is not supported..
PASS angle.value.toFixed(1) is "180.0"
PASS angle.valueInSpecifiedUnits.toFixed(5) is "3.14159"
PASS angle.valueAsString.slice(-3) is "rad"
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_RAD

Now convert the RAD value into a DEG value, and assure that all properties have been synchronized
PASS angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG) is undefined.
PASS angle.value.toFixed(1) is "180.0"
PASS angle.valueInSpecifiedUnits.toFixed(1) is "180.0"
PASS angle.valueAsString is "180deg"
PASS angle.unitType is SVGAngle.SVG_ANGLETYPE_DEG
PASS successfullyParsed is true

TEST COMPLETE

