OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <style type="text/css"> | 3 <style type="text/css"> |
4 .pass { color: green; } | 4 .pass { color: green; } |
5 .fail { color: red; } | 5 .fail { color: red; } |
6 </style> | 6 </style> |
7 <style type="text/css"> | 7 <style type="text/css"> |
8 .foo { color: black; } | 8 .foo { color: black; } |
9 @media screen { | 9 @media screen { |
10 .bar { color: blue; } | 10 .bar { color: blue; } |
11 } | 11 } |
12 </style> | 12 @keyframes name { } |
| 13 @page { } |
| 14 </style> |
| 15 <!-- @charset must be the first rule per spec, and additionally |
| 16 with no leading whitespace per our parser. --> |
| 17 <style>@charset "UTF-8";</style> |
13 <script> | 18 <script> |
14 function printOut(msg) { | 19 function printOut(msg) { |
15 var console = document.getElementById("console"); | 20 var console = document.getElementById("console"); |
16 var span = document.createElement('span'); | 21 var span = document.createElement('span'); |
17 span.innerHTML = msg + '<br>'; | 22 span.innerHTML = msg + '<br>'; |
18 console.appendChild(span); | 23 console.appendChild(span); |
19 } | 24 } |
20 | 25 |
21 function resultStringifier(result) | 26 function resultStringifier(result) |
22 { | 27 { |
(...skipping 17 matching lines...) Expand all Loading... |
40 result = "<span class='fail'>TEST FAILED:</span> The value shoul
d have been " + resultStringifier(expected) + " but was " + resultStringifier(el
ement[attr]) + "."; | 45 result = "<span class='fail'>TEST FAILED:</span> The value shoul
d have been " + resultStringifier(expected) + " but was " + resultStringifier(el
ement[attr]) + "."; |
41 | 46 |
42 result += " [tested " + elementType + "." + attr + "]"; | 47 result += " [tested " + elementType + "." + attr + "]"; |
43 printOut(result); | 48 printOut(result); |
44 } | 49 } |
45 | 50 |
46 function runTests() { | 51 function runTests() { |
47 if (window.testRunner) | 52 if (window.testRunner) |
48 testRunner.dumpAsText(); | 53 testRunner.dumpAsText(); |
49 | 54 |
50 var rules = document.getElementsByTagName('style')[1].sheet.cssRules
; | 55 var rules = document.styleSheets[1].cssRules; |
51 | 56 |
52 var rule = rules.item(0); | 57 var rule = rules[0]; |
| 58 var mediaRule = rules[1]; |
| 59 var keyframesRule = rules[2]; |
| 60 var pageRule = rules[3]; |
| 61 var charsetRule = document.styleSheets[2].cssRules[0]; |
53 var style = rule.style; | 62 var style = rule.style; |
54 var value = style.getPropertyCSSValue('color'); | 63 var value = style.getPropertyCSSValue('color'); |
55 var mediaList = rules.item(1).media; | 64 var mediaList = mediaRule.media; |
56 | |
57 | 65 |
58 var listing = [ | 66 var listing = [ |
59 { | 67 { |
60 type: 'CSSRule', | 68 type: 'CSSRule', |
61 elementToUse: rule, | 69 elementToUse: rule, |
62 attributes: [ | 70 attributes: [ |
63 // for now, setting cssText does not doing anything. Wh
en it gets implemented, the expectedNull | 71 // 'null' is not a valid rule, so the setter does nothi
ng. |
64 // should become the empty string. | |
65 {name: 'cssText', expectedNull: '.foo { color: black; }'
} | 72 {name: 'cssText', expectedNull: '.foo { color: black; }'
} |
66 ] | 73 ] |
67 }, | 74 }, |
68 { | 75 { |
| 76 type: 'CSSCharsetRule', |
| 77 elementToUse: charsetRule, |
| 78 attributes: [ |
| 79 {name: 'encoding', expectedNull: 'null'} |
| 80 ] |
| 81 }, |
| 82 { |
| 83 type: 'CSSKeyframesRule', |
| 84 elementToUse: keyframesRule, |
| 85 attributes: [ |
| 86 {name: 'name', expectedNull: 'null'} |
| 87 ] |
| 88 }, |
| 89 { |
| 90 type: 'CSSPageRule', |
| 91 elementToUse: pageRule, |
| 92 attributes: [ |
| 93 {name: 'selectorText', expectedNull: '@page null'} |
| 94 ] |
| 95 }, |
| 96 { |
69 type: 'CSSStyleRule', | 97 type: 'CSSStyleRule', |
70 elementToUse: rule, | 98 elementToUse: rule, |
71 attributes: [ | 99 attributes: [ |
72 // for now, setting selectorText does not doing anythin
g. When it gets implemented, the expectedNull | 100 {name: 'selectorText', expectedNull: 'null'} |
73 // should become the empty string. | |
74 {name: 'selectorText', expectedNull: '.foo'} | |
75 ] | 101 ] |
76 }, | 102 }, |
77 { | 103 { |
78 type: 'CSSStyleDeclaration', | 104 type: 'CSSStyleDeclaration', |
79 elementToUse: style, | 105 elementToUse: style, |
80 attributes: [ | 106 attributes: [ |
81 // cssText detects syntax errors, such as JS null, and s
ets the value to the empty string. | 107 // cssText detects syntax errors, such as JS null, and s
ets the value to the empty string. |
82 {name: 'cssText', expectedNull: ''} | 108 {name: 'cssText', expectedNull: ''} |
83 ] | 109 ] |
84 }, | 110 }, |
85 { | 111 { |
86 type: 'CSSValue', | 112 type: 'CSSValue', |
87 elementToUse: value, | 113 elementToUse: value, |
88 attributes: [ | 114 attributes: [ |
89 // for now, setting cssText does not doing anything. Whe
n it gets implemented, the expectedNull | 115 // for now, setting cssText does not doing anything. Whe
n it gets implemented, the expectedNull |
90 // should become the empty string. | 116 // should become the empty string. |
91 {name: 'cssText', expectedNull: 'black'} | 117 {name: 'cssText', expectedNull: 'black'} |
92 ] | 118 ] |
93 }, | 119 }, |
94 { | 120 { |
95 type: 'MediaList', | 121 type: 'MediaList', |
96 elementToUse: mediaList, | 122 elementToUse: mediaList, |
97 attributes: [ | 123 attributes: [ |
98 {name: 'mediaText', expectedNull: ''} | 124 {name: 'mediaText', expectedNull: ''} |
99 ] | 125 ] |
100 } | 126 } |
101 // ,{ | |
102 // type: 'PageRule', | |
103 // elementToUse: mediaList, | |
104 // attributes: [ | |
105 // {name: 'cssText', expectedNull: ''} | |
106 // ] | |
107 // } | |
108 ]; | 127 ]; |
109 | 128 |
110 for (element in listing) { | 129 for (element in listing) { |
111 var type = listing[element].type; | 130 var type = listing[element].type; |
112 var elementToUse = listing[element].elementToUse; | 131 var elementToUse = listing[element].elementToUse; |
113 var attrs = listing[element].attributes; | 132 var attrs = listing[element].attributes; |
114 for (attr in attrs) { | 133 for (attr in attrs) { |
115 nullTestElementAttribute(type, elementToUse, attrs[attr].nam
e, attrs[attr].expectedNull); | 134 nullTestElementAttribute(type, elementToUse, attrs[attr].nam
e, attrs[attr].expectedNull); |
116 } | 135 } |
117 printOut(''); | 136 printOut(''); |
118 } | 137 } |
119 } | 138 } |
120 </script> | 139 </script> |
121 </head> | 140 </head> |
122 <body onload="runTests()"> | 141 <body onload="runTests()"> |
123 <p>This test setting various attributes of a CSSOM elements to JavaScript nu
ll.</p> | 142 <p>This test setting various attributes of a CSSOM elements to JavaScript nu
ll.</p> |
124 <div id="console"></div> | 143 <div id="console"></div> |
125 </body> | 144 </body> |
126 </html> | 145 </html> |
OLD | NEW |