|
21 | 21 | } |
22 | 22 | </script> |
23 | 23 |
|
24 | | -<!-- These tests are inside <audio>/<video> so that the steps for updating the |
25 | | - muted IDL attribute cannot be delayed until the end tag is parsed. --> |
| 24 | +<!-- These tests are inside <audio>/<video> so that the parser-created |
| 25 | + elements are available for testing before the closing tag. --> |
26 | 26 |
|
27 | 27 | <audio id=a1> |
28 | 28 | <script> |
|
80 | 80 | </script> |
81 | 81 | </video> |
82 | 82 |
|
83 | | -<!-- Negative test to ensure that the load algorithm does not update the |
84 | | - muted IDL attribute to match the content attribute. --> |
| 83 | +<!-- Negative test to ensure that the load algorithm does not reset the |
| 84 | + muted state. --> |
85 | 85 |
|
86 | 86 | <video id=v3 muted></video> |
87 | 87 | <script> |
|
112 | 112 | test(function() { |
113 | 113 | var m = document.createElement(tagName); |
114 | 114 | m.setAttribute('muted', ''); |
115 | | - assert_false(m.muted); |
| 115 | + assert_true(m.muted); |
116 | 116 | }, 'getting ' + tagName + '.muted with muted="" (script-created)'); |
117 | 117 |
|
118 | 118 | test(function() { |
119 | 119 | var m = document.createElement(tagName); |
120 | 120 | m.setAttribute('muted', ''); |
121 | | - test_setting(m, false, true); |
| 121 | + test_setting(m, true, true); |
122 | 122 | }, 'setting ' + tagName + '.muted with muted="" (script-created)'); |
123 | 123 |
|
124 | | - // Spec bug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=25153 |
125 | | - /* |
126 | 124 | test(function() { |
127 | 125 | var m = document.createElement(tagName); |
128 | 126 | m.setAttribute('muted', ''); |
129 | 127 | m = m.cloneNode(false); |
130 | 128 | assert_true(m.hasAttribute('muted')); |
131 | | - assert_false(m.muted); |
| 129 | + assert_true(m.muted); |
132 | 130 | }, 'getting ' + tagName + '.muted with muted="" (cloneNode-created)'); |
133 | | - */ |
134 | 131 |
|
135 | 132 | test(function() { |
136 | 133 | var div = document.createElement('div'); |
|
165 | 162 | var c = m.cloneNode(true); |
166 | 163 | assert_true(c.muted); |
167 | 164 | }, 'cloning ' + tagName + ' propagates muted (innerHTML-created)'); |
| 165 | + |
| 166 | + test(function() { |
| 167 | + var m = document.createElement(tagName); |
| 168 | + assert_false(m.muted); |
| 169 | + m.setAttribute('muted', ''); |
| 170 | + assert_true(m.muted); |
| 171 | + m.removeAttribute('muted'); |
| 172 | + assert_false(m.muted); |
| 173 | + }, 'adding/removing muted attribute dynamically affects ' + tagName + '.muted'); |
| 174 | + |
| 175 | + test(function() { |
| 176 | + var m = document.createElement(tagName); |
| 177 | + m.muted = false; |
| 178 | + m.setAttribute('muted', ''); |
| 179 | + assert_false(m.muted); |
| 180 | + }, 'adding muted attribute has no effect on ' + tagName + '.muted after setter'); |
| 181 | + |
| 182 | + test(function() { |
| 183 | + var m = document.createElement(tagName); |
| 184 | + m.setAttribute('muted', ''); |
| 185 | + m.muted = true; |
| 186 | + m.removeAttribute('muted'); |
| 187 | + assert_true(m.muted); |
| 188 | + }, 'removing muted attribute has no effect on ' + tagName + '.muted after setter'); |
168 | 189 | }); |
169 | 190 | </script> |
0 commit comments