This test checks the SVGStringList API - utilizing the requiredFeatures property of SVGRectElement

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



Check initial requiredFeatures values
PASS rect.requiredFeatures.numberOfItems is 2
PASS rect.requiredFeatures.getItem(0) is "foo"
PASS rect.requiredFeatures.getItem(1) is "bar"

Check that getItem() does NOT return live strings, as the IDL defines the return types as plain DOMString
PASS firstItem = 'test' is "test"
PASS rect.requiredFeatures.numberOfItems is 2
PASS rect.requiredFeatures.getItem(0) is "foo"
PASS rect.requiredFeatures.getItem(1) is "bar"
PASS successfullyParsed is true

TEST COMPLETE

