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

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


PASS text1.requiredExtensions.numberOfItems is 3

Test uncommon arguments for initialize()
PASS text1.requiredExtensions.initialize('30') is "30"
PASS text1.requiredExtensions.numberOfItems is 1
PASS text1.requiredExtensions.getItem(0) is "30"
PASS text1.getAttribute('requiredExtensions') is "30"
PASS text1.requiredExtensions.initialize(text1) is "[object SVGTextElement]"
PASS text1.requiredExtensions.numberOfItems is 1
PASS text1.requiredExtensions.getItem(0) is "[object SVGTextElement]"
PASS text1.getAttribute('requiredExtensions') is "[object SVGTextElement]"
PASS text1.requiredExtensions.initialize(0) is "0"
PASS text1.requiredExtensions.numberOfItems is 1
PASS text1.requiredExtensions.getItem(0) is "0"
PASS text1.getAttribute('requiredExtensions') is "0"
PASS text1.requiredExtensions.initialize('aString') is "aString"
PASS text1.requiredExtensions.numberOfItems is 1
PASS text1.requiredExtensions.getItem(0) is "aString"
PASS text1.getAttribute('requiredExtensions') is "aString"

Test uncommon arguments for getItem()
PASS text1.requiredExtensions.getItem(30) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGStringList': The index provided (30) is greater than the maximum bound (1)..
PASS text1.requiredExtensions.getItem('aString') is text1.requiredExtensions.getItem(0)
PASS text1.requiredExtensions.getItem(text1) is text1.requiredExtensions.getItem(0)
PASS text1.requiredExtensions.getItem(null) is text1.requiredExtensions.getItem(0)

Test uncommon arguments for insertItemBefore()
PASS text1.requiredExtensions.insertItemBefore(30) threw exception TypeError: Failed to execute 'insertItemBefore' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.insertItemBefore('aString') threw exception TypeError: Failed to execute 'insertItemBefore' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.insertItemBefore(text1) threw exception TypeError: Failed to execute 'insertItemBefore' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.insertItemBefore(null) threw exception TypeError: Failed to execute 'insertItemBefore' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.insertItemBefore(text1.requiredExtensions.getItem(1), 'aString') threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGStringList': The index provided (1) is greater than or equal to the maximum bound (1)..
PASS text1.requiredExtensions.insertItemBefore(text1.requiredExtensions.getItem(1), text1) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGStringList': The index provided (1) is greater than or equal to the maximum bound (1)..
PASS text1.requiredExtensions.insertItemBefore(text1.requiredExtensions.getItem(1), null) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGStringList': The index provided (1) is greater than or equal to the maximum bound (1)..
PASS text1.requiredExtensions.insertItemBefore(text1.requiredExtensions.getItem(1), 0) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGStringList': The index provided (1) is greater than or equal to the maximum bound (1)..
PASS text1.requiredExtensions.insertItemBefore(30, 0) is "30"
PASS text1.requiredExtensions.numberOfItems is 2
PASS text1.requiredExtensions.getItem(0) is "30"
PASS text1.requiredExtensions.getItem(1) is "aString"
PASS text1.getAttribute('requiredExtensions') is "30 aString"
PASS text1.requiredExtensions.insertItemBefore('aString', 0) is "aString"
PASS text1.requiredExtensions.numberOfItems is 3
PASS text1.requiredExtensions.getItem(0) is "aString"
PASS text1.requiredExtensions.getItem(1) is "30"
PASS text1.requiredExtensions.getItem(2) is "aString"
PASS text1.getAttribute('requiredExtensions') is "aString 30 aString"
PASS text1.requiredExtensions.insertItemBefore(text1, 0) is "[object SVGTextElement]"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "[object SVGTextElement]"
PASS text1.requiredExtensions.getItem(1) is "aString"
PASS text1.requiredExtensions.getItem(2) is "30"
PASS text1.requiredExtensions.getItem(3) is "aString"
PASS text1.getAttribute('requiredExtensions') is "[object SVGTextElement] aString 30 aString"
PASS text1.requiredExtensions.insertItemBefore(null, 0) is "null"
PASS text1.requiredExtensions.numberOfItems is 5
PASS text1.requiredExtensions.getItem(0) is "null"
PASS text1.requiredExtensions.getItem(1) is "[object SVGTextElement]"
PASS text1.requiredExtensions.getItem(2) is "aString"
PASS text1.requiredExtensions.getItem(3) is "30"
PASS text1.requiredExtensions.getItem(4) is "aString"
PASS text1.getAttribute('requiredExtensions') is "null [object SVGTextElement] aString 30 aString"

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

