+2010-03-19 Dirk Pranke <dpranke@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Land the chromium-mac LayoutTest baselines (file list ommitted due to
+ length).
+
+ https://bugs.webkit.org/show_bug.cgi?id=28397
+
+ * platform/chromium-mac: Added.
+
2010-03-19 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by David Kilzer.
--- /dev/null
+80231fad200b369fed854509f4eab046
\ No newline at end of file
--- /dev/null
+c77c43d4237f443300225adad07e7e9c
\ No newline at end of file
--- /dev/null
+This tests the WebKitCSSKeyframeRule and WebKitCSSKeyframesRule interfaces.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS WebKitCSSKeyframeRule exists on Window object
+PASS WebKitCSSKeyframesRule exists on Window object
+PASS WEBKIT_KEYFRAME_RULE exists on Window.CSSRule object
+PASS WEBKIT_KEYFRAMES_RULE exists on Window.CSSRule object
+
+PASS keyframes1.type is window.CSSRule.WEBKIT_KEYFRAMES_RULE
+PASS keyframes1.name is 'test1'
+
+PASS rules1.length is 2
+PASS rules1.item(0).type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rules1.item(0).cssText is '0% { left: 10px; }'
+PASS rules1.item(1).cssText is '100% { left: 20px; }'
+
+Insert three new rules
+PASS rules1.length is 5
+PASS rules1.item(0).cssText is '0% { left: 10px; }'
+PASS rules1.item(1).cssText is '100% { left: 20px; }'
+PASS rules1.item(2).cssText is '30% { left: 30px; }'
+PASS rules1.item(3).cssText is '60% { left: 60px; }'
+PASS rules1.item(4).cssText is '20% { left: 50px; }'
+
+PASS keyframes2.type is window.CSSRule.WEBKIT_KEYFRAMES_RULE
+PASS keyframes2.name is 'test2'
+
+PASS rules2.length is 3
+PASS rules2.item(0).type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rules2.item(0).keyText is '0%'
+PASS rules2.item(1).keyText is '50%'
+PASS rules2.item(2).keyText is '100%'
+PASS rules2.item(0).cssText is '0% { left: 10px; }'
+PASS rules2.item(1).cssText is '50% { left: 30px; }'
+PASS rules2.item(2).cssText is '100% { left: 20px; }'
+
+FAIL typeof(rules2.item(0).style) should be function. Was object.
+PASS rules2.item(0).style.length is 1
+
+Find a rule
+PASS rule.type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rule.cssText is '50% { left: 30px; }'
+
+Find a rule using from and to
+PASS keyframesFromTo.type is window.CSSRule.WEBKIT_KEYFRAMES_RULE
+PASS rule.type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rule.cssText is '0% { left: 10px; }'
+PASS rule.type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rule.cssText is '100% { left: 20px; }'
+
+Try to find a rule that doesn't exist
+PASS Non-existent rule was not found
+
+Delete a rule
+PASS rules2.length is 2
+PASS rules2.item(0).type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rules2.item(0).keyText is '0%'
+PASS rules2.item(1).keyText is '100%'
+
+Delete a from rule
+PASS rulesFromTo.length is 2
+PASS rulesFromTo.item(0).type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rulesFromTo.item(0).keyText is '50%'
+PASS rulesFromTo.item(1).keyText is '100%'
+
+Delete a rule that doesn't exist
+PASS rules2.length is 2
+PASS rules2.item(0).type is window.CSSRule.WEBKIT_KEYFRAME_RULE
+PASS rules2.item(0).keyText is '0%'
+PASS rules2.item(1).keyText is '100%'
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+c77c43d4237f443300225adad07e7e9c
\ No newline at end of file
--- /dev/null
+5c207ad5cddbe93c2a0d2fcb1ee756d6
\ No newline at end of file
--- /dev/null
+153fb258cefd1b9718fa7b38a46d916e
\ No newline at end of file
--- /dev/null
+ae2d673abb05224e67493ba2205752f3
\ No newline at end of file
--- /dev/null
+9462ee461ccbc1bd14c9c2fd5ff133ce
\ No newline at end of file
--- /dev/null
+ba89a5a3aafaa0f64224ae59b00a5a5b
\ No newline at end of file
--- /dev/null
+148a22a5e742d8b7454e039510a3f4ee
\ No newline at end of file
--- /dev/null
+d59e95c04b7bec7758e2a33d28db8dfd
\ No newline at end of file
--- /dev/null
+b3d23535129bbc5f05f04368cca59e56
\ No newline at end of file
--- /dev/null
+4c6a933b2073fcba66c2b5bf16e4957e
\ No newline at end of file
--- /dev/null
+6799a5be7bf13d8132653b05fcb26d2a
\ No newline at end of file
--- /dev/null
+4530a119c3a4f48364c69556a3daa304
\ No newline at end of file
--- /dev/null
+1262c147d241e730f99087db2b56cc58
\ No newline at end of file
--- /dev/null
+eb9a8a831008837995605a600bfbab7a
\ No newline at end of file
--- /dev/null
+acf5bef0bb39929663bd7e9dc3da3223
\ No newline at end of file
--- /dev/null
+5d59d3571acca62f83f21f8ee3bc70ea
\ No newline at end of file
--- /dev/null
+602e838e6600b2ac00731e0bf1892a71
\ No newline at end of file
--- /dev/null
+3438770bd7e4b5403882b4f0b44180db
\ No newline at end of file
--- /dev/null
+590277ccffba6cd38097190e3288282a
\ No newline at end of file
--- /dev/null
+0edc18fc34c75bbea3128ac1a1ec5d7f
\ No newline at end of file
--- /dev/null
+b75c230bbb9f5e86268087d5e92dee7c
\ No newline at end of file
--- /dev/null
+f29fa12e84975f17d2236672c6208fe1
\ No newline at end of file
--- /dev/null
+e892ff173db66c223962a36307eb7618
\ No newline at end of file
--- /dev/null
+792da96c2ee420fd8aad88af877fd5e3
\ No newline at end of file
--- /dev/null
+5db54ad040ebf7e80c0e6b145326a984
\ No newline at end of file
--- /dev/null
+8721c0f637644429fa6792343e005442
\ No newline at end of file
--- /dev/null
+ba6bf0e8c1121ea5e0f2dcd46aa6b1f9
\ No newline at end of file
--- /dev/null
+f56cbc7e4b9a2a43eb66e0401b64708f
\ No newline at end of file
--- /dev/null
+16fd0bb9f9e3f96d9887619a2892dcdc
\ No newline at end of file
--- /dev/null
+ad72e99d9a5867159237c69bdde60f5c
\ No newline at end of file
--- /dev/null
+1fdceacb470750c7893e5462019e105f
\ No newline at end of file
--- /dev/null
+067f2c3c3c8686cb3472dcde89668c75
\ No newline at end of file
--- /dev/null
+6bbb88bc792676abcddd524d055dd734
\ No newline at end of file
--- /dev/null
+a7abf044c1493525751db934dad74b05
\ No newline at end of file
--- /dev/null
+18e521490d7490e995503f3c6c08f878
\ No newline at end of file
--- /dev/null
+952ca2758ed2b62ef73d18fb0a607af0
\ No newline at end of file
--- /dev/null
+EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 5 of DIV > BODY > HTML > #document
+EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 1 of #text > BLOCKQUOTE > DIV > BODY > HTML > #document to 35 of #text > BLOCKQUOTE > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x36
+ RenderText {#text} at (0,0) size 758x36
+ text run at (0,0) width 424: "This tests Indent on a selection that ends at the start of a paragraph. "
+ text run at (424,0) width 334: "Since we don't paint the gap before the paragraph for"
+ text run at (0,18) width 580: "most selections like this, we don't perform Indent on the paragraph that the selection ends in."
+ RenderBlock {DIV} at (0,52) size 784x36
+ RenderBlock {BLOCKQUOTE} at (40,0) size 744x18
+ RenderText {#text} at (0,0) size 222x18
+ text run at (0,0) width 222: "This paragraph should be indented."
+ RenderBlock (anonymous) at (0,18) size 784x18
+ RenderText {#text} at (0,0) size 246x18
+ text run at (0,0) width 246: "This paragraph should not be indented."
+ RenderBR {BR} at (246,14) size 0x0
+selection start: position 1 of child 0 {#text} of child 0 {BLOCKQUOTE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
+selection end: position 35 of child 0 {#text} of child 0 {BLOCKQUOTE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x36
+ RenderText {#text} at (0,0) size 783x36
+ text run at (0,0) width 377: "This tests selection preservation during an indent operation. "
+ text run at (377,0) width 406: "The selection should start and end in the same parts of the words"
+ text run at (0,18) width 320: "'foo' and 'bar' before and after the indent operation."
+ RenderBlock {DIV} at (0,52) size 784x36
+ RenderBlock {BLOCKQUOTE} at (40,0) size 744x36
+ RenderInline {SPAN} at (0,0) size 21x18
+ RenderText {#text} at (0,0) size 21x18
+ text run at (0,0) width 21: "foo"
+ RenderBR {BR} at (21,14) size 0x0
+ RenderInline {SPAN} at (0,0) size 20x18
+ RenderText {#text} at (0,18) size 20x18
+ text run at (0,18) width 20: "bar"
+ RenderBlock (anonymous) at (0,36) size 784x0
+selection start: position 1 of child 0 {#text} of child 0 {SPAN} of child 0 {BLOCKQUOTE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
+selection end: position 2 of child 0 {#text} of child 1 {SPAN} of child 0 {BLOCKQUOTE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
--- /dev/null
+dce9b8249dec20ae18979e7e15ab7e39
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x54
+ RenderText {#text} at (0,0) size 776x54
+ text run at (0,0) width 493: "This tests for a bug where indented text would appear quoted in GoogleDocs. "
+ text run at (493,0) width 218: "Google docs uses blockquotes and"
+ text run at (0,18) width 776: "FormatBlock to implement a \"Quote Text\" feature, and style rules for blockquotes appeared on the blockquotes that we use"
+ text run at (0,36) width 149: "to implement indenting."
+ RenderBlock {DIV} at (0,70) size 784x62
+ RenderBlock {BLOCKQUOTE} at (40,0) size 744x18
+ RenderBlock {DIV} at (0,0) size 744x18
+ RenderText {#text} at (0,0) size 230x18
+ text run at (0,0) width 230: "This should be indented, not quoted."
+ RenderBlock {BLOCKQUOTE} at (8,26) size 768x36 [border: (1px dashed #AAAAAA)]
+ RenderText {#text} at (9,9) size 175x18
+ text run at (9,9) width 175: "This text should be Quoted."
+caret: position 0 of child 0 {#text} of child 0 {DIV} of child 1 {BLOCKQUOTE} of child 3 {DIV} of child 1 {BODY} of child 0 {HTML} of document
--- /dev/null
+79420b18b7276d4018817e52601937b4
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x36
+ RenderText {#text} at (0,0) size 748x36
+ text run at (0,0) width 407: "This tests for a hang when indenting a fully selected table twice. "
+ text run at (407,0) width 341: "You should see a twice indented table, with four cells,"
+ text run at (0,18) width 43: "below."
+ RenderBlock {DIV} at (0,52) size 784x52
+ RenderBlock {BLOCKQUOTE} at (40,0) size 744x52
+ RenderBlock {BLOCKQUOTE} at (40,0) size 704x52
+ RenderTable {TABLE} at (0,0) size 83x52 [border: (1px outset #808080)]
+ RenderTableSection {TBODY} at (1,1) size 81x50
+ RenderTableRow {TR} at (0,2) size 81x22
+ RenderTableCell {TD} at (2,2) size 41x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+ RenderText {#text} at (2,2) size 27x18
+ text run at (2,2) width 27: "One"
+ RenderTableCell {TD} at (45,2) size 34x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+ RenderText {#text} at (2,2) size 30x18
+ text run at (2,2) width 30: "Two"
+ RenderTableRow {TR} at (0,26) size 81x22
+ RenderTableCell {TD} at (2,26) size 41x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+ RenderText {#text} at (2,2) size 37x18
+ text run at (2,2) width 37: "Three"
+ RenderTableCell {TD} at (45,26) size 34x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+ RenderText {#text} at (2,2) size 30x18
+ text run at (2,2) width 30: "Four"
+ RenderBlock (anonymous) at (0,52) size 784x0
+selection start: position 0 of child 0 {TABLE} of child 0 {BLOCKQUOTE} of child 1 {BLOCKQUOTE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
+selection end: position 2 of child 0 {TABLE} of child 0 {BLOCKQUOTE} of child 1 {BLOCKQUOTE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
--- /dev/null
+2427484e85181c1c105d2ba890e96bfb
\ No newline at end of file
--- /dev/null
+EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 10 of DIV > BODY > HTML > #document
+EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of #text > SPAN > BLOCKQUOTE > DIV > BODY > HTML > #document to 5 of #text > SPAN > BLOCKQUOTE > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {DIV} at (0,0) size 784x18
+ RenderText {#text} at (0,0) size 362x18
+ text run at (0,0) width 362: "This test uses the execCommand to indent the text below."
+ RenderBlock (anonymous) at (0,18) size 784x18
+ RenderBR {BR} at (0,0) size 0x18
+ RenderBlock {DIV} at (0,36) size 784x194
+ RenderBlock {BLOCKQUOTE} at (40,0) size 744x54
+ RenderBlock (anonymous) at (0,0) size 744x36
+ RenderInline {SPAN} at (0,0) size 42x18
+ RenderText {#text} at (0,0) size 42x18
+ text run at (0,0) width 42: "Lorem"
+ RenderBR {BR} at (42,14) size 0x0
+ RenderText {#text} at (0,18) size 83x18
+ text run at (0,18) width 83: "more Lorem!"
+ RenderBlock {BLOCKQUOTE} at (40,36) size 704x18
+ RenderText {#text} at (0,0) size 38x18
+ text run at (0,0) width 38: "ipsum"
+ RenderBlock (anonymous) at (0,54) size 784x0
+ RenderBlock {BLOCKQUOTE} at (40,70) size 744x54
+ RenderBlock {UL} at (0,0) size 744x54
+ RenderBlock {UL} at (40,0) size 704x54
+ RenderListItem {LI} at (40,0) size 664x18
+ RenderListMarker at (-17,0) size 7x18: white bullet
+ RenderText {#text} at (0,0) size 25x18
+ text run at (0,0) width 25: "Foo"
+ RenderListItem {LI} at (40,18) size 664x18
+ RenderListMarker at (-17,0) size 7x18: white bullet
+ RenderText {#text} at (0,0) size 23x18
+ text run at (0,0) width 23: "Bar"
+ RenderListItem {LI} at (40,36) size 664x18
+ RenderListMarker at (-17,0) size 7x18: white bullet
+ RenderText {#text} at (0,0) size 25x18
+ text run at (0,0) width 25: "Baz"
+ RenderBlock {BLOCKQUOTE} at (40,140) size 744x54
+ RenderBlock {BLOCKQUOTE} at (40,0) size 704x18
+ RenderText {#text} at (0,0) size 37x18
+ text run at (0,0) width 37: "Dolor"
+ RenderBlock (anonymous) at (0,18) size 744x36
+ RenderText {#text} at (0,0) size 34x18
+ text run at (0,0) width 34: "Sum!"
+ RenderBR {BR} at (34,14) size 0x0
+ RenderInline {SPAN} at (0,0) size 38x18
+ RenderText {#text} at (0,18) size 38x18
+ text run at (0,18) width 38: "Thing"
+ RenderBlock (anonymous) at (0,194) size 784x0
+selection start: position 0 of child 0 {#text} of child 0 {SPAN} of child 1 {BLOCKQUOTE} of child 4 {DIV} of child 1 {BODY} of child 0 {HTML} of document
+selection end: position 5 of child 0 {#text} of child 3 {SPAN} of child 3 {BLOCKQUOTE} of child 4 {DIV} of child 1 {BODY} of child 0 {HTML} of document
--- /dev/null
+CONSOLE MESSAGE: line 12: SUCCESS: Nodes stayed in order after outdent.
+This test uses the execCommand to Outdent the text below. This test that nodes, with different relationships with blockquotes, stay in the correct order after an outdent.
+
+A
+B
+C
--- /dev/null
+CONSOLE MESSAGE: line 12: SUCCESS: Nodes stayed in order after outdent.
+This test uses the execCommand to Outdent the text below. This test that nodes, with different relationships with blockquotes, stay in the correct order after an outdent.
+
+A
+B
+C
--- /dev/null
+CONSOLE MESSAGE: line 12: SUCCESS: Nodes stayed in order after outdent.
+This test uses the execCommand to Outdent the text below. This test that nodes, with different relationships with blockquotes, stay in the correct order after an outdent.
+
+A
+B
--- /dev/null
+CONSOLE MESSAGE: line 12: SUCCESS: Nodes stayed in order after outdent.
+This test uses the execCommand to Outdent the text below. This test that nodes, with different relationships with blockquotes, stay in the correct order after an outdent.
+
+
+A
+
+B
--- /dev/null
+CONSOLE MESSAGE: line 18: SUCCESS: paste DID NOT keep float:left style.
+This test is to see if text within a floating block is put onto the paste board wihtout the float style.
+
+First LI
+Second LI
+
+---
+First LI
+Second LI
+---
--- /dev/null
+EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document
+EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: shouldInsertNode:#document-fragment replacingDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document givenAction:WebViewInsertActionPasted
+EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 1 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
+EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
+EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x18
+ RenderText {#text} at (0,0) size 354x18
+ text run at (0,0) width 354: "This is an automatic test of copying an image document."
+ RenderBlock {P} at (0,34) size 784x36
+ RenderText {#text} at (0,0) size 759x36
+ text run at (0,0) width 759: "To perform this test manually, click once in the image frame, choose Edit -> Copy then click in the red box and paste the"
+ text run at (0,18) width 355: "image. If the image pastes successfully the test is passed."
+ RenderBlock (anonymous) at (0,86) size 784x154
+ RenderPartObject {IFRAME} at (0,0) size 304x154 [border: (2px solid #0000FF)]
+ layer at (0,0) size 300x150
+ RenderView at (0,0) size 300x150
+ layer at (0,0) size 300x150
+ RenderBlock {HTML} at (0,0) size 300x150
+ RenderBody {BODY} at (0,0) size 300x150
+ RenderImage {IMG} at (0,0) size 76x103
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,240) size 784x131 [border: (2px solid #FF0000)]
+ RenderImage {IMG} at (14,14) size 76x103
+ RenderText {#text} at (0,0) size 0x0
+caret: position 1 of child 0 {IMG} of child 7 {DIV} of child 1 {BODY} of child 0 {HTML} of document
\ No newline at end of file
--- /dev/null
+CONSOLE MESSAGE: line 18: SUCCESS: pasting singleNestedNodeToCopy DID NOT keep the newline within the blockquote.
+This tests pasting a singly nested blockquote before, and outside of, another blockquote. This test does not work outside of DRT.
+
+line 2
+
+line 1
+line 2
+line 3
+line 4
+line 5
+
+
--- /dev/null
+CONSOLE MESSAGE: line 18: SUCCESS: pasting doubleNestedNodeToCopy DID NOT keep the newline within the blockquote.
+This tests pasting a doubly nested blockquote before, and outside of, another blockquote. This test does not work outside of DRT.
+
+line 4
+
+line 1
+line 2
+line 3
+line 4
+line 5
+line 6
+
+
--- /dev/null
+CONSOLE MESSAGE: line 1: Uncaught ReferenceError: sayHello is not defined
+This test copies all the elements containing event handlers and javascript urls, pastes them in an editable area and verifies that no script, handlers or javascript urls are copied.
+Hello
+CNN Hello
+This is a form
+
+HelloÂ
+CNNÂ HelloÂ
+This is a form
+
+<button id="button1" onclick="sayHello()" ondblclick="sayHello()" style="width: 100px;">Hello</button>
+<button id="button1" style="width: 100px; ">Hello</button>
+<a id="anchor1" href="http://www.cnn.com">CNN</a>
+<a id="anchor1" href="http://www.cnn.com">CNN</a>
+<a id="anchor2" href="javascript:sayHello()">Hello</a>
+<a id="anchor2" href="">Hello</a>
+<iframe id="iframe1" src="javascript:sayHello()" style="width: 200px; height: 100px; background-color:#cee;"></iframe>
+<iframe id="iframe1" src="" style="width: 200px; height: 100px; background-color: rgb(204, 238, 238); "></iframe>
+<form id="form1" action="javascript:sayHello()" style="width: 200px; height: 150px; background-color:#cee;">This is a form<br><img src="../resources/abe.png"></form>
+<form id="form1" action="" style="width: 200px; height: 150px; background-color: rgb(204, 238, 238); ">This is a form<br><img src="../resources/abe.png"></form>
--- /dev/null
+ALERT: hello
+CONSOLE MESSAGE: line 1: Uncaught ReferenceError: sayHello is not defined
+This test copies the content of an iframe and pastes it in an editable area in an xhtml document and verifies that no script, handlers or javascript urls are copied.
+
+HelloCNNHello
+This is a form
+<button xmlns="http://www.w3.org/1999/xhtml" id="button1" style="width: 100px; ">Hello</button><a xmlns="http://www.w3.org/1999/xhtml" id="anchor1" href="http://www.bing.com/search?q=cnn">CNN</a><a xmlns="http://www.w3.org/1999/xhtml" id="anchor2">Hello</a><iframe xmlns="http://www.w3.org/1999/xhtml" id="iframe1" style="width: 200px; height: 100px; background-color: rgb(204, 238, 238); "></iframe><form xmlns="http://www.w3.org/1999/xhtml" id="form1" style="width: 200px; height: 150px; background-color: rgb(204, 238, 238); ">This is a form</form>
--- /dev/null
+66d2822ddb487b89e5f3e3ff7e19f00e
\ No newline at end of file
--- /dev/null
+7298dd3d7460d7068dc2f3a403954f4e
\ No newline at end of file
--- /dev/null
+1af7b412d4dcc4d55ed3d701e9940ddd
\ No newline at end of file
--- /dev/null
+d47abd87e4e813608a6e5f165842ec8e
\ No newline at end of file
--- /dev/null
+46d11780b1bf68b1d499f3903bf97117
\ No newline at end of file
--- /dev/null
+9c874efb176ece3fe58b66dca8975d1e
\ No newline at end of file
--- /dev/null
+434bb2cf3542be93d186d90011fa24cd
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x579
+ RenderBlock {P} at (0,0) size 784x36
+ RenderText {#text} at (0,0) size 53x18
+ text run at (0,0) width 53: "Test for "
+ RenderInline {I} at (0,0) size 747x36
+ RenderInline {A} at (0,0) size 154x18 [color=#0000EE]
+ RenderText {#text} at (53,0) size 154x18
+ text run at (53,0) width 154: "rdar://problem/6864786"
+ RenderText {#text} at (207,0) size 747x36
+ text run at (207,0) width 540: ": REGRESSION: Crash below ApplyStyleCommand::applyInlineStyleToRange when"
+ text run at (0,18) width 185: "reviewing a patch in Bugzilla"
+ RenderText {#text} at (185,18) size 4x18
+ text run at (185,18) width 4: "."
+ RenderBlock {P} at (0,52) size 784x18
+ RenderText {#text} at (0,0) size 217x18
+ text run at (0,0) width 217: "The test passes if it does not crash."
+ RenderBlock {DIV} at (0,86) size 784x41
+ RenderText {#text} at (0,0) size 563x41
+ text run at (0,0) width 563: "Copy the second word in this sentence."
+ RenderBlock {PRE} at (0,140) size 784x15
+ RenderText {#text} at (0,0) size 24x15
+ text run at (0,0) width 24: "the"
+caret: position 3 of child 0 {#text} of child 7 {PRE} of child 1 {BODY} of child 0 {HTML} of document
--- /dev/null
+f6aad58943ce92a229ce7dea52f3cab9
\ No newline at end of file
--- /dev/null
+22f0d818aa277e9b1f449a4dafaca35f
\ No newline at end of file
--- /dev/null
+aa59408bbce4468d57cb40e9b580eab6
\ No newline at end of file
--- /dev/null
+bd5a96012ab8ff36011bc99a5c248a1d
\ No newline at end of file
--- /dev/null
+704177539e5a85851c1cc44287c7a684
\ No newline at end of file
--- /dev/null
+6c3f1108ba8b9efccf95f3bf20789cd7
\ No newline at end of file
--- /dev/null
+Tests calling WebGL APIs without providing the necessary objects
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS context.compileShader() threw exception GL error 1282 in compileShader.
+PASS context.linkProgram() threw exception GL error 1282 in linkProgram.
+PASS context.attachShader() threw exception GL error 1281 in attachShader.
+PASS context.attachShader(program, undefined) threw exception GL error 1281 in attachShader.
+PASS context.attachShader(undefined, shader) threw exception GL error 1281 in attachShader.
+PASS context.detachShader(program, undefined) threw exception GL error 1282 in detachShader.
+PASS context.detachShader(undefined, shader) threw exception GL error 1282 in detachShader.
+PASS context.shaderSource() threw exception GL error 1282 in shaderSource.
+PASS context.shaderSource(undefined, 'foo') threw exception GL error 1282 in shaderSource.
+PASS context.bindAttribLocation(undefined, 0, 'foo') threw exception GL error 1282 in bindAttribLocation.
+PASS context.bindBuffer(context.ARRAY_BUFFER, 0) is undefined.
+PASS context.bindFramebuffer(context.FRAMEBUFFER, 0) is undefined.
+PASS context.bindRenderbuffer(context.RENDERBUFFER, 0) is undefined.
+PASS context.bindTexture(context.TEXTURE_2D, 0) is undefined.
+PASS context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, 0) threw exception GL error 1282 in framebufferRenderbuffer.
+PASS context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, 0, 0) threw exception GL error 1282 in framebufferTexture2D.
+PASS context.getProgramParameter(undefined, 0) threw exception GL error 1282 in getProgramParameter.
+PASS context.getProgramInfoLog(undefined, 0) threw exception GL error 1282 in getProgramInfoLog.
+PASS context.getShaderParameter(undefined, 0) threw exception GL error 1282 in getShaderParameter.
+PASS context.getShaderInfoLog(undefined, 0) threw exception GL error 1282 in getShaderInfoLog.
+PASS context.getShaderSource(undefined) threw exception GL error 1282 in getShaderSource.
+PASS context.getUniform(undefined, 0) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS context.getUniformLocation(undefined, 'foo') threw exception GL error 1282 in getUniformLocation.
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test of texImage2d and texSubImage2d
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS context.texImage2D(context.TEXTURE_2D) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 64, 64, 0, context.RGBA, context.UNSIGNED_BYTE, null) is undefined.
+PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, context.RGBA, context.UNSIGNED_BYTE, 0) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 2, 2, 0, context.RGBA, context.UNSIGNED_BYTE, array) is undefined.
+PASS context.texImage2D(context.TEXTURE_2D, 0, imageData, true) is undefined.
+PASS context.texImage2D(context.TEXTURE_2D, 0, image) is undefined.
+PASS context.texImage2D(context.TEXTURE_2D, 0, canvas2d, false) is undefined.
+PASS context.texImage2D(context.TEXTURE_2D, 0, video, true, false) is undefined.
+PASS context.texSubImage2D(context.TEXTURE_2D) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, 0, context.RGBA, context.UNSIGNED_BYTE, 0) is undefined.
+PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, 0, context.UNSIGNED_BYTE, 0) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, imageData, false) is undefined.
+PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, image) is undefined.
+PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, canvas2d, true) is undefined.
+PASS context.texSubImage2D(context.TEXTURE_2D, 0, 10, 20, video, false, true) is undefined.
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Tests WebGL APIs related to shader uniforms
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS contextA.useProgram(programA2) is undefined.
+PASS contextA.uniformMatrix4fv(locationA, false, mat) threw exception GL error 1282 in uniformMatrix4fv.
+PASS contextA.useProgram(programA1) is undefined.
+PASS contextA.uniformMatrix4fv(locationA, false, mat) is undefined.
+PASS contextA.uniformMatrix4fv(0, false, mat) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS contextA.useProgram(programS) is undefined.
+PASS contextA.uniform1i(locationSx, 3) is undefined.
+PASS contextA.uniform1f(locationArray0, 4.0) is undefined.
+PASS contextA.getUniform(programS, locationSx) is 3
+PASS contextA.getUniform(programS, locationArray0) is 4.0
+PASS contextA.useProgram(programV) is undefined.
+PASS contextA.uniform4fv(locationVec4, vec) is undefined.
+PASS contextA.getUniform(programV, locationVec4) is vec
+PASS contextA.getUniformLocation(programV, "IDontExist") is null
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+6ca08f027d795554473050803cb7ff14
\ No newline at end of file
--- /dev/null
+a58ba660c9387c5cda64af2743018eca
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x236
+ RenderBlock {HTML} at (0,0) size 800x236
+ RenderBody {BODY} at (8,8) size 784x212
+ RenderBlock {DIV} at (0,0) size 784x108
+ RenderBlock {DIV} at (0,0) size 784x18
+ RenderInline (generated) at (0,0) size 39x18
+ RenderText at (0,0) size 39x18
+ text run at (0,0) width 39: "PASS"
+ RenderBlock {DIV} at (0,18) size 784x18
+ RenderInline (generated) at (0,0) size 39x18
+ RenderText at (0,0) size 39x18
+ text run at (0,0) width 39: "PASS"
+ RenderBlock {DIV} at (0,36) size 784x18
+ RenderInline (generated) at (0,0) size 39x18
+ RenderText at (0,0) size 39x18
+ text run at (0,0) width 39: "PASS"
+ RenderBlock {DIV} at (0,54) size 784x18
+ RenderInline (generated) at (0,0) size 39x18
+ RenderText at (0,0) size 39x18
+ text run at (0,0) width 39: "PASS"
+ RenderBlock {DIV} at (0,72) size 784x18
+ RenderInline (generated) at (0,0) size 39x18
+ RenderText at (0,0) size 39x18
+ text run at (0,0) width 39: "PASS"
+ RenderBlock {DIV} at (0,90) size 784x18
+ RenderInline (generated) at (0,0) size 39x18
+ RenderText at (0,0) size 39x18
+ text run at (0,0) width 39: "PASS"
+ RenderBlock {DIV} at (0,124) size 784x88
+ RenderBlock {P} at (0,0) size 784x18
+ RenderInline {A} at (0,0) size 671x18 [color=#0000EE]
+ RenderText {#text} at (0,0) size 671x18
+ text run at (0,0) width 671: "Bug 23741: StyleRareNonInheritedData::operator==() should not compare ContentData objects by pointer"
+ RenderBlock {OL} at (0,34) size 784x54
+ RenderListItem {LI} at (40,0) size 744x18
+ RenderListMarker at (-20,0) size 16x18: "1"
+ RenderText {#text} at (0,0) size 345x18
+ text run at (0,0) width 345: "All lines above should be \"PASS\" on initial page load."
+ RenderListItem {LI} at (40,18) size 744x18
+ RenderListMarker at (-20,0) size 16x18: "2"
+ RenderText {#text} at (0,0) size 140x18
+ text run at (0,0) width 140: "Reload the page once."
+ RenderListItem {LI} at (40,36) size 744x18
+ RenderListMarker at (-20,0) size 16x18: "3"
+ RenderText {#text} at (0,0) size 247x18
+ text run at (0,0) width 247: "All lines above should still be \"PASS\"."
--- /dev/null
+Attributes that are exposed in the CSS computed style object:
+
+background-attachment: scroll;
+background-color: rgba(0, 0, 0, 0);
+background-image: none;
+background-position: 0% 0%;
+background-repeat: repeat;
+border-bottom-color: rgb(0, 0, 0);
+border-bottom-style: none;
+border-bottom-width: 0px;
+border-collapse: separate;
+border-left-color: rgb(0, 0, 0);
+border-left-style: none;
+border-left-width: 0px;
+border-right-color: rgb(0, 0, 0);
+border-right-style: none;
+border-right-width: 0px;
+border-top-color: rgb(0, 0, 0);
+border-top-style: none;
+border-top-width: 0px;
+bottom: auto;
+caption-side: top;
+clear: none;
+color: rgb(0, 0, 0);
+cursor: auto;
+direction: ltr;
+display: block;
+empty-cells: show;
+float: none;
+font-family: 'times new roman';
+font-size: 16px;
+font-style: normal;
+font-variant: normal;
+font-weight: normal;
+height: 576px;
+left: auto;
+letter-spacing: normal;
+line-height: normal;
+list-style-image: none;
+list-style-position: outside;
+list-style-type: disc;
+margin-bottom: 8px;
+margin-left: 8px;
+margin-right: 8px;
+margin-top: 8px;
+max-height: none;
+max-width: none;
+min-height: 0px;
+min-width: 0px;
+opacity: 1;
+orphans: 2;
+outline-color: rgb(0, 0, 0);
+outline-style: none;
+outline-width: 0px;
+overflow-x: visible;
+overflow-y: visible;
+padding-bottom: 0px;
+padding-left: 0px;
+padding-right: 0px;
+padding-top: 0px;
+page-break-after: auto;
+page-break-before: auto;
+page-break-inside: auto;
+pointer-events: auto;
+position: static;
+resize: none;
+right: auto;
+table-layout: auto;
+text-align: auto;
+text-decoration: none;
+text-indent: 0px;
+text-shadow: none;
+text-transform: none;
+top: auto;
+unicode-bidi: normal;
+vertical-align: baseline;
+visibility: visible;
+white-space: normal;
+widows: 2;
+width: 784px;
+word-spacing: 0px;
+word-wrap: normal;
+z-index: auto;
+zoom: 1;
+-webkit-animation-delay: 0s;
+-webkit-animation-direction: normal;
+-webkit-animation-duration: 0s;
+-webkit-animation-iteration-count: 1;
+-webkit-animation-name: none;
+-webkit-animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
+-webkit-appearance: none;
+-webkit-backface-visibility: visible;
+-webkit-background-clip: border;
+-webkit-background-composite: source-over;
+-webkit-background-origin: padding;
+-webkit-background-size: auto auto;
+-webkit-border-fit: border;
+-webkit-border-image: none;
+-webkit-border-horizontal-spacing: 0px;
+-webkit-border-vertical-spacing: 0px;
+-webkit-box-align: stretch;
+-webkit-box-direction: normal;
+-webkit-box-flex: 0;
+-webkit-box-flex-group: 1;
+-webkit-box-lines: single;
+-webkit-box-ordinal-group: 1;
+-webkit-box-orient: horizontal;
+-webkit-box-pack: start;
+-webkit-box-reflect: none;
+-webkit-box-shadow: none;
+-webkit-box-sizing: content-box;
+-webkit-column-break-after: auto;
+-webkit-column-break-before: auto;
+-webkit-column-break-inside: auto;
+-webkit-column-count: auto;
+-webkit-column-gap: normal;
+-webkit-column-rule-color: rgb(0, 0, 0);
+-webkit-column-rule-style: none;
+-webkit-column-rule-width: 0px;
+-webkit-column-width: auto;
+-webkit-highlight: none;
+-webkit-line-break: normal;
+-webkit-line-clamp: none;
+-webkit-margin-bottom-collapse: collapse;
+-webkit-margin-top-collapse: collapse;
+-webkit-marquee-direction: auto;
+-webkit-marquee-increment: 6px;
+-webkit-marquee-repetition: infinite;
+-webkit-marquee-style: scroll;
+-webkit-mask-attachment: scroll;
+-webkit-mask-box-image: none;
+-webkit-mask-image: none;
+-webkit-mask-position: 0% 0%;
+-webkit-mask-repeat: repeat;
+-webkit-mask-clip: border;
+-webkit-mask-composite: source-over;
+-webkit-mask-origin: border;
+-webkit-mask-size: auto auto;
+-webkit-nbsp-mode: normal;
+-webkit-perspective: none;
+-webkit-perspective-origin: 392px 288px;
+-webkit-rtl-ordering: logical;
+-webkit-text-decorations-in-effect: none;
+-webkit-text-fill-color: rgb(0, 0, 0);
+-webkit-text-security: none;
+-webkit-text-stroke-color: rgb(0, 0, 0);
+-webkit-text-stroke-width: 0px;
+-webkit-transform: none;
+-webkit-transform-origin: 392px 288px;
+-webkit-transform-style: flat;
+-webkit-transition-delay: 0s;
+-webkit-transition-duration: 0s;
+-webkit-transition-property: all;
+-webkit-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
+-webkit-user-drag: auto;
+-webkit-user-modify: read-only;
+-webkit-user-select: text;
+-webkit-border-bottom-left-radius: 0px;
+-webkit-border-bottom-right-radius: 0px;
+-webkit-border-top-left-radius: 0px;
+-webkit-border-top-right-radius: 0px;
+clip-path: none;
+clip-rule: nonzero;
+mask: none;
+filter: none;
+flood-color: rgb(0, 0, 0);
+flood-opacity: 1;
+lighting-color: rgb(255, 255, 255);
+stop-color: rgb(0, 0, 0);
+stop-opacity: 1;
+color-interpolation: srgb;
+color-interpolation-filters: linearrgb;
+color-rendering: auto;
+fill: #000000;
+fill-opacity: 1;
+fill-rule: nonzero;
+image-rendering: auto;
+marker-end: none;
+marker-mid: none;
+marker-start: none;
+shape-rendering: auto;
+stroke: none;
+stroke-dasharray: ;
+stroke-dashoffset: ;
+stroke-linecap: butt;
+stroke-linejoin: miter;
+stroke-miterlimit: 4;
+stroke-opacity: 1;
+stroke-width: ;
+text-rendering: auto;
+alignment-baseline: auto;
+baseline-shift: baseline;
+dominant-baseline: auto;
+kerning: ;
+text-anchor: start;
+writing-mode: lr-tb;
+glyph-orientation-horizontal: 0deg;
+glyph-orientation-vertical: auto;
+
+Other attributes that the computed style class supports:
+
+background-position: 0% 0%;
+border-spacing: 0px 0px;
+overflow: visible;
+-webkit-match-nearest-mail-blockquote-color: normal;
+-webkit-text-size-adjust: auto;
+
--- /dev/null
+Computed style of an element whose parent's 'display' value is 'none':
+ background-attachment: scroll
+ background-color: rgb(0, 128, 0)
+ background-image: none
+ background-position: 0% 0%
+ background-repeat: repeat
+ border-bottom-color: rgb(0, 0, 0)
+ border-bottom-style: none
+ border-bottom-width: 0px
+ border-collapse: separate
+ border-left-color: rgb(0, 0, 0)
+ border-left-style: none
+ border-left-width: 0px
+ border-right-color: rgb(0, 0, 0)
+ border-right-style: none
+ border-right-width: 0px
+ border-top-color: rgb(0, 0, 0)
+ border-top-style: solid
+ border-top-width: 16px
+ bottom: auto
+ caption-side: top
+ clear: none
+ color: rgb(0, 0, 0)
+ cursor: auto
+ direction: ltr
+ display: block
+ empty-cells: show
+ float: none
+ font-family: 'times new roman'
+ font-size: 16px
+ font-style: normal
+ font-variant: normal
+ font-weight: normal
+ height: 100px
+ left: auto
+ letter-spacing: normal
+ line-height: normal
+ list-style-image: none
+ list-style-position: outside
+ list-style-type: disc
+ margin-bottom: 0px
+ margin-left: auto
+ margin-right: 0px
+ margin-top: 0px
+ max-height: none
+ max-width: none
+ min-height: 0px
+ min-width: 0px
+ opacity: 1
+ orphans: 2
+ outline-color: rgb(0, 0, 0)
+ outline-style: none
+ outline-width: 0px
+ overflow-x: visible
+ overflow-y: visible
+ padding-bottom: 0px
+ padding-left: 0px
+ padding-right: 0px
+ padding-top: 0px
+ page-break-after: auto
+ page-break-before: auto
+ page-break-inside: auto
+ pointer-events: auto
+ position: static
+ resize: none
+ right: auto
+ table-layout: auto
+ text-align: auto
+ text-decoration: none
+ text-indent: 0px
+ text-shadow: none
+ text-transform: none
+ top: auto
+ unicode-bidi: normal
+ vertical-align: baseline
+ visibility: visible
+ white-space: normal
+ widows: 2
+ width: 50%
+ word-spacing: 0px
+ word-wrap: normal
+ z-index: auto
+ zoom: 1
+ -webkit-animation-delay: 0s
+ -webkit-animation-direction: normal
+ -webkit-animation-duration: 0s
+ -webkit-animation-iteration-count: 1
+ -webkit-animation-name: none
+ -webkit-animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1)
+ -webkit-appearance: none
+ -webkit-backface-visibility: visible
+ -webkit-background-clip: border
+ -webkit-background-composite: source-over
+ -webkit-background-origin: padding
+ -webkit-background-size: auto auto
+ -webkit-border-fit: border
+ -webkit-border-image: none
+ -webkit-border-horizontal-spacing: 0px
+ -webkit-border-vertical-spacing: 0px
+ -webkit-box-align: stretch
+ -webkit-box-direction: normal
+ -webkit-box-flex: 0
+ -webkit-box-flex-group: 1
+ -webkit-box-lines: single
+ -webkit-box-ordinal-group: 1
+ -webkit-box-orient: horizontal
+ -webkit-box-pack: start
+ -webkit-box-reflect: none
+ -webkit-box-shadow: none
+ -webkit-box-sizing: content-box
+ -webkit-column-break-after: auto
+ -webkit-column-break-before: auto
+ -webkit-column-break-inside: auto
+ -webkit-column-count: auto
+ -webkit-column-gap: normal
+ -webkit-column-rule-color: rgb(0, 0, 0)
+ -webkit-column-rule-style: none
+ -webkit-column-rule-width: 0px
+ -webkit-column-width: auto
+ -webkit-highlight: none
+ -webkit-line-break: normal
+ -webkit-line-clamp: none
+ -webkit-margin-bottom-collapse: collapse
+ -webkit-margin-top-collapse: collapse
+ -webkit-marquee-direction: auto
+ -webkit-marquee-increment: 6px
+ -webkit-marquee-repetition: infinite
+ -webkit-marquee-style: scroll
+ -webkit-mask-attachment: scroll
+ -webkit-mask-box-image: none
+ -webkit-mask-image: none
+ -webkit-mask-position: 0% 0%
+ -webkit-mask-repeat: repeat
+ -webkit-mask-clip: border
+ -webkit-mask-composite: source-over
+ -webkit-mask-origin: border
+ -webkit-mask-size: auto auto
+ -webkit-nbsp-mode: normal
+ -webkit-perspective: none
+ -webkit-perspective-origin: 50% 50%
+ -webkit-rtl-ordering: logical
+ -webkit-text-decorations-in-effect: none
+ -webkit-text-fill-color: rgb(0, 0, 0)
+ -webkit-text-security: none
+ -webkit-text-stroke-color: rgb(0, 0, 0)
+ -webkit-text-stroke-width: 0px
+ -webkit-transform: none
+ -webkit-transform-origin: 50% 50%
+ -webkit-transform-style: flat
+ -webkit-transition-delay: 0s
+ -webkit-transition-duration: 0s
+ -webkit-transition-property: all
+ -webkit-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1)
+ -webkit-user-drag: auto
+ -webkit-user-modify: read-only
+ -webkit-user-select: text
+ -webkit-border-bottom-left-radius: 0px
+ -webkit-border-bottom-right-radius: 0px
+ -webkit-border-top-left-radius: 0px
+ -webkit-border-top-right-radius: 0px
+ clip-path: none
+ clip-rule: nonzero
+ mask: none
+ filter: none
+ flood-color: rgb(0, 0, 0)
+ flood-opacity: 1
+ lighting-color: rgb(255, 255, 255)
+ stop-color: rgb(0, 0, 0)
+ stop-opacity: 1
+ color-interpolation: srgb
+ color-interpolation-filters: linearrgb
+ color-rendering: auto
+ fill: #000000
+ fill-opacity: 1
+ fill-rule: nonzero
+ image-rendering: auto
+ marker-end: none
+ marker-mid: none
+ marker-start: none
+ shape-rendering: auto
+ stroke: none
+ stroke-dasharray:
+ stroke-dashoffset:
+ stroke-linecap: butt
+ stroke-linejoin: miter
+ stroke-miterlimit: 4
+ stroke-opacity: 1
+ stroke-width:
+ text-rendering: auto
+ alignment-baseline: auto
+ baseline-shift: baseline
+ dominant-baseline: auto
+ kerning:
+ text-anchor: start
+ writing-mode: lr-tb
+ glyph-orientation-horizontal: 0deg
+ glyph-orientation-vertical: auto
+ background-position: 0% 0%
+ border-spacing: 0px 0px
+ overflow: visible
+ -webkit-match-nearest-mail-blockquote-color: normal
+ -webkit-text-size-adjust: auto
+
+After changing grandparent's 'color' and the parent's 'font-size' inherited properties:
+ border-top-width: 18px
+ color: rgb(0, 0, 255)
+
+After changing the parent's 'display' property to 'block', so that the child gets a renderer:
+ height: 100px
+ margin-left: 385px
+ width: 384px
+
+After changing the parent's 'display' property back to 'none':
+ height: 100px
+ margin-left: auto
+ width: 50%
+
+
--- /dev/null
+35577d4e918e58f9beefa6784d0a759f
\ No newline at end of file
--- /dev/null
+9e02fc2e065df643a8a507394c13825c
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600 [color=#FF0000]
+ RenderBody {BODY} at (8,8) size 784x544
+ RenderBlock {P} at (0,0) size 784x73
+ RenderInline (generated) at (0,0) size 35x55 [color=#008000] [bgcolor=#FFC0CB]
+ RenderText {#text} at (0,0) size 35x55
+ text run at (0,0) width 35: "A"
+ RenderText {#text} at (35,0) size 190x55
+ text run at (35,0) width 190: "BCDEFG"
+ RenderBR {BR} at (225,43) size 0x0
+ RenderInline {SPAN} at (0,0) size 225x18 [color=#000000]
+ RenderText {#text} at (0,55) size 225x18
+ text run at (0,55) width 225: "Hover over \"A\". It must stay green."
+ RenderText {#text} at (0,0) size 0x0
--- /dev/null
+This tests that the font-weight, font-style and font-variant properties accept value lists when they appear inside @font-face rules, and that the value 'all' is allowed only by itself.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS test("font-weight", "100") is "100"
+PASS test("font-weight", "all") is "all"
+PASS test("font-weight", "100, 200") is "100, 200"
+PASS test("font-weight", "bold, normal") is "bold, normal"
+PASS test("font-weight", "100, 200, 300, 400, 500, 600, 700, 100") is "100, 200, 300, 400, 500, 600, 700, 100"
+FAIL test("font-weight", "all, 100") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+FAIL test("font-weight", "bold, normal, all") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+FAIL test("font-weight", "") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+PASS test("font-style", "normal") is "normal"
+PASS test("font-style", "italic") is "italic"
+PASS test("font-style", "normal, oblique") is "normal, oblique"
+PASS test("font-style", "all") is "all"
+FAIL test("font-style", "all, normal") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+FAIL test("font-style", "italic, all") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+FAIL test("font-style", "") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+PASS test("font-variant", "normal") is "normal"
+PASS test("font-variant", "small-caps") is "small-caps"
+PASS test("font-variant", "normal, small-caps") is "normal, small-caps"
+PASS test("font-variant", "all") is "all"
+FAIL test("font-variant", "all, normal") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+FAIL test("font-variant", "small-caps, all") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+FAIL test("font-variant", "") should throw TypeError: Result of expression 'style.sheet.rules[0].style.getPropertyCSSValue(property)' [null] is not an object.. Threw exception TypeError: Cannot read property 'cssText' of null.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
--- /dev/null
+Attributes that are exposed in the CSS computed style object:
+
+background-attachment: scroll;
+background-clip: border-box;
+background-color: transparent;
+background-image: none;
+background-origin: padding-box;
+background-position: 0% 0%;
+background-repeat: repeat;
+background-size: auto auto;
+border-bottom-color: rgb(0, 0, 0);
+border-bottom-left-radius: 0px;
+border-bottom-right-radius: 0px;
+border-bottom-style: none;
+border-bottom-width: 0px;
+border-collapse: separate;
+border-left-color: rgb(0, 0, 0);
+border-left-style: none;
+border-left-width: 0px;
+border-right-color: rgb(0, 0, 0);
+border-right-style: none;
+border-right-width: 0px;
+border-top-color: rgb(0, 0, 0);
+border-top-left-radius: 0px;
+border-top-right-radius: 0px;
+border-top-style: none;
+border-top-width: 0px;
+bottom: auto;
+caption-side: top;
+clear: none;
+clip: auto;
+color: rgb(0, 0, 0);
+cursor: auto;
+direction: ltr;
+display: block;
+empty-cells: show;
+float: none;
+font-family: Times;
+font-size: 16px;
+font-style: normal;
+font-variant: normal;
+font-weight: normal;
+height: 576px;
+left: auto;
+letter-spacing: normal;
+line-height: normal;
+list-style-image: none;
+list-style-position: outside;
+list-style-type: disc;
+margin-bottom: 8px;
+margin-left: 8px;
+margin-right: 8px;
+margin-top: 8px;
+max-height: none;
+max-width: none;
+min-height: 0px;
+min-width: 0px;
+opacity: 1;
+orphans: 2;
+outline-color: rgb(0, 0, 0);
+outline-style: none;
+outline-width: 0px;
+overflow-x: visible;
+overflow-y: visible;
+padding-bottom: 0px;
+padding-left: 0px;
+padding-right: 0px;
+padding-top: 0px;
+page-break-after: auto;
+page-break-before: auto;
+page-break-inside: auto;
+pointer-events: auto;
+position: static;
+resize: none;
+right: auto;
+table-layout: auto;
+text-align: auto;
+text-decoration: none;
+text-indent: 0px;
+text-rendering: auto;
+text-shadow: none;
+text-overflow: clip;
+text-transform: none;
+top: auto;
+unicode-bidi: normal;
+vertical-align: baseline;
+visibility: visible;
+white-space: normal;
+widows: 2;
+width: 784px;
+word-break: normal;
+word-spacing: 0px;
+word-wrap: normal;
+z-index: auto;
+zoom: 1;
+-webkit-animation-delay: 0s;
+-webkit-animation-direction: normal;
+-webkit-animation-duration: 0s;
+-webkit-animation-fill-mode: none;
+-webkit-animation-iteration-count: 1;
+-webkit-animation-name: none;
+-webkit-animation-play-state: running;
+-webkit-animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
+-webkit-appearance: none;
+-webkit-backface-visibility: visible;
+-webkit-background-clip: border-box;
+-webkit-background-composite: source-over;
+-webkit-background-origin: padding-box;
+-webkit-background-size: auto auto;
+-webkit-border-fit: border;
+-webkit-border-horizontal-spacing: 0px;
+-webkit-border-image: none;
+-webkit-border-vertical-spacing: 0px;
+-webkit-box-align: stretch;
+-webkit-box-direction: normal;
+-webkit-box-flex: 0;
+-webkit-box-flex-group: 1;
+-webkit-box-lines: single;
+-webkit-box-ordinal-group: 1;
+-webkit-box-orient: horizontal;
+-webkit-box-pack: start;
+-webkit-box-reflect: none;
+-webkit-box-shadow: none;
+-webkit-box-sizing: content-box;
+-webkit-color-correction: default;
+-webkit-column-break-after: auto;
+-webkit-column-break-before: auto;
+-webkit-column-break-inside: auto;
+-webkit-column-count: auto;
+-webkit-column-gap: normal;
+-webkit-column-rule-color: rgb(0, 0, 0);
+-webkit-column-rule-style: none;
+-webkit-column-rule-width: 0px;
+-webkit-column-width: auto;
+-webkit-font-smoothing: auto;
+-webkit-highlight: none;
+-webkit-line-break: normal;
+-webkit-line-clamp: none;
+-webkit-margin-bottom-collapse: collapse;
+-webkit-margin-top-collapse: collapse;
+-webkit-marquee-direction: auto;
+-webkit-marquee-increment: 6px;
+-webkit-marquee-repetition: infinite;
+-webkit-marquee-style: scroll;
+-webkit-mask-attachment: scroll;
+-webkit-mask-box-image: none;
+-webkit-mask-clip: border-box;
+-webkit-mask-composite: source-over;
+-webkit-mask-image: none;
+-webkit-mask-origin: border-box;
+-webkit-mask-position: 0% 0%;
+-webkit-mask-repeat: repeat;
+-webkit-mask-size: auto auto;
+-webkit-nbsp-mode: normal;
+-webkit-perspective: none;
+-webkit-perspective-origin: 392px 288px;
+-webkit-rtl-ordering: logical;
+-webkit-text-decorations-in-effect: none;
+-webkit-text-fill-color: rgb(0, 0, 0);
+-webkit-text-security: none;
+-webkit-text-stroke-color: rgb(0, 0, 0);
+-webkit-text-stroke-width: 0px;
+-webkit-transform: none;
+-webkit-transform-origin: 392px 288px;
+-webkit-transform-style: flat;
+-webkit-transition-delay: 0s;
+-webkit-transition-duration: 0s;
+-webkit-transition-property: all;
+-webkit-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
+-webkit-user-drag: auto;
+-webkit-user-modify: read-only;
+-webkit-user-select: text;
+clip-path: none;
+clip-rule: nonzero;
+mask: none;
+filter: none;
+flood-color: rgb(0, 0, 0);
+flood-opacity: 1;
+lighting-color: rgb(255, 255, 255);
+stop-color: rgb(0, 0, 0);
+stop-opacity: 1;
+color-interpolation: srgb;
+color-interpolation-filters: linearrgb;
+color-rendering: auto;
+fill: #000000;
+fill-opacity: 1;
+fill-rule: nonzero;
+image-rendering: auto;
+marker-end: none;
+marker-mid: none;
+marker-start: none;
+shape-rendering: auto;
+stroke: none;
+stroke-dasharray: ;
+stroke-dashoffset: ;
+stroke-linecap: butt;
+stroke-linejoin: miter;
+stroke-miterlimit: 4;
+stroke-opacity: 1;
+stroke-width: ;
+alignment-baseline: auto;
+baseline-shift: baseline;
+dominant-baseline: auto;
+kerning: ;
+text-anchor: start;
+writing-mode: lr-tb;
+glyph-orientation-horizontal: 0deg;
+glyph-orientation-vertical: auto;
+-webkit-svg-shadow: none;
+
+Other attributes that the computed style class supports:
+
+background-position-x: 0%;
+background-position-y: 0%;
+border-spacing: 0px 0px;
+overflow: visible;
+-webkit-mask-position-x: 0%;
+-webkit-mask-position-y: 0%;
+-webkit-match-nearest-mail-blockquote-color: normal;
+-webkit-text-size-adjust: auto;
--- /dev/null
+Computed style of an element whose parent's 'display' value is 'none':
+ background-attachment: scroll
+ background-clip: border-box
+ background-color: rgb(0, 128, 0)
+ background-image: none
+ background-origin: padding-box
+ background-position: 0% 0%
+ background-repeat: repeat
+ background-size: auto auto
+ border-bottom-color: rgb(0, 0, 0)
+ border-bottom-left-radius: 0px
+ border-bottom-right-radius: 0px
+ border-bottom-style: none
+ border-bottom-width: 0px
+ border-collapse: separate
+ border-left-color: rgb(0, 0, 0)
+ border-left-style: none
+ border-left-width: 0px
+ border-right-color: rgb(0, 0, 0)
+ border-right-style: none
+ border-right-width: 0px
+ border-top-color: rgb(0, 0, 0)
+ border-top-left-radius: 0px
+ border-top-right-radius: 0px
+ border-top-style: solid
+ border-top-width: 16px
+ bottom: auto
+ caption-side: top
+ clear: none
+ clip: auto
+ color: rgb(0, 0, 0)
+ cursor: auto
+ direction: ltr
+ display: block
+ empty-cells: show
+ float: none
+ font-family: Times
+ font-size: 16px
+ font-style: normal
+ font-variant: normal
+ font-weight: normal
+ height: 100px
+ left: auto
+ letter-spacing: normal
+ line-height: normal
+ list-style-image: none
+ list-style-position: outside
+ list-style-type: disc
+ margin-bottom: 0px
+ margin-left: auto
+ margin-right: 0px
+ margin-top: 0px
+ max-height: none
+ max-width: none
+ min-height: 0px
+ min-width: 0px
+ opacity: 1
+ orphans: 2
+ outline-color: rgb(0, 0, 0)
+ outline-style: none
+ outline-width: 0px
+ overflow-x: visible
+ overflow-y: visible
+ padding-bottom: 0px
+ padding-left: 0px
+ padding-right: 0px
+ padding-top: 0px
+ page-break-after: auto
+ page-break-before: auto
+ page-break-inside: auto
+ pointer-events: auto
+ position: static
+ resize: none
+ right: auto
+ table-layout: auto
+ text-align: auto
+ text-decoration: none
+ text-indent: 0px
+ text-rendering: auto
+ text-shadow: none
+ text-overflow: clip
+ text-transform: none
+ top: auto
+ unicode-bidi: normal
+ vertical-align: baseline
+ visibility: visible
+ white-space: normal
+ widows: 2
+ width: 50%
+ word-break: normal
+ word-spacing: 0px
+ word-wrap: normal
+ z-index: auto
+ zoom: 1
+ -webkit-animation-delay: 0s
+ -webkit-animation-direction: normal
+ -webkit-animation-duration: 0s
+ -webkit-animation-fill-mode: none
+ -webkit-animation-iteration-count: 1
+ -webkit-animation-name: none
+ -webkit-animation-play-state: running
+ -webkit-animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1)
+ -webkit-appearance: none
+ -webkit-backface-visibility: visible
+ -webkit-background-clip: border-box
+ -webkit-background-composite: source-over
+ -webkit-background-origin: padding-box
+ -webkit-background-size: auto auto
+ -webkit-border-fit: border
+ -webkit-border-horizontal-spacing: 0px
+ -webkit-border-image: none
+ -webkit-border-vertical-spacing: 0px
+ -webkit-box-align: stretch
+ -webkit-box-direction: normal
+ -webkit-box-flex: 0
+ -webkit-box-flex-group: 1
+ -webkit-box-lines: single
+ -webkit-box-ordinal-group: 1
+ -webkit-box-orient: horizontal
+ -webkit-box-pack: start
+ -webkit-box-reflect: none
+ -webkit-box-shadow: none
+ -webkit-box-sizing: content-box
+ -webkit-color-correction: default
+ -webkit-column-break-after: auto
+ -webkit-column-break-before: auto
+ -webkit-column-break-inside: auto
+ -webkit-column-count: auto
+ -webkit-column-gap: normal
+ -webkit-column-rule-color: rgb(0, 0, 0)
+ -webkit-column-rule-style: none
+ -webkit-column-rule-width: 0px
+ -webkit-column-width: auto
+ -webkit-font-smoothing: auto
+ -webkit-highlight: none
+ -webkit-line-break: normal
+ -webkit-line-clamp: none
+ -webkit-margin-bottom-collapse: collapse
+ -webkit-margin-top-collapse: collapse
+ -webkit-marquee-direction: auto
+ -webkit-marquee-increment: 6px
+ -webkit-marquee-repetition: infinite
+ -webkit-marquee-style: scroll
+ -webkit-mask-attachment: scroll
+ -webkit-mask-box-image: none
+ -webkit-mask-clip: border-box
+ -webkit-mask-composite: source-over
+ -webkit-mask-image: none
+ -webkit-mask-origin: border-box
+ -webkit-mask-position: 0% 0%
+ -webkit-mask-repeat: repeat
+ -webkit-mask-size: auto auto
+ -webkit-nbsp-mode: normal
+ -webkit-perspective: none
+ -webkit-perspective-origin: 50% 50%
+ -webkit-rtl-ordering: logical
+ -webkit-text-decorations-in-effect: none
+ -webkit-text-fill-color: rgb(0, 0, 0)
+ -webkit-text-security: none
+ -webkit-text-stroke-color: rgb(0, 0, 0)
+ -webkit-text-stroke-width: 0px
+ -webkit-transform: none
+ -webkit-transform-origin: 50% 50%
+ -webkit-transform-style: flat
+ -webkit-transition-delay: 0s
+ -webkit-transition-duration: 0s
+ -webkit-transition-property: all
+ -webkit-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1)
+ -webkit-user-drag: auto
+ -webkit-user-modify: read-only
+ -webkit-user-select: text
+ clip-path: none
+ clip-rule: nonzero
+ mask: none
+ filter: none
+ flood-color: rgb(0, 0, 0)
+ flood-opacity: 1
+ lighting-color: rgb(255, 255, 255)
+ stop-color: rgb(0, 0, 0)
+ stop-opacity: 1
+ color-interpolation: srgb
+ color-interpolation-filters: linearrgb
+ color-rendering: auto
+ fill: #000000
+ fill-opacity: 1
+ fill-rule: nonzero
+ image-rendering: auto
+ marker-end: none
+ marker-mid: none
+ marker-start: none
+ shape-rendering: auto
+ stroke: none
+ stroke-dasharray:
+ stroke-dashoffset:
+ stroke-linecap: butt
+ stroke-linejoin: miter
+ stroke-miterlimit: 4
+ stroke-opacity: 1
+ stroke-width:
+ alignment-baseline: auto
+ baseline-shift: baseline
+ dominant-baseline: auto
+ kerning:
+ text-anchor: start
+ writing-mode: lr-tb
+ glyph-orientation-horizontal: 0deg
+ glyph-orientation-vertical: auto
+ -webkit-svg-shadow: none
+ background-position-x: 0%
+ background-position-y: 0%
+ border-spacing: 0px 0px
+ overflow: visible
+ -webkit-mask-position-x: 0%
+ -webkit-mask-position-y: 0%
+ -webkit-match-nearest-mail-blockquote-color: normal
+ -webkit-text-size-adjust: auto
+
+After changing grandparent's 'color' and the parent's 'font-size' inherited properties:
+ border-top-width: 18px
+ color: rgb(0, 0, 255)
+
+After changing the parent's 'display' property to 'block', so that the child gets a renderer:
+ height: 100px
+ margin-left: 385px
+ width: 384px
+
+After changing the parent's 'display' property back to 'none':
+ height: 100px
+ margin-left: auto
+ width: 50%
--- /dev/null
+a66e1282d7430486dd884c60d5d54d72
\ No newline at end of file
--- /dev/null
+83390497fb801e7e50281b93239562f4
\ No newline at end of file
--- /dev/null
+899b1bbf3e74fb61d30d47c1b9d6e74c
\ No newline at end of file
--- /dev/null
+a66e1282d7430486dd884c60d5d54d72
\ No newline at end of file
--- /dev/null
+CONSOLE MESSAGE: line 27: Uncaught TypeError: Cannot call method 'getVariableValue' of undefined
+FAILED
--- /dev/null
+CONSOLE MESSAGE: line 20: Uncaught TypeError: Cannot call method 'removeVariable' of undefined
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x34
+ RenderBlock {HTML} at (0,0) size 800x34
+ RenderBody {BODY} at (8,8) size 784x18
+ RenderBlock {DIV} at (0,0) size 784x18 [color=#008000]
+ RenderText {#text} at (0,0) size 163x18
+ text run at (0,0) width 163: "This text should be green."
--- /dev/null
+CONSOLE MESSAGE: line 19: Uncaught TypeError: Cannot call method 'setVariable' of undefined
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x34
+ RenderBlock {HTML} at (0,0) size 800x34
+ RenderBody {BODY} at (8,8) size 784x18
+ RenderBlock {DIV} at (0,0) size 784x18
+ RenderText {#text} at (0,0) size 163x18
+ text run at (0,0) width 163: "This text should be green."
--- /dev/null
+CONSOLE MESSAGE: line 23: Uncaught TypeError: Cannot read property 'length' of undefined
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x34
+ RenderBlock {HTML} at (0,0) size 800x34
+ RenderBody {BODY} at (8,8) size 784x18
+ RenderBlock {DIV} at (0,0) size 784x18 [color=#FF0000] [bgcolor=#FF0000]
+ RenderText {#text} at (0,0) size 362x18
+ text run at (0,0) width 167: "This text should be green. "
+ text run at (167,0) width 195: "There should be no red visible."
--- /dev/null
+Tests the properties of the EventException object.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS e.toString() is "Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0"
+PASS Object.prototype.toString.call(e) is "[object EventException]"
+FAIL Object.prototype.toString.call(e.__proto__) should be [object EventExceptionPrototype]. Was [object Object].
+FAIL e.constructor.toString() should be [object EventExceptionConstructor]. Was function EventException() { [native code] }.
+PASS e.constructor is window.EventException
+PASS e.UNSPECIFIED_EVENT_TYPE_ERR is e.constructor.UNSPECIFIED_EVENT_TYPE_ERR
+PASS e.UNSPECIFIED_EVENT_TYPE_ERR is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+XPathException
+RangeException
+prototype-object
+EventException
+---------------------------------
+toString of exception constructors and exception prototypes
+differ with v8 and KJS.
\ No newline at end of file
--- /dev/null
+Tests the properties of the RangeException object.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS e.toString() is "Error: INVALID_NODE_TYPE_ERR: DOM Range Exception 2"
+PASS Object.prototype.toString.call(e) is "[object RangeException]"
+FAIL Object.prototype.toString.call(e.__proto__) should be [object RangeExceptionPrototype]. Was [object Object].
+FAIL e.constructor.toString() should be [object RangeExceptionConstructor]. Was function RangeException() { [native code] }.
+PASS e.constructor is window.RangeException
+PASS e.INVALID_NODE_TYPE_ERR is e.constructor.INVALID_NODE_TYPE_ERR
+PASS e.BAD_BOUNDARYPOINTS_ERR is 1
+PASS e.INVALID_NODE_TYPE_ERR is 2
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Tests the properties of the XPathException object.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS e.toString() is "Error: TYPE_ERR: DOM XPath Exception 52"
+PASS Object.prototype.toString.call(e) is "[object XPathException]"
+FAIL Object.prototype.toString.call(e.__proto__) should be [object XPathExceptionPrototype]. Was [object Object].
+FAIL e.constructor.toString() should be [object XPathExceptionConstructor]. Was function XPathException() { [native code] }.
+PASS e.constructor is window.XPathException
+PASS e.TYPE_ERR is e.constructor.TYPE_ERR
+PASS e.INVALID_EXPRESSION_ERR is 51
+PASS e.TYPE_ERR is 52
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+DOMException needs a real prototype: http://bugs.webkit.org/show_bug.cgi?id=16637
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS e.toString() is "Error: HIERARCHY_REQUEST_ERR: DOM Exception 3"
+PASS Object.prototype.toString.call(e) is "[object DOMException]"
+FAIL Object.prototype.toString.call(e.__proto__) should be [object DOMExceptionPrototype]. Was [object Object].
+FAIL e.constructor.toString() should be [object DOMExceptionConstructor]. Was function DOMException() { [native code] }.
+PASS e.constructor is window.DOMException
+PASS e.HIERARCHY_REQUEST_ERR is e.constructor.HIERARCHY_REQUEST_ERR
+PASS e.HIERARCHY_REQUEST_ERR is 3
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test setting the hash attribute of the URL in HTMLAnchorElement.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Hash value does not start with '#'
+PASS a.href is 'https://www.mydomain.com:8080/path/testurl.html#hash-value'
+Hash value starts with '#'
+PASS a.href is 'file:///path/testurl.html#hash_value'
+'?' in hash value
+PASS a.href is 'http://www.mydomain.com/path/testurl.html#hash?value'
+'#' in hash value, and illegal characters in hostname
+FAIL a.href should be https://www.my"d(){}|~om?ain#com/path/testurl.html#middle. Was https://www.my%22d%28%29%7B%7D%7C%7Eom/?ain#hash#value.
+Set hash to null
+FAIL a.href should be https://www.mydomain.com/path/testurl.html#. Was https://www.mydomain.com/path/testurl.html.
+Set hash to empty string
+PASS a.href is 'https://www.mydomain.com/path/testurl.html#'
+Add hash to mailto: protocol
+FAIL a.href should be mailto:e-mail_address@goes_here#hash-value. Was mailto:e-mail_address@goes_here.
+Add hash to file: protocol
+FAIL a.href should be file:///some%20path#hash%20value. Was file:///some%20path#hash value.
+Set hash to '#'
+PASS a.href is 'http://mydomain.com/#'
+Add hash to non-standard protocol
+FAIL a.href should be foo:bar#hash. Was foo:bar.
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test setting the host attribute of the URL in HTMLAnchorElement.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Basic test
+PASS a.href is 'https://www.otherdomain.com:0/path/'
+Set host with '?' in it
+FAIL a.href should be https://www.other/?domain.com:8080/path/?key=value. Was https://www.other%3Fdomain.com:8080/path/?key=value.
+Set default port for another protocol
+PASS a.href is 'https://www.otherdomain.com:80/path/'
+Set default port
+PASS a.href is 'https://www.otherdomain.com/path/'
+Set host with letters in port number
+PASS a.href is 'https://www.otherdomain.com:44/path/'
+Leading space in port number
+PASS a.href is 'https://www.otherdomain.com:0/path/'
+Colon without port number
+PASS a.href is 'https://www.otherdomain.com:0/path/'
+Set host to null
+PASS a.href is 'https://www.mydomain.com:8080/path/'
+Set host to empty string
+PASS a.href is 'https://www.mydomain.com:8080/path/'
+Set host to URL with file: protocol
+PASS a.href is 'file://mydomain.com/path/'
+Set host containing slashes in it
+FAIL a.href should be https://www.otherdom/ain.com/path/. Was https://www.otherdom%2Fain.com/path/.
+Set host to a malformed URL
+FAIL a.href should be https://www.other!domain.com:15/ww.my@domain.com:8080/path/. Was https://ww.my@www.other%21domain.com:15/path/.
+Set host that starts with ':'
+PASS a.href is 'https://domain.com:8080/path/'
+Set host to URL containing username and ..
+FAIL a.href should be https://rwwmy@www.other!domain.com:25/pa..th/. Was https://rwwmy@www.other%21domain.com:25/pa..th/.
+Set host to a URL with tel: protocol
+PASS a.href is 'tel:+1-816-555-1212'
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test setting the hostname attribute of the URL in HTMLAnchorElement.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Basic test
+PASS a.href is 'https://www.otherdomain.com:8080/path/'
+Extra slashes before hostname
+PASS a.href is 'https://www.otherdomain.com:8080/path/'
+Set hostname to URL with foo: protocol
+FAIL a.href should be foo://www.otherdomain.com/path/. Was foo://www.mydomain.com/path/.
+Set hostname to null
+PASS a.href is 'https://www.mydomain.com:8080/path/'
+Set hostname to empty string
+PASS a.href is 'https://www.mydomain.com:8080/path/'
+Set hostname to URL with 2 colons
+PASS a.href is 'really:bad:url'
+Set a hostname that contains space in it
+FAIL a.href should be http://www.my domain.com/path/. Was http://www.other%20domain.com/path/.
+Set hostname on a local file
+PASS a.href is 'c:/path/testurl.html'
+Set hostname to undefined
+PASS a.href is 'https://undefined:8080/path/'
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test setting the pathname attribute of the URL in HTMLAnchorElement.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Set pathname that starts with slash
+PASS a.href is 'https://www.mydomain.com/path%20name?key=value'
+Set pathname that does not start with slash and contains '?'
+PASS a.href is 'https://www.mydomain.com/pa%3Fth?key=value'
+Set pathname that starts with double slash and contains '#'
+PASS a.href is 'https://www.mydomain.com//path%23name?key=value'
+Set a pathname containing .. in it
+PASS a.href is 'https://www.mydomain.com/path?key=value'
+Set pathname to null
+PASS a.href is 'https://www.mydomain.com/?key=value'
+Set pathname to empty string
+PASS a.href is 'https://www.mydomain.com/?key=value'
+Set pathname that includes illegal characters to URL that contains illegal characters.
+FAIL a.href should be https://www.my|d[]()omain.com/path/testurl.html?key=value. Was https://www.my%7Cd[]%28%29omain.com/p$a%7Cth?key=value.
+Set pathname to URL that contains '@' in host
+PASS a.href is 'http://w@/path#ww'
+Set pathname to a URL with non-hierarchical protocol
+PASS a.href is 'tel:+1800-555-1212'
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test setting the port attribute of the URL in HTMLAnchorElement.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Default port as number
+PASS a.href is 'https://www.mydomain.com/path/testurl.html?key=value'
+Default port as string
+PASS a.href is 'https://www.mydomain.com/path/testurl.html?key=value'
+Set port to 0
+FAIL a.href should be https://www.mydomain.com:0/path/testurl.html?key=value. Was https://www.mydomain.com/path/testurl.html?key=value.
+Set port to non-number
+PASS a.href is 'https://www.mydomain.com:4/path/testurl.html?key=value'
+Set port to null
+FAIL a.href should be https://www.mydomain.com:0/path/testurl.html?key=value. Was https://www.mydomain.com/path/testurl.html?key=value.
+Set port to empty string
+FAIL a.href should be https://www.mydomain.com:0/path/testurl.html?key=value. Was https://www.mydomain.com/path/testurl.html?key=value.
+Set port to undefined
+FAIL a.href should be https://www.mydomain.com:0/path/testurl.html?key=value. Was https://www.mydomain.com/path/testurl.html?key=value.
+Set port to URL with foo: protocol
+FAIL a.href should be foo://bar:50/. Was foo://bar/.
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+Test setting the search attribute of the URL in HTMLAnchorElement .
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Set search without '?'
+PASS a.href is 'https://www.mydomain.com/path/?value=key'
+Set search that starts with '?' and contains spaces
+PASS a.href is 'https://www.mydomain.com/path/?val%20ue=%20key?'
+Set search to a malformed URL
+FAIL a.href should be s:www.mydomain.com/path/?%. Was s:www.mydomain.com/path/.
+Set search containing '#'
+PASS a.href is 'https://www.mydomain.com/path/?value%23key#hash'
+Set search to a malformed URL
+FAIL a.href should be bad:/|/url?value=key. Was bad:/|/url.
+Set search to null
+PASS a.href is 'https://www.mydomain.com/path/'
+Set search to empty string
+PASS a.href is 'https://www.mydomain.com/path/?'
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+This tests that options elements are accessible by name from both a select element and the options collection, per HTML5.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Confirm that the option named 'test' is accessible from the select element
+PASS select1.test.toString() is "[object HTMLOptionElement]"
+PASS select1.test.value is "Value"
+Confirm that the option named 'test' is accessible from the options collection
+PASS select1.options.test.toString() is "[object HTMLOptionElement]"
+PASS select1.options.test.value is "Value"
+Confirm that both options named 'test' are accessible from the select element
+PASS select2.test.length is 2
+PASS select2.test.toString() is "[object NodeList]"
+PASS select2.test[0].value is "Value1"
+PASS select2.test[1].value is "Value2"
+Confirm that both options named 'test' are accessible from the options collection
+PASS select2.options.test.length is 2
+PASS select2.options.test.toString() is "[object NodeList]"
+PASS select2.options.test[0].value is "Value1"
+PASS select2.options.test[1].value is "Value2"
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+CONSOLE MESSAGE: line 7: Uncaught Error: NOT_FOUND_ERR: DOM Exception 8
+This passes if it does not crash. (see https://bugs.webkit.org/show_bug.cgi?id=18958)
--- /dev/null
+Test 1
+PASS rects.length is 5
+PASS rects[0].left is 8
+PASS rects[0].top is 8
+PASS rects[0].width is 400
+PASS rects[0].height is 160
+PASS rects[1].left is 8
+PASS rects[1].top is 19
+PASS rects[1].width is 396
+PASS rects[1].height is 18
+PASS rects[2].left is 8
+PASS rects[2].top is 59
+PASS rects[2].width is 398
+PASS rects[2].height is 18
+PASS rects[3].left is 8
+PASS rects[3].top is 99
+PASS rects[3].width is 360
+PASS rects[3].height is 18
+PASS rects[4].left is 8
+PASS rects[4].top is 139
+PASS rects[4].width is 306
+PASS rects[4].height is 18
+Test 2
+PASS rects.length is 4
+PASS rects[0].left is 8
+PASS rects[0].top is 215
+PASS rects[0].width is 396
+PASS rects[0].height is 18
+PASS rects[1].left is 8
+PASS rects[1].top is 255
+PASS rects[1].width is 398
+PASS rects[1].height is 18
+PASS rects[2].left is 8
+PASS rects[2].top is 295
+PASS rects[2].width is 360
+PASS rects[2].height is 18
+PASS rects[3].left is 8
+PASS rects[3].top is 335
+PASS rects[3].width is 306
+PASS rects[3].height is 18
+Test 3
+PASS rects.length is 4
+PASS rects[0].left is 80
+PASS rects[0].top is 411
+PASS rects[0].width is 324
+PASS rects[0].height is 18
+PASS rects[1].left is 8
+PASS rects[1].top is 451
+PASS rects[1].width is 398
+PASS rects[1].height is 18
+PASS rects[2].left is 8
+PASS rects[2].top is 491
+PASS rects[2].width is 360
+PASS rects[2].height is 18
+PASS rects[3].left is 8
+PASS rects[3].top is 531
+PASS rects[3].width is 88
+PASS rects[3].height is 18
+Test 4
+PASS rects.length is 7
+PASS rects[0].left is 8
+PASS rects[0].top is 596
+PASS rects[0].width is 400
+PASS rects[0].height is 278
+PASS rects[1].left is 8
+PASS rects[1].top is 607
+PASS rects[1].width is 396
+PASS rects[1].height is 18
+PASS rects[2].left is 8
+PASS rects[2].top is 725
+PASS rects[2].width is 242
+PASS rects[2].height is 18
+PASS rects[3].left is 326
+PASS rects[3].top is 725
+PASS rects[3].width is 44
+PASS rects[3].height is 18
+PASS rects[4].left is 8
+PASS rects[4].top is 765
+PASS rects[4].width is 341
+PASS rects[4].height is 18
+PASS rects[5].left is 8
+PASS rects[5].top is 805
+PASS rects[5].width is 366
+PASS rects[5].height is 18
+PASS rects[6].left is 8
+PASS rects[6].top is 845
+PASS rects[6].width is 67
+PASS rects[6].height is 18
+Test 5
+PASS rects.length is 5
+PASS rects[0].left is 80
+PASS rects[0].top is 921
+PASS rects[0].width is 324
+PASS rects[0].height is 18
+PASS rects[1].left is 8
+PASS rects[1].top is 1039
+PASS rects[1].width is 242
+PASS rects[1].height is 18
+PASS rects[2].left is 250
+PASS rects[2].top is 950
+PASS rects[2].width is 76
+PASS rects[2].height is 103
+PASS rects[3].left is 326
+PASS rects[3].top is 1039
+PASS rects[3].width is 44
+PASS rects[3].height is 18
+PASS rects[4].left is 8
+PASS rects[4].top is 1079
+PASS rects[4].width is 284
+PASS rects[4].height is 18
+Test 6
+PASS rects.length is 7
+PASS rects[0].left is 8
+PASS rects[0].top is 1224
+PASS rects[0].width is 400
+PASS rects[0].height is 200
+PASS rects[1].left is 8
+PASS rects[1].top is 1235
+PASS rects[1].width is 396
+PASS rects[1].height is 18
+PASS rects[2].left is 8
+PASS rects[2].top is 1275
+PASS rects[2].width is 57
+PASS rects[2].height is 18
+PASS rects[3].left is 105
+PASS rects[3].top is 1275
+PASS rects[3].width is 44
+PASS rects[3].height is 18
+PASS rects[4].left is 8
+PASS rects[4].top is 1315
+PASS rects[4].width is 387
+PASS rects[4].height is 18
+PASS rects[5].left is 8
+PASS rects[5].top is 1355
+PASS rects[5].width is 397
+PASS rects[5].height is 18
+PASS rects[6].left is 8
+PASS rects[6].top is 1395
+PASS rects[6].width is 171
+PASS rects[6].height is 18
+Test 7
+PASS rects.length is 7
+PASS rects[0].left is 8
+PASS rects[0].top is 1471
+PASS rects[0].width is 396
+PASS rects[0].height is 18
+PASS rects[1].left is 8
+PASS rects[1].top is 1500
+PASS rects[1].width is 400
+PASS rects[1].height is 40
+PASS rects[2].left is 8
+PASS rects[2].top is 1511
+PASS rects[2].width is 57
+PASS rects[2].height is 18
+PASS rects[3].left is 105
+PASS rects[3].top is 1511
+PASS rects[3].width is 44
+PASS rects[3].height is 18
+PASS rects[4].left is 8
+PASS rects[4].top is 1551
+PASS rects[4].width is 387
+PASS rects[4].height is 18
+PASS rects[5].left is 8
+PASS rects[5].top is 1591
+PASS rects[5].width is 397
+PASS rects[5].height is 18
+PASS rects[6].left is 8
+PASS rects[6].top is 1631
+PASS rects[6].width is 171
+PASS rects[6].height is 18
+Test 8
+PASS rects.length is 4
+PASS rects[0].left is 168
+PASS rects[0].top is 1678
+PASS rects[0].width is 269
+PASS rects[0].height is 316
+PASS rects[1].left is 137
+PASS rects[1].top is 1704
+PASS rects[1].width is 271
+PASS rects[1].height is 317
+PASS rects[2].left is 107
+PASS rects[2].top is 1729
+PASS rects[2].width is 246
+PASS rects[2].height is 289
+PASS rects[3].left is 76
+PASS rects[3].top is 1755
+PASS rects[3].width is 212
+PASS rects[3].height is 247
+Test 9
+FAIL rects.length should be 1. Was 0.
+FAIL rects[0].left should be 8. Threw exception TypeError: Cannot read property 'left' of undefined
+FAIL rects[0].top should be 1903. Threw exception TypeError: Cannot read property 'top' of undefined
+FAIL rects[0].width should be 0. Threw exception TypeError: Cannot read property 'width' of undefined
+FAIL rects[0].height should be 18. Threw exception TypeError: Cannot read property 'height' of undefined
+Test 9b
+PASS rects.length is 1
+PASS rects[0].left is 8
+PASS rects[0].top is 1903
+PASS rects[0].width is 0
+PASS rects[0].height is 18
+PASS successfullyParsed is true
+
+TEST COMPLETE
--- /dev/null
+dumpNodeList
+------------------------------------
+Only differ in error message and V8's error message is more informative.
--- /dev/null
+Line 1
+Line 2
+Line 3
+
+line 4
+line 5
+
+Document.querySelectorAll
+
+[object HTMLDivElement], length: 1
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], length: 2
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 4
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 5
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+length: 0
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], length: 4
+
+Element.querySelectorAll
+
+length: 0
+[object HTMLDivElement], length: 1
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], length: 2
+[object HTMLDivElement], [object HTMLParagraphElement], length: 2
+[object HTMLDivElement], [object HTMLParagraphElement], length: 2
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+length: 0
+length: 0
+
+DocumentFragment.querySelectorAll
+
+[object HTMLDivElement], length: 1
+[object HTMLDivElement], length: 1
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], length: 2
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 3
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 3
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+length: 0
+length: 0
+
+Document.querySelector
+
+[object HTMLDivElement]
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+[object HTMLDivElement]
+[object HTMLDivElement]
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+TypeError: Cannot call method 'dump' of null
+TypeError: Cannot call method 'dump' of null
+
+Element.querySelector
+
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+[object HTMLDivElement]
+[object HTMLDivElement]
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+TypeError: Cannot call method 'dump' of null
+TypeError: Cannot call method 'dump' of null
+
+DocumentFragment.querySelector
+
+[object HTMLDivElement]
+[object HTMLDivElement]
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+[object HTMLDivElement]
+[object HTMLDivElement]
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+TypeError: Cannot call method 'dump' of null
+TypeError: Cannot call method 'dump' of null
+
--- /dev/null
+Line 1
+Line 2
+Line 3
+
+line 4
+line 5
+
+Document.querySelectorAll
+
+[object HTMLDivElement], length: 1
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], length: 2
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 4
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 5
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+length: 0
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], [object HTMLDivElement], length: 4
+
+Element.querySelectorAll
+
+length: 0
+[object HTMLDivElement], length: 1
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], length: 2
+[object HTMLDivElement], [object HTMLParagraphElement], length: 2
+[object HTMLDivElement], [object HTMLParagraphElement], length: 2
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+length: 0
+length: 0
+
+DocumentFragment.querySelectorAll
+
+[object HTMLDivElement], length: 1
+[object HTMLDivElement], length: 1
+length: 0
+[object HTMLDivElement], [object HTMLDivElement], length: 2
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 3
+[object HTMLDivElement], [object HTMLDivElement], [object HTMLParagraphElement], length: 3
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+length: 0
+length: 0
+
+Document.querySelector
+
+[object HTMLDivElement]
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+[object HTMLDivElement]
+[object HTMLDivElement]
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+TypeError: Cannot call method 'dump' of null
+TypeError: Cannot call method 'dump' of null
+
+Element.querySelector
+
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+[object HTMLDivElement]
+[object HTMLDivElement]
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+TypeError: Cannot call method 'dump' of null
+TypeError: Cannot call method 'dump' of null
+
+DocumentFragment.querySelector
+
+[object HTMLDivElement]
+[object HTMLDivElement]
+TypeError: Cannot call method 'dump' of null
+[object HTMLDivElement]
+[object HTMLDivElement]
+[object HTMLDivElement]
+Error: SYNTAX_ERR: DOM Exception 12
+Error: SYNTAX_ERR: DOM Exception 12
+TypeError: Cannot call method 'dump' of null
+TypeError: Cannot call method 'dump' of null
+
--- /dev/null
+This file documents why the various tests have been rebaselined.
+
+atob-btoa-expected.txt
+--------------------------
+window.btoa(window) calls window.toString first. KJS returns [object Window]
+and V8 returns [object global].
+
+element-constructors-on-window-exepcted.html
+--------------------------
+V8 has different output for HTMLElement.toString.
+
+new-window-opener-expected.txt
+------------------------------
+It is a time-sensitive test. Chrome passes all tests, Safari failed some,
+so the output expects some failures. Firefox sometimes passes all tests
+and sometimes fails some. Use Chrome's output as the baseline.
+
+window-custom-property
+----------------------
+V8 uses the string 'Cyclic' compared to KJS's 'cyclic' for the
+exception, resulting in different test results.
+
+window-property-shadowing
+get-set-properties
+-------------------------
+For security reasons, we do not allow window.top to be shadowed. This
+is because Flash accesses top.location and allowing the user to shadow
+top.location might therefore break Flash security checks.
+
--- /dev/null
+Test that HTML element constructors are accessible as window object properties.
+
+HTMLElement: function HTMLElement() { [native code] }
+
+HTMLAnchorElement: function HTMLAnchorElement() { [native code] }
+
+HTMLAppletElement: function HTMLAppletElement() { [native code] }
+
+HTMLAreaElement: function HTMLAreaElement() { [native code] }
+
+HTMLBaseElement: function HTMLBaseElement() { [native code] }
+
+HTMLBaseFontElement: function HTMLBaseFontElement() { [native code] }
+
+HTMLBodyElement: function HTMLBodyElement() { [native code] }
+
+HTMLBRElement: function HTMLBRElement() { [native code] }
+
+HTMLButtonElement: function HTMLButtonElement() { [native code] }
+
+HTMLDirectoryElement: function HTMLDirectoryElement() { [native code] }
+
+HTMLDivElement: function HTMLDivElement() { [native code] }
+
+HTMLDListElement: function HTMLDListElement() { [native code] }
+
+HTMLFieldSetElement: function HTMLFieldSetElement() { [native code] }
+
+HTMLFontElement: function HTMLFontElement() { [native code] }
+
+HTMLFormElement: function HTMLFormElement() { [native code] }
+
+HTMLFrameElement: function HTMLFrameElement() { [native code] }
+
+HTMLFrameSetElement: function HTMLFrameSetElement() { [native code] }
+
+HTMLHeadElement: function HTMLHeadElement() { [native code] }
+
+HTMLHeadingElement: function HTMLHeadingElement() { [native code] }
+
+HTMLHRElement: function HTMLHRElement() { [native code] }
+
+HTMLHtmlElement: function HTMLHtmlElement() { [native code] }
+
+HTMLIFrameElement: function HTMLIFrameElement() { [native code] }
+
+HTMLImageElement: function HTMLImageElement() { [native code] }
+
+HTMLInputElement: function HTMLInputElement() { [native code] }
+
+HTMLIsIndexElement: function HTMLIsIndexElement() { [native code] }
+
+HTMLLabelElement: function HTMLLabelElement() { [native code] }
+
+HTMLLegendElement: function HTMLLegendElement() { [native code] }
+
+HTMLLIElement: function HTMLLIElement() { [native code] }
+
+HTMLLinkElement: function HTMLLinkElement() { [native code] }
+
+HTMLMapElement: function HTMLMapElement() { [native code] }
+
+HTMLMenuElement: function HTMLMenuElement() { [native code] }
+
+HTMLMetaElement: function HTMLMetaElement() { [native code] }
+
+HTMLModElement: function HTMLModElement() { [native code] }
+
+HTMLObjectElement: function HTMLObjectElement() { [native code] }
+
+HTMLOListElement: function HTMLOListElement() { [native code] }
+
+HTMLOptGroupElement: function HTMLOptGroupElement() { [native code] }
+
+HTMLOptionElement: function HTMLOptionElement() { [native code] }
+
+HTMLParagraphElement: function HTMLParagraphElement() { [native code] }
+
+HTMLParamElement: function HTMLParamElement() { [native code] }
+
+HTMLPreElement: function HTMLPreElement() { [native code] }
+
+HTMLQuoteElement: function HTMLQuoteElement() { [native code] }
+
+HTMLScriptElement: function HTMLScriptElement() { [native code] }
+
+HTMLSelectElement: function HTMLSelectElement() { [native code] }
+
+HTMLStyleElement: function HTMLStyleElement() { [native code] }
+
+HTMLTableCaptionElement: function HTMLTableCaptionElement() { [native code] }
+
+HTMLTableCellElement: function HTMLTableCellElement() { [native code] }
+
+HTMLTableColElement: function HTMLTableColElement() { [native code] }
+
+HTMLTableElement: function HTMLTableElement() { [native code] }
+
+HTMLTableRowElement: function HTMLTableRowElement() { [native code] }
+
+HTMLTableSectionElement: function HTMLTableSectionElement() { [native code] }
+
+HTMLTextAreaElement: function HTMLTextAreaElement() { [native code] }
+
+HTMLTitleElement: function HTMLTitleElement() { [native code] }
+
+HTMLUListElement: function HTMLUListElement() { [native code] }
+
+HTMLCanvasElement: function HTMLCanvasElement() { [native code] }
+
+HTMLInsElement: undefined
+
+HTMLDelElement: undefined
+
+HTMLEmbedElement: function HTMLEmbedElement() { [native code] }
+
+HTMLMarqueeElement: function HTMLMarqueeElement() { [native code] }
--- /dev/null
+This page tests getting and setting window properties and functions.
+
+
+----- tests for getting/setting read-write properties -----
+
+PASS: canGet('Attr') should be 'true' and is.
+PASS: canSet('Attr') should be 'true' and is.
+PASS: canGet('CDATASection') should be 'true' and is.
+PASS: canSet('CDATASection') should be 'true' and is.
+PASS: canGet('CSSPrimitiveValue') should be 'true' and is.
+PASS: canSet('CSSPrimitiveValue') should be 'true' and is.
+PASS: canGet('CSSRule') should be 'true' and is.
+PASS: canSet('CSSRule') should be 'true' and is.
+PASS: canGet('CSSStyleDeclaration') should be 'true' and is.
+PASS: canSet('CSSStyleDeclaration') should be 'true' and is.
+PASS: canGet('CSSValue') should be 'true' and is.
+PASS: canSet('CSSValue') should be 'true' and is.
+PASS: canGet('CharacterData') should be 'true' and is.
+PASS: canSet('CharacterData') should be 'true' and is.
+PASS: canGet('Comment') should be 'true' and is.
+PASS: canSet('Comment') should be 'true' and is.
+PASS: canGet('DOMException') should be 'true' and is.
+PASS: canSet('DOMException') should be 'true' and is.
+PASS: canGet('DOMImplementation') should be 'true' and is.
+PASS: canSet('DOMImplementation') should be 'true' and is.
+PASS: canGet('DOMParser') should be 'true' and is.
+PASS: canSet('DOMParser') should be 'true' and is.
+PASS: canGet('Document') should be 'true' and is.
+PASS: canSet('Document') should be 'true' and is.
+PASS: canGet('DocumentFragment') should be 'true' and is.
+PASS: canSet('DocumentFragment') should be 'true' and is.
+PASS: canGet('DocumentType') should be 'true' and is.
+PASS: canSet('DocumentType') should be 'true' and is.
+PASS: canGet('Element') should be 'true' and is.
+PASS: canSet('Element') should be 'true' and is.
+PASS: canGet('Entity') should be 'true' and is.
+PASS: canSet('Entity') should be 'true' and is.
+PASS: canGet('EntityReference') should be 'true' and is.
+PASS: canSet('EntityReference') should be 'true' and is.
+PASS: canGet('EvalError') should be 'true' and is.
+PASS: canSet('EvalError') should be 'true' and is.
+PASS: canGet('Event') should be 'true' and is.
+PASS: canSet('Event') should be 'true' and is.
+PASS: canGet('HTMLAnchorElement') should be 'true' and is.
+PASS: canSet('HTMLAnchorElement') should be 'true' and is.
+PASS: canGet('HTMLAppletElement') should be 'true' and is.
+PASS: canSet('HTMLAppletElement') should be 'true' and is.
+PASS: canGet('HTMLAreaElement') should be 'true' and is.
+PASS: canSet('HTMLAreaElement') should be 'true' and is.
+PASS: canGet('HTMLBRElement') should be 'true' and is.
+PASS: canSet('HTMLBRElement') should be 'true' and is.
+PASS: canGet('HTMLBaseElement') should be 'true' and is.
+PASS: canSet('HTMLBaseElement') should be 'true' and is.
+PASS: canGet('HTMLBaseFontElement') should be 'true' and is.
+PASS: canSet('HTMLBaseFontElement') should be 'true' and is.
+PASS: canGet('HTMLBodyElement') should be 'true' and is.
+PASS: canSet('HTMLBodyElement') should be 'true' and is.
+PASS: canGet('HTMLButtonElement') should be 'true' and is.
+PASS: canSet('HTMLButtonElement') should be 'true' and is.
+PASS: canGet('HTMLCanvasElement') should be 'true' and is.
+PASS: canSet('HTMLCanvasElement') should be 'true' and is.
+PASS: canGet('HTMLDListElement') should be 'true' and is.
+PASS: canSet('HTMLDListElement') should be 'true' and is.
+PASS: canGet('HTMLDirectoryElement') should be 'true' and is.
+PASS: canSet('HTMLDirectoryElement') should be 'true' and is.
+PASS: canGet('HTMLDivElement') should be 'true' and is.
+PASS: canSet('HTMLDivElement') should be 'true' and is.
+PASS: canGet('HTMLDocument') should be 'true' and is.
+PASS: canSet('HTMLDocument') should be 'true' and is.
+PASS: canGet('HTMLElement') should be 'true' and is.
+PASS: canSet('HTMLElement') should be 'true' and is.
+PASS: canGet('HTMLFieldSetElement') should be 'true' and is.
+PASS: canSet('HTMLFieldSetElement') should be 'true' and is.
+PASS: canGet('HTMLFontElement') should be 'true' and is.
+PASS: canSet('HTMLFontElement') should be 'true' and is.
+PASS: canGet('HTMLFormElement') should be 'true' and is.
+PASS: canSet('HTMLFormElement') should be 'true' and is.
+PASS: canGet('HTMLFrameElement') should be 'true' and is.
+PASS: canSet('HTMLFrameElement') should be 'true' and is.
+PASS: canGet('HTMLFrameSetElement') should be 'true' and is.
+PASS: canSet('HTMLFrameSetElement') should be 'true' and is.
+PASS: canGet('HTMLHRElement') should be 'true' and is.
+PASS: canSet('HTMLHRElement') should be 'true' and is.
+PASS: canGet('HTMLHeadElement') should be 'true' and is.
+PASS: canSet('HTMLHeadElement') should be 'true' and is.
+PASS: canGet('HTMLHeadingElement') should be 'true' and is.
+PASS: canSet('HTMLHeadingElement') should be 'true' and is.
+PASS: canGet('HTMLHtmlElement') should be 'true' and is.
+PASS: canSet('HTMLHtmlElement') should be 'true' and is.
+PASS: canGet('HTMLIFrameElement') should be 'true' and is.
+PASS: canSet('HTMLIFrameElement') should be 'true' and is.
+PASS: canGet('HTMLImageElement') should be 'true' and is.
+PASS: canSet('HTMLImageElement') should be 'true' and is.
+PASS: canGet('HTMLInputElement') should be 'true' and is.
+PASS: canSet('HTMLInputElement') should be 'true' and is.
+PASS: canGet('HTMLIsIndexElement') should be 'true' and is.
+PASS: canSet('HTMLIsIndexElement') should be 'true' and is.
+PASS: canGet('HTMLLIElement') should be 'true' and is.
+PASS: canSet('HTMLLIElement') should be 'true' and is.
+PASS: canGet('HTMLLabelElement') should be 'true' and is.
+PASS: canSet('HTMLLabelElement') should be 'true' and is.
+PASS: canGet('HTMLLegendElement') should be 'true' and is.
+PASS: canSet('HTMLLegendElement') should be 'true' and is.
+PASS: canGet('HTMLLinkElement') should be 'true' and is.
+PASS: canSet('HTMLLinkElement') should be 'true' and is.
+PASS: canGet('HTMLMapElement') should be 'true' and is.
+PASS: canSet('HTMLMapElement') should be 'true' and is.
+PASS: canGet('HTMLMarqueeElement') should be 'true' and is.
+PASS: canSet('HTMLMarqueeElement') should be 'true' and is.
+PASS: canGet('HTMLMenuElement') should be 'true' and is.
+PASS: canSet('HTMLMenuElement') should be 'true' and is.
+PASS: canGet('HTMLMetaElement') should be 'true' and is.
+PASS: canSet('HTMLMetaElement') should be 'true' and is.
+PASS: canGet('HTMLModElement') should be 'true' and is.
+PASS: canSet('HTMLModElement') should be 'true' and is.
+PASS: canGet('HTMLOListElement') should be 'true' and is.
+PASS: canSet('HTMLOListElement') should be 'true' and is.
+PASS: canGet('HTMLOptGroupElement') should be 'true' and is.
+PASS: canSet('HTMLOptGroupElement') should be 'true' and is.
+PASS: canGet('HTMLOptionElement') should be 'true' and is.
+PASS: canSet('HTMLOptionElement') should be 'true' and is.
+PASS: canGet('HTMLParagraphElement') should be 'true' and is.
+PASS: canSet('HTMLParagraphElement') should be 'true' and is.
+PASS: canGet('HTMLParamElement') should be 'true' and is.
+PASS: canSet('HTMLParamElement') should be 'true' and is.
+PASS: canGet('HTMLPreElement') should be 'true' and is.
+PASS: canSet('HTMLPreElement') should be 'true' and is.
+PASS: canGet('HTMLQuoteElement') should be 'true' and is.
+PASS: canSet('HTMLQuoteElement') should be 'true' and is.
+PASS: canGet('HTMLScriptElement') should be 'true' and is.
+PASS: canSet('HTMLScriptElement') should be 'true' and is.
+PASS: canGet('HTMLSelectElement') should be 'true' and is.
+PASS: canSet('HTMLSelectElement') should be 'true' and is.
+PASS: canGet('HTMLStyleElement') should be 'true' and is.
+PASS: canSet('HTMLStyleElement') should be 'true' and is.
+PASS: canGet('HTMLTableCaptionElement') should be 'true' and is.
+PASS: canSet('HTMLTableCaptionElement') should be 'true' and is.
+PASS: canGet('HTMLTableCellElement') should be 'true' and is.
+PASS: canSet('HTMLTableCellElement') should be 'true' and is.
+PASS: canGet('HTMLTableColElement') should be 'true' and is.
+PASS: canSet('HTMLTableColElement') should be 'true' and is.
+PASS: canGet('HTMLTableElement') should be 'true' and is.
+PASS: canSet('HTMLTableElement') should be 'true' and is.
+PASS: canGet('HTMLTableRowElement') should be 'true' and is.
+PASS: canSet('HTMLTableRowElement') should be 'true' and is.
+PASS: canGet('HTMLTableSectionElement') should be 'true' and is.
+PASS: canSet('HTMLTableSectionElement') should be 'true' and is.
+PASS: canGet('HTMLTextAreaElement') should be 'true' and is.
+PASS: canSet('HTMLTextAreaElement') should be 'true' and is.
+PASS: canGet('HTMLTitleElement') should be 'true' and is.
+PASS: canSet('HTMLTitleElement') should be 'true' and is.
+PASS: canGet('HTMLUListElement') should be 'true' and is.
+PASS: canSet('HTMLUListElement') should be 'true' and is.
+PASS: canGet('Image') should be 'true' and is.
+PASS: canSet('Image') should be 'true' and is.
+PASS: canGet('MutationEvent') should be 'true' and is.
+PASS: canSet('MutationEvent') should be 'true' and is.
+PASS: canGet('Node') should be 'true' and is.
+PASS: canSet('Node') should be 'true' and is.
+PASS: canGet('NodeFilter') should be 'true' and is.
+PASS: canSet('NodeFilter') should be 'true' and is.
+PASS: canGet('Notation') should be 'true' and is.
+PASS: canSet('Notation') should be 'true' and is.
+PASS: canGet('Option') should be 'true' and is.
+PASS: canSet('Option') should be 'true' and is.
+PASS: canGet('ProcessingInstruction') should be 'true' and is.
+PASS: canSet('ProcessingInstruction') should be 'true' and is.
+PASS: canGet('Range') should be 'true' and is.
+PASS: canSet('Range') should be 'true' and is.
+PASS: canGet('RangeError') should be 'true' and is.
+PASS: canSet('RangeError') should be 'true' and is.
+PASS: canGet('RangeException') should be 'true' and is.
+PASS: canSet('RangeException') should be 'true' and is.
+PASS: canGet('ReferenceError') should be 'true' and is.
+PASS: canSet('ReferenceError') should be 'true' and is.
+PASS: canGet('SyntaxError') should be 'true' and is.
+PASS: canSet('SyntaxError') should be 'true' and is.
+PASS: canGet('Text') should be 'true' and is.
+PASS: canSet('Text') should be 'true' and is.
+PASS: canGet('TypeError') should be 'true' and is.
+PASS: canSet('TypeError') should be 'true' and is.
+PASS: canGet('URIError') should be 'true' and is.
+PASS: canSet('URIError') should be 'true' and is.
+PASS: canGet('XMLDocument') should be 'true' and is.
+PASS: canSet('XMLDocument') should be 'true' and is.
+PASS: canGet('XMLHttpRequest') should be 'true' and is.
+PASS: canSet('XMLHttpRequest') should be 'true' and is.
+PASS: canGet('XMLSerializer') should be 'true' and is.
+PASS: canSet('XMLSerializer') should be 'true' and is.
+PASS: canGet('XPathEvaluator') should be 'true' and is.
+PASS: canSet('XPathEvaluator') should be 'true' and is.
+PASS: canGet('XPathResult') should be 'true' and is.
+PASS: canSet('XPathResult') should be 'true' and is.
+PASS: canGet('XSLTProcessor') should be 'true' and is.
+PASS: canSet('XSLTProcessor') should be 'true' and is.
+PASS: canGet('addEventListener') should be 'true' and is.
+PASS: canSet('addEventListener') should be 'true' and is.
+PASS: canGet('alert') should be 'true' and is.
+PASS: canSet('alert') should be 'true' and is.
+PASS: canGet('atob') should be 'true' and is.
+PASS: canSet('atob') should be 'true' and is.
+PASS: canGet('btoa') should be 'true' and is.
+PASS: canSet('btoa') should be 'true' and is.
+PASS: canGet('captureEvents') should be 'true' and is.
+PASS: canSet('captureEvents') should be 'true' and is.
+PASS: canGet('clearInterval') should be 'true' and is.
+PASS: canSet('clearInterval') should be 'true' and is.
+PASS: canGet('clearTimeout') should be 'true' and is.
+PASS: canSet('clearTimeout') should be 'true' and is.
+PASS: canGet('clientInformation') should be 'true' and is.
+PASS: canSet('clientInformation') should be 'true' and is.
+PASS: canGet('console') should be 'true' and is.
+PASS: canSet('console') should be 'true' and is.
+PASS: canGet('devicePixelRatio') should be 'true' and is.
+PASS: canSet('devicePixelRatio') should be 'true' and is.
+PASS: canGet('event') should be 'true' and is.
+PASS: canSet('event') should be 'true' and is.
+PASS: canGet('frames') should be 'true' and is.
+PASS: canSet('frames') should be 'true' and is.
+PASS: canGet('innerHeight') should be 'true' and is.
+PASS: canSet('innerHeight') should be 'true' and is.
+PASS: canGet('innerWidth') should be 'true' and is.
+PASS: canSet('innerWidth') should be 'true' and is.
+PASS: canGet('length') should be 'true' and is.
+PASS: canSet('length') should be 'true' and is.
+PASS: canGet('locationbar') should be 'true' and is.
+PASS: canSet('locationbar') should be 'true' and is.
+PASS: canGet('menubar') should be 'true' and is.
+PASS: canSet('menubar') should be 'true' and is.
+PASS: canGet('navigator') should be 'true' and is.
+PASS: canSet('navigator') should be 'true' and is.
+PASS: canGet('offscreenBuffering') should be 'true' and is.
+PASS: canSet('offscreenBuffering') should be 'true' and is.
+PASS: canGet('opener') should be 'true' and is.
+PASS: canSet('opener') should be 'true' and is.
+PASS: canGet('outerHeight') should be 'true' and is.
+PASS: canSet('outerHeight') should be 'true' and is.
+PASS: canGet('outerWidth') should be 'true' and is.
+PASS: canSet('outerWidth') should be 'true' and is.
+PASS: canGet('parent') should be 'true' and is.
+PASS: canSet('parent') should be 'true' and is.
+PASS: canGet('personalbar') should be 'true' and is.
+PASS: canSet('personalbar') should be 'true' and is.
+PASS: canGet('screenLeft') should be 'true' and is.
+PASS: canSet('screenLeft') should be 'true' and is.
+PASS: canGet('screenTop') should be 'true' and is.
+PASS: canSet('screenTop') should be 'true' and is.
+PASS: canGet('screenX') should be 'true' and is.
+PASS: canSet('screenX') should be 'true' and is.
+PASS: canGet('screenY') should be 'true' and is.
+PASS: canSet('screenY') should be 'true' and is.
+PASS: canGet('scrollX') should be 'true' and is.
+PASS: canSet('scrollX') should be 'true' and is.
+PASS: canGet('scrollY') should be 'true' and is.
+PASS: canSet('scrollY') should be 'true' and is.
+PASS: canGet('scrollbars') should be 'true' and is.
+PASS: canSet('scrollbars') should be 'true' and is.
+PASS: canGet('self') should be 'true' and is.
+PASS: canSet('self') should be 'true' and is.
+PASS: canGet('statusbar') should be 'true' and is.
+PASS: canSet('statusbar') should be 'true' and is.
+PASS: canGet('toolbar') should be 'true' and is.
+PASS: canSet('toolbar') should be 'true' and is.
+PASS: canGet('top') should be 'true' and is.
+*** FAIL: canSet('top') should be 'true' but instead is false. ***
+
+----- tests for getting/setting readonly properties -----
+
+PASS: canGet('closed') should be 'true' and is.
+PASS: canSet('closed') should be 'false' and is.
+PASS: canGet('document') should be 'true' and is.
+PASS: canSet('document') should be 'false' and is.
+PASS: canGet('history') should be 'true' and is.
+PASS: canSet('history') should be 'false' and is.
+PASS: canGet('pageXOffset') should be 'true' and is.
+PASS: canSet('pageXOffset') should be 'false' and is.
+PASS: canGet('pageYOffset') should be 'true' and is.
+PASS: canSet('pageYOffset') should be 'false' and is.
+PASS: canGet('window') should be 'true' and is.
+PASS: canSet('window') should be 'false' and is.
+
+----- tests for getting/setting string properties -----
+
+PASS: canGet('defaultStatus') should be 'true' and is.
+PASS: canSetWithTypeConversion('defaultStatus') should be 'true' and is.
+PASS: canGet('defaultstatus') should be 'true' and is.
+PASS: canSetWithTypeConversion('defaultstatus') should be 'true' and is.
+PASS: canGet('name') should be 'true' and is.
+PASS: canSetWithTypeConversion('name') should be 'true' and is.
+PASS: canGet('status') should be 'true' and is.
+PASS: canSetWithTypeConversion('status') should be 'true' and is.
+
+----- tests for getting/setting functions -----
+
+PASS: canGet('blur') should be 'true' and is.
+PASS: canSet('blur') should be 'true' and is.
+PASS: canGet('close') should be 'true' and is.
+PASS: canSet('close') should be 'true' and is.
+PASS: canGet('confirm') should be 'true' and is.
+PASS: canSet('confirm') should be 'true' and is.
+PASS: canGet('find') should be 'true' and is.
+PASS: canSet('find') should be 'true' and is.
+PASS: canGet('focus') should be 'true' and is.
+PASS: canSet('focus') should be 'true' and is.
+PASS: canGet('getComputedStyle') should be 'true' and is.
+PASS: canSet('getComputedStyle') should be 'true' and is.
+PASS: canGet('getMatchedCSSRules') should be 'true' and is.
+PASS: canSet('getMatchedCSSRules') should be 'true' and is.
+PASS: canGet('getSelection') should be 'true' and is.
+PASS: canSet('getSelection') should be 'true' and is.
+PASS: canGet('moveBy') should be 'true' and is.
+PASS: canSet('moveBy') should be 'true' and is.
+PASS: canGet('moveTo') should be 'true' and is.
+PASS: canSet('moveTo') should be 'true' and is.
+PASS: canGet('onabort') should be 'true' and is.
+PASS: canSet('onabort') should be 'true' and is.
+PASS: canGet('onbeforeunload') should be 'true' and is.
+PASS: canSet('onbeforeunload') should be 'true' and is.
+PASS: canGet('onblur') should be 'true' and is.
+PASS: canSet('onblur') should be 'true' and is.
+PASS: canGet('onchange') should be 'true' and is.
+PASS: canSet('onchange') should be 'true' and is.
+PASS: canGet('onclick') should be 'true' and is.
+PASS: canSet('onclick') should be 'true' and is.
+PASS: canGet('ondblclick') should be 'true' and is.
+PASS: canSet('ondblclick') should be 'true' and is.
+PASS: canGet('onerror') should be 'true' and is.
+PASS: canSet('onerror') should be 'true' and is.
+PASS: canGet('onfocus') should be 'true' and is.
+PASS: canSet('onfocus') should be 'true' and is.
+PASS: canGet('onkeydown') should be 'true' and is.
+PASS: canSet('onkeydown') should be 'true' and is.
+PASS: canGet('onkeypress') should be 'true' and is.
+PASS: canSet('onkeypress') should be 'true' and is.
+PASS: canGet('onkeyup') should be 'true' and is.
+PASS: canSet('onkeyup') should be 'true' and is.
+PASS: canGet('onload') should be 'true' and is.
+PASS: canSet('onload') should be 'true' and is.
+PASS: canGet('onmousedown') should be 'true' and is.
+PASS: canSet('onmousedown') should be 'true' and is.
+PASS: canGet('onmousemove') should be 'true' and is.
+PASS: canSet('onmousemove') should be 'true' and is.
+PASS: canGet('onmouseout') should be 'true' and is.
+PASS: canSet('onmouseout') should be 'true' and is.
+PASS: canGet('onmouseover') should be 'true' and is.
+PASS: canSet('onmouseover') should be 'true' and is.
+PASS: canGet('onmouseup') should be 'true' and is.
+PASS: canSet('onmouseup') should be 'true' and is.
+PASS: canGet('onmousewheel') should be 'true' and is.
+PASS: canSet('onmousewheel') should be 'true' and is.
+PASS: canGet('onreset') should be 'true' and is.
+PASS: canSet('onreset') should be 'true' and is.
+PASS: canGet('onresize') should be 'true' and is.
+PASS: canSet('onresize') should be 'true' and is.
+PASS: canGet('onscroll') should be 'true' and is.
+PASS: canSet('onscroll') should be 'true' and is.
+PASS: canGet('onsearch') should be 'true' and is.
+PASS: canSet('onsearch') should be 'true' and is.
+PAS