Various tests for the marquee element.

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


"behavior" IDL attribute reflects content attribute:
PASS marquee.behavior is "slide"
"behavior" IDL attribute can be modified:
PASS marquee.behavior is "alternate"
"bgColor" IDL attribute reflects content attribute:
PASS marquee.bgColor is "red"
"bgColor" IDL attribute can be modified:
PASS marquee.bgColor is "blue"
"direction" IDL attribute reflects content attribute:
PASS marquee.direction is "right"
"direction" IDL attribute can be modified:
PASS marquee.direction is "left"
"height" IDL attribute reflects content attribute:
PASS marquee.height is "100px"
"height" IDL attribute can be modified:
PASS marquee.height is "200px"
"hspace" IDL attribute reflects content attribute:
PASS marquee.hspace is 10
"hspace" IDL attribute can be modified:
PASS marquee.hspace is 20
"hspace" IDL attribute is 0 when content attribute is negative:
PASS marquee.hspace is 0
"hspace" IDL attribute is 0 when content attribute is too large:
PASS marquee.hspace is 0
"loop" IDL attribute reflects content attribute:
PASS marquee.loop is 3
"loop" IDL attribute can be modified:
PASS marquee.loop is 4
"scrollAmount" IDL attribute reflects content attribute:
PASS marquee.scrollAmount is 5
"scrollAmount" IDL attribute can be modified:
PASS marquee.scrollAmount is 6
"scrollDelay" IDL attribute reflects content attribute:
PASS marquee.scrollDelay is 50
"scrollDelay" IDL attribute can be modified:
PASS marquee.scrollDelay is 60
"trueSpeed" IDL attribute reflects content attribute:
PASS marquee.trueSpeed is true
"trueSpeed" IDL attribute can be modified:
PASS marquee.trueSpeed is false
"vspace" IDL attribute reflects content attribute:
PASS marquee.vspace is 10
"vspace" IDL attribute can be modified:
PASS marquee.vspace is 20
"vspace" IDL attribute is 0 when content attribute is negative:
PASS marquee.vspace is 0
"vspace" IDL attribute is 0 when content attribute is too large:
PASS marquee.vspace is 0
Default "scrollAmount" value is 6:
PASS marquee.scrollAmount is 6
"scrollAmount" uses default value when content attribute is not a number:
PASS marquee.scrollAmount is 6
"scrollAmount" uses default value when content attribute is too large:
PASS marquee.scrollAmount is 6
"scrollAmount" uses default value when content attribute is negative:
PASS marquee.scrollAmount is 6
"scrollAmount" can be set to 0:
PASS marquee.scrollAmount is 0
"scrollAmount" can be set to 2^31-1:
PASS marquee.scrollAmount is 2147483647
"scrollAmount" can contain whitespace:
PASS marquee.scrollAmount is 5
"scrollAmount" can contain trailing non-numeric values:
PASS marquee.scrollAmount is 5
Setting "scrollAmount" to a negative value raises an exception:
PASS document.getElementById("marquee").scrollAmount = -1; threw exception Error: IndexSizeError: DOM Exception 1.
Setting "scrollAmount" to a value that is too large raises an exception:
PASS document.getElementById("marquee").scrollAmount = 2147483648; threw exception Error: IndexSizeError: DOM Exception 1.
Default "scrollDelay" value is 85:
PASS marquee.scrollDelay is 85
"scrollDelay" uses default value when content attribute is not a number:
PASS marquee.scrollDelay is 85
"scrollDelay" uses default value when content attribute is too large:
PASS marquee.scrollDelay is 85
"scrollDelay" uses default value when content attribute is negative:
PASS marquee.scrollDelay is 85
"scrollDelay" can be set to 0:
PASS marquee.scrollDelay is 0
"scrollDelay" can be set to 2^31-1:
PASS marquee.scrollDelay is 2147483647
"scrollDelay" can contain whitespace:
PASS marquee.scrollDelay is 5
"scrollDelay" can contain trailing non-numeric values:
PASS marquee.scrollDelay is 5
Setting "scrollDelay" to a negative value raises an exception:
PASS document.getElementById("marquee").scrollDelay = -1; threw exception Error: IndexSizeError: DOM Exception 1.
Setting "scrollDelay" to a value that is too large raises an exception:
PASS document.getElementById("marquee").scrollDelay = 2147483648; threw exception Error: IndexSizeError: DOM Exception 1.
Default "loop" value is -1:
PASS marquee.loop is -1
"loop" uses default value when content attribute is not a number:
PASS marquee.loop is -1
"loop" uses default value when content attribute is too large:
PASS marquee.loop is -1
"loop" uses default value when content attribute is negative:
PASS marquee.loop is -1
"loop" uses default value when set to 0:
PASS marquee.loop is -1
"loop" can be set to 1:
PASS marquee.loop is 1
"loop" can be set to 2^31-1:
PASS marquee.loop is 2147483647
"loop" can contain whitespace:
PASS marquee.loop is 5
"loop" can contain trailing non-numeric values:
PASS marquee.loop is 5
Setting "loop" to 0 raises an exception:
PASS document.getElementById("marquee").loop = 0; threw exception Error: IndexSizeError: DOM Exception 1.
Setting "loop" to a negative value raises an exception:
PASS document.getElementById("marquee").scrollDelay = -5; threw exception Error: IndexSizeError: DOM Exception 1.
"loop" can be set to -1 by script:
PASS marquee.loop is -1
PASS successfullyParsed is true

TEST COMPLETE