Test uncommon arguments for replaceItem() - part 1
PASS text1.requiredExtensions.replaceItem(30) threw exception TypeError: Failed to execute 'replaceItem' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.replaceItem('aString') threw exception TypeError: Failed to execute 'replaceItem' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.replaceItem(text1) threw exception TypeError: Failed to execute 'replaceItem' on 'SVGStringList': 2 arguments required, but only 1 present..
PASS text1.requiredExtensions.replaceItem(null, 0) is "null"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "null"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "3"
PASS text1.requiredExtensions.getItem(3) is "4"
PASS text1.getAttribute('requiredExtensions') is "null 2 3 4"
PASS text1.requiredExtensions.replaceItem('aString', 3) is "aString"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "null"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "3"
PASS text1.requiredExtensions.getItem(3) is "aString"
PASS text1.getAttribute('requiredExtensions') is "null 2 3 aString"
PASS text1.requiredExtensions.replaceItem(text1, 2) is "[object SVGTextElement]"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "null"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "[object SVGTextElement]"
PASS text1.requiredExtensions.getItem(3) is "aString"
PASS text1.getAttribute('requiredExtensions') is "null 2 [object SVGTextElement] aString"
PASS text1.requiredExtensions.replaceItem(1, 1) is "1"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "null"
PASS text1.requiredExtensions.getItem(1) is "1"
PASS text1.requiredExtensions.getItem(2) is "[object SVGTextElement]"
PASS text1.requiredExtensions.getItem(3) is "aString"
PASS text1.getAttribute('requiredExtensions') is "null 1 [object SVGTextElement] aString"

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

Test uncommon arguments for replaceItem() - part 2
PASS text1.requiredExtensions.replaceItem(text1.requiredExtensions.getItem(0), 0) is "1"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "1"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "3"
PASS text1.requiredExtensions.getItem(3) is "4"
PASS text1.getAttribute('requiredExtensions') is "1 2 3 4"
PASS text1.requiredExtensions.replaceItem(text1.requiredExtensions.getItem(0), 'aString') is "1"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "1"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "3"
PASS text1.requiredExtensions.getItem(3) is "4"
PASS text1.getAttribute('requiredExtensions') is "1 2 3 4"
PASS text1.requiredExtensions.replaceItem(text1.requiredExtensions.getItem(0), text1) is "1"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "1"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "3"
PASS text1.requiredExtensions.getItem(3) is "4"
PASS text1.getAttribute('requiredExtensions') is "1 2 3 4"
PASS text1.requiredExtensions.replaceItem(text1.requiredExtensions.getItem(0), null) is "1"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "1"
PASS text1.requiredExtensions.getItem(1) is "2"
PASS text1.requiredExtensions.getItem(2) is "3"
PASS text1.requiredExtensions.getItem(3) is "4"
PASS text1.getAttribute('requiredExtensions') is "1 2 3 4"

Test uncommon arguments for removeItem()
PASS text1.requiredExtensions.removeItem(30) threw exception IndexSizeError: Failed to execute 'removeItem' on 'SVGStringList': The index provided (30) is greater than the maximum bound (4)..
PASS text1.requiredExtensions.removeItem('aString') is "1"
PASS text1.requiredExtensions.numberOfItems is 3
PASS text1.getAttribute('requiredExtensions') is "2 3 4"
PASS text1.requiredExtensions.removeItem(text1) is "2"
PASS text1.requiredExtensions.numberOfItems is 2
PASS text1.requiredExtensions.getItem(0) is "3"
PASS text1.requiredExtensions.getItem(1) is "4"
PASS text1.getAttribute('requiredExtensions') is "3 4"
PASS text1.requiredExtensions.removeItem(null) is "3"
PASS text1.requiredExtensions.numberOfItems is 1
PASS text1.getAttribute('requiredExtensions') is "4"
PASS text1.requiredExtensions.getItem(0) is "4"

Test uncommon arguments for appendItem()
PASS text1.requiredExtensions.appendItem(30) is "30"
PASS text1.requiredExtensions.numberOfItems is 2
PASS text1.requiredExtensions.getItem(0) is "4"
PASS text1.requiredExtensions.getItem(1) is "30"
PASS text1.getAttribute('requiredExtensions') is "4 30"
PASS text1.requiredExtensions.appendItem('aString') is "aString"
PASS text1.requiredExtensions.numberOfItems is 3
PASS text1.requiredExtensions.getItem(0) is "4"
PASS text1.requiredExtensions.getItem(1) is "30"
PASS text1.requiredExtensions.getItem(2) is "aString"
PASS text1.getAttribute('requiredExtensions') is "4 30 aString"
PASS text1.requiredExtensions.appendItem(text1) is "[object SVGTextElement]"
PASS text1.requiredExtensions.numberOfItems is 4
PASS text1.requiredExtensions.getItem(0) is "4"
PASS text1.requiredExtensions.getItem(1) is "30"
PASS text1.requiredExtensions.getItem(2) is "aString"
PASS text1.requiredExtensions.getItem(3) is "[object SVGTextElement]"
PASS text1.getAttribute('requiredExtensions') is "4 30 aString [object SVGTextElement]"
PASS text1.requiredExtensions.appendItem(null) is "null"
PASS text1.requiredExtensions.numberOfItems is 5
PASS text1.requiredExtensions.getItem(0) is "4"
PASS text1.requiredExtensions.getItem(1) is "30"
PASS text1.requiredExtensions.getItem(2) is "aString"
PASS text1.requiredExtensions.getItem(3) is "[object SVGTextElement]"
PASS text1.requiredExtensions.getItem(4) is "null"
PASS text1.getAttribute('requiredExtensions') is "4 30 aString [object SVGTextElement] null"

clear() requiredExtensions list so text on top shows up
PASS text1.requiredExtensions.clear() is undefined.
PASS successfullyParsed is true

TEST COMPLETE

