OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../../../resources/testharness.js"></script> | 2 <script src="../../../resources/testharness.js"></script> |
3 <script src="../../../resources/testharnessreport.js"></script> | 3 <script src="../../../resources/testharnessreport.js"></script> |
4 <style> | 4 <style> |
5 div { | 5 div { |
6 width: 400px; | 6 width: 400px; |
7 height: 50px; | 7 height: 50px; |
8 margin-bottom: 5px; | 8 margin-bottom: 5px; |
9 } | 9 } |
10 | 10 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 background-color: var(--m, var(--o, green)); | 92 background-color: var(--m, var(--o, green)); |
93 } | 93 } |
94 | 94 |
95 #secondarycycle_fallback_r { | 95 #secondarycycle_fallback_r { |
96 --n: var(--m, pink); | 96 --n: var(--m, pink); |
97 --m: var(--n, var(--o)); | 97 --m: var(--n, var(--o)); |
98 --o: var(--m, red); | 98 --o: var(--m, red); |
99 background-color: orange; | 99 background-color: orange; |
100 background-color: var(--n, var(--o, green)); | 100 background-color: var(--n, var(--o, green)); |
101 } | 101 } |
| 102 |
| 103 #twocycle_with_separate_fallback { |
| 104 --a: var(--b) var(--c, red); |
| 105 --b: var(--a) var(--c, red); |
| 106 background-color: orange; |
| 107 background-color: var(--a, green); |
| 108 } |
| 109 |
| 110 #linked_cycles_a { |
| 111 --a: var(--b) var(--c, red); |
| 112 --b: var(--a) var(--c, red); |
| 113 --c: var(--a); |
| 114 background-color: orange; |
| 115 background-color: var(--a, green); |
| 116 } |
| 117 |
| 118 #linked_cycles_b { |
| 119 --a: var(--b) var(--c, var(--d)); |
| 120 --b: var(--a) var(--c, red); |
| 121 --d: var(--a); |
| 122 background-color: orange; |
| 123 background-color: var(--a, var(--d, green)); |
| 124 } |
| 125 |
| 126 #fallback_self_reference_a { |
| 127 --a: red; |
| 128 --b: var(--a, var(--b)); |
| 129 --c: var(--b, green); |
| 130 background-color: orange; |
| 131 background-color: var(--c, red); |
| 132 } |
| 133 |
| 134 #fallback_self_reference_b { |
| 135 --b: red; |
| 136 --c: var(--b, var(--c)); |
| 137 --a: var(--c, green); |
| 138 background-color: orange; |
| 139 background-color: var(--a, red); |
| 140 } |
| 141 |
| 142 #fallback_self_reference_c { |
| 143 --c: red; |
| 144 --a: var(--c, var(--a)); |
| 145 --b: var(--a, green); |
| 146 background-color: orange; |
| 147 background-color: var(--b, red); |
| 148 } |
| 149 |
102 </style> | 150 </style> |
103 | 151 |
104 <div id=twocycleinfallback_a></div> | 152 <div id=twocycleinfallback_a></div> |
105 <div id=twocycleinfallback_ra></div> | 153 <div id=twocycleinfallback_ra></div> |
106 <div id=twocycleinfallback_b></div> | 154 <div id=twocycleinfallback_b></div> |
107 <div id=twocycleinfallback_rb></div> | 155 <div id=twocycleinfallback_rb></div> |
108 <div id=twocycleinchain_a></div> | 156 <div id=twocycleinchain_a></div> |
109 <div id=twocycleinchain_ra></div> | 157 <div id=twocycleinchain_ra></div> |
110 <div id=twocycleinchain_b></div> | 158 <div id=twocycleinchain_b></div> |
111 <div id=twocycleinchain_rb></div> | 159 <div id=twocycleinchain_rb></div> |
112 <div id=secondarycycle_chain></div> | 160 <div id=secondarycycle_chain></div> |
113 <div id=secondarycycle_chain_r></div> | 161 <div id=secondarycycle_chain_r></div> |
114 <div id=secondarycycle_fallback></div> | 162 <div id=secondarycycle_fallback></div> |
115 <div id=secondarycycle_fallback_r></div> | 163 <div id=secondarycycle_fallback_r></div> |
| 164 <div id=twocycle_with_separate_fallback></div> |
| 165 <div id=linked_cycles_a></div> |
| 166 <div id=linked_cycles_b></div> |
| 167 <div id=fallback_self_reference_a></div> |
| 168 <div id=fallback_self_reference_b></div> |
| 169 <div id=fallback_self_reference_c></div> |
116 | 170 |
117 <script> | 171 <script> |
118 test(function() { | 172 test(function() { |
119 assert_equals(getComputedStyle(twocycleinfallback_a).backgroundColor, 'rgb(0,
128, 0)'); | 173 assert_equals(getComputedStyle(twocycleinfallback_a).backgroundColor, 'rgb(0,
128, 0)'); |
120 assert_equals(getComputedStyle(twocycleinfallback_ra).backgroundColor, 'rgb(0,
128, 0)'); | 174 assert_equals(getComputedStyle(twocycleinfallback_ra).backgroundColor, 'rgb(0,
128, 0)'); |
121 }, 'A cycle is still invalid if it uses fallbacks (fallback forced)'); | 175 }, 'A cycle is still invalid if it uses fallbacks (fallback forced)'); |
122 | 176 |
123 test(function() { | 177 test(function() { |
124 assert_equals(getComputedStyle(twocycleinfallback_b).backgroundColor, 'rgb(0,
128, 0)'); | 178 assert_equals(getComputedStyle(twocycleinfallback_b).backgroundColor, 'rgb(0,
128, 0)'); |
125 assert_equals(getComputedStyle(twocycleinfallback_rb).backgroundColor, 'rgb(0,
128, 0)'); | 179 assert_equals(getComputedStyle(twocycleinfallback_rb).backgroundColor, 'rgb(0,
128, 0)'); |
(...skipping 11 matching lines...) Expand all Loading... |
137 | 191 |
138 test(function() { | 192 test(function() { |
139 assert_equals(getComputedStyle(secondarycycle_chain).backgroundColor, 'rgb(0,
128, 0)'); | 193 assert_equals(getComputedStyle(secondarycycle_chain).backgroundColor, 'rgb(0,
128, 0)'); |
140 assert_equals(getComputedStyle(secondarycycle_chain_r).backgroundColor, 'rgb(0
, 128, 0)'); | 194 assert_equals(getComputedStyle(secondarycycle_chain_r).backgroundColor, 'rgb(0
, 128, 0)'); |
141 }, 'Secondary cycles need to be detected too (secondary cycle in chain)'); | 195 }, 'Secondary cycles need to be detected too (secondary cycle in chain)'); |
142 | 196 |
143 test(function() { | 197 test(function() { |
144 assert_equals(getComputedStyle(secondarycycle_fallback).backgroundColor, 'rgb(
0, 128, 0)'); | 198 assert_equals(getComputedStyle(secondarycycle_fallback).backgroundColor, 'rgb(
0, 128, 0)'); |
145 assert_equals(getComputedStyle(secondarycycle_fallback_r).backgroundColor, 'rg
b(0, 128, 0)'); | 199 assert_equals(getComputedStyle(secondarycycle_fallback_r).backgroundColor, 'rg
b(0, 128, 0)'); |
146 }, 'Secondary cycles need to be detected too (secondary cycle in fallback)'); | 200 }, 'Secondary cycles need to be detected too (secondary cycle in fallback)'); |
| 201 |
| 202 test(function() { |
| 203 assert_equals(getComputedStyle(twocycle_with_separate_fallback).backgroundColo
r, 'rgb(0, 128, 0)'); |
| 204 }, 'A cycle is not affected by other variable references with fallbacks'); |
| 205 |
| 206 test(function() { |
| 207 assert_equals(getComputedStyle(linked_cycles_a).backgroundColor, 'rgb(0, 128,
0)'); |
| 208 assert_equals(getComputedStyle(linked_cycles_b).backgroundColor, 'rgb(0, 128,
0)'); |
| 209 }, 'Cycles which are linked are invalid'); |
| 210 |
| 211 test(function() { |
| 212 assert_equals(getComputedStyle(fallback_self_reference_a).backgroundColor, 'rg
b(0, 128, 0)'); |
| 213 assert_equals(getComputedStyle(fallback_self_reference_b).backgroundColor, 'rg
b(0, 128, 0)'); |
| 214 assert_equals(getComputedStyle(fallback_self_reference_c).backgroundColor, 'rg
b(0, 128, 0)'); |
| 215 }, 'A self-reference in a fallback is invalid'); |
147 </script> | 216 </script> |
OLD | NEW |