ABC
This is a test of the simple SVGNumberList API parts.

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


PASS text1.rotate.baseVal != text1.rotate.animVal is true
PASS text1.rotate.baseVal.numberOfItems is 3
PASS text1.rotate.animVal.numberOfItems is 3

Test uncommon arguments for initialize()
PASS text1.rotate.baseVal.initialize(30) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.initialize('aString') threw exception TypeError: Type error.
PASS text1.rotate.baseVal.initialize(text1) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.initialize(null) threw exception Error: SVG_WRONG_TYPE_ERR: DOM SVG Exception 0.

Test uncommon arguments for getItem()
PASS text1.rotate.baseVal.getItem(30) threw exception Error: IndexSizeError: DOM Exception 1.
PASS text1.rotate.baseVal.getItem('aString') is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.getItem(text1) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.getItem(null) is text1.rotate.baseVal.getItem(0)

Test uncommon arguments for insertItemBefore()
PASS text1.rotate.baseVal.insertItemBefore(30) threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.insertItemBefore('aString') threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.insertItemBefore(text1) threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.insertItemBefore(null) threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.insertItemBefore(text1.rotate.baseVal.getItem(1), 'aString') is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 3
PASS text1.rotate.baseVal.getItem(0).value is 180
PASS text1.rotate.baseVal.getItem(1).value is 90
PASS text1.rotate.baseVal.getItem(2).value is 270
PASS text1.getAttribute('rotate') is "180 90 270"
PASS text1.rotate.baseVal.insertItemBefore(text1.rotate.baseVal.getItem(1), text1) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 3
PASS text1.rotate.baseVal.getItem(0).value is 90
PASS text1.rotate.baseVal.getItem(1).value is 180
PASS text1.rotate.baseVal.getItem(2).value is 270
PASS text1.getAttribute('rotate') is "90 180 270"
PASS text1.rotate.baseVal.insertItemBefore(text1.rotate.baseVal.getItem(1), null) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 3
PASS text1.rotate.baseVal.getItem(0).value is 180
PASS text1.rotate.baseVal.getItem(1).value is 90
PASS text1.rotate.baseVal.getItem(2).value is 270
PASS text1.getAttribute('rotate') is "180 90 270"
PASS text1.rotate.baseVal.insertItemBefore(text1.rotate.baseVal.getItem(1), 0) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 3
PASS text1.rotate.baseVal.getItem(0).value is 90
PASS text1.rotate.baseVal.getItem(1).value is 180
PASS text1.rotate.baseVal.getItem(2).value is 270
PASS text1.getAttribute('rotate') is "90 180 270"
PASS text1.rotate.baseVal.insertItemBefore(30, 0) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.insertItemBefore('aString', 0) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.insertItemBefore(text1, 0) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.insertItemBefore(null, 0) threw exception Error: SVG_WRONG_TYPE_ERR: DOM SVG Exception 0.

Set rotate='1 2 3 4' for text1
PASS text1.setAttribute('rotate', '1 2 3 4') is undefined.
PASS text1.rotate.baseVal.numberOfItems is 4
PASS text1.rotate.baseVal.getItem(0).value is 1
PASS text1.rotate.baseVal.getItem(1).value is 2
PASS text1.rotate.baseVal.getItem(2).value is 3
PASS text1.rotate.baseVal.getItem(3).value is 4
PASS text1.getAttribute('rotate') is "1 2 3 4"

Test uncommon arguments for replaceItem()
PASS text1.rotate.baseVal.replaceItem(30) threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.replaceItem('aString') threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.replaceItem(text1) threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.replaceItem(null) threw exception TypeError: Not enough arguments.
PASS text1.rotate.baseVal.replaceItem(30, 0) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.replaceItem('aString', 0) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.replaceItem(text1, 0) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.replaceItem(null, 0) threw exception Error: SVG_WRONG_TYPE_ERR: DOM SVG Exception 0.
PASS text1.rotate.baseVal.replaceItem(text1.rotate.baseVal.getItem(0), 0) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 4
PASS text1.rotate.baseVal.getItem(0).value is 1
PASS text1.rotate.baseVal.getItem(1).value is 2
PASS text1.rotate.baseVal.getItem(2).value is 3
PASS text1.rotate.baseVal.getItem(3).value is 4
PASS text1.getAttribute('rotate') is "1 2 3 4"
PASS text1.rotate.baseVal.replaceItem(text1.rotate.baseVal.getItem(0), 'aString') is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 4
PASS text1.rotate.baseVal.getItem(0).value is 1
PASS text1.rotate.baseVal.getItem(1).value is 2
PASS text1.rotate.baseVal.getItem(2).value is 3
PASS text1.rotate.baseVal.getItem(3).value is 4
PASS text1.getAttribute('rotate') is "1 2 3 4"
PASS text1.rotate.baseVal.replaceItem(text1.rotate.baseVal.getItem(0), text1) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 4
PASS text1.getAttribute('rotate') is "1 2 3 4"
PASS text1.rotate.baseVal.replaceItem(text1.rotate.baseVal.getItem(0), null) is text1.rotate.baseVal.getItem(0)
PASS text1.rotate.baseVal.numberOfItems is 4
PASS text1.getAttribute('rotate') is "1 2 3 4"

Set rotate='1 2 3 4' for text1
PASS text1.setAttribute('rotate', '1 2 3 4') is undefined.

Test uncommon arguents for removeItem()
PASS text1.rotate.baseVal.removeItem(30) threw exception Error: IndexSizeError: DOM Exception 1.
PASS text1.rotate.baseVal.removeItem('aString').value is 1
PASS text1.rotate.baseVal.numberOfItems is 3
PASS text1.rotate.baseVal.getItem(0).value is 2
PASS text1.rotate.baseVal.getItem(1).value is 3
PASS text1.rotate.baseVal.getItem(2).value is 4
PASS text1.getAttribute('rotate') is "2 3 4"
PASS text1.rotate.baseVal.removeItem(text1).value is 2
PASS text1.rotate.baseVal.numberOfItems is 2
PASS text1.rotate.baseVal.getItem(0).value is 3
PASS text1.rotate.baseVal.getItem(1).value is 4
PASS text1.getAttribute('rotate') is "3 4"
PASS text1.rotate.baseVal.removeItem(null).value is 3
PASS text1.rotate.baseVal.numberOfItems is 1
PASS text1.rotate.baseVal.getItem(0).value is 4
PASS text1.getAttribute('rotate') is "4"

Test uncommon arguments for appendItem()
PASS text1.rotate.baseVal.appendItem(30) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.appendItem('aString') threw exception TypeError: Type error.
PASS text1.rotate.baseVal.appendItem(text1) threw exception TypeError: Type error.
PASS text1.rotate.baseVal.appendItem(null) threw exception Error: SVG_WRONG_TYPE_ERR: DOM SVG Exception 0.

Testing animVal clear throws
PASS text1.rotate.animVal.clear() threw exception Error: NoModificationAllowedError: DOM Exception 7.
PASS text1.rotate.baseVal.clear() is undefined.
PASS successfullyParsed is true

TEST COMPLETE

