| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <style id="style"> |
| #color { |
| color: red; |
| } |
| #visited_color { |
| -internal-visited-color: red; |
| } |
| #visited_color:visited { |
| -internal-visited-color: red; |
| } |
| </style> |
| <div id="container"> |
| <a href="" id="color"></a> |
| <a href="" id="visited_color"></a> |
| </div> |
| <script> |
| |
| const elements = Array.from(container.children); |
| |
| test(() => { |
| for (let element of elements) { |
| let names = Array.from(getComputedStyle(element)); |
| assert_true(names.every(x => !x.startsWith('-internal'))); |
| } |
| }, 'Internal properties do not appear in enumeration of computed style (CSSOM)'); |
| |
| test(() => { |
| for (let rule of style.sheet.cssRules) { |
| let names = Array.from(rule.style); |
| assert_true(names.every(x => !x.startsWith('-internal'))); |
| } |
| }, 'Internal properties do not appear in enumeration of specified style (CSSOM)'); |
| |
| test(() => { |
| for (let element of elements) { |
| let cs = getComputedStyle(element); |
| assert_equals(cs.getPropertyValue('-internal-visited-color'), ''); |
| assert_equals(cs['-internal-visited-color'], undefined); |
| assert_equals(cs.internalVisitedColor, undefined); |
| } |
| }, '-internal-visited-color does not appear on computed style (CSSOM)'); |
| |
| test(() => { |
| for (let rule of style.sheet.cssRules) { |
| assert_equals(rule.style.getPropertyValue('-internal-visited-color'), ''); |
| assert_equals(rule.style['-internal-visited-color'], undefined); |
| assert_equals(rule.style.internalVisitedColor, undefined); |
| } |
| }, '-internal-visited-color does not appear on specified style (CSSOM)'); |
| |
| test(() => { |
| for (let rule of style.sheet.cssRules) { |
| rule.style.setProperty('-internal-visited-color', 'red'); |
| assert_equals(rule.style.getPropertyValue('-internal-visited-color'), ''); |
| rule.style['-internal-visited-color'] = 'red'; |
| assert_equals(rule.style.getPropertyValue('-internal-visited-color'), ''); |
| } |
| }, '-internal-visited-color may not be set on specified style (CSSOM)'); |
| |
| test(() => { |
| for (let element of elements) { |
| let names = Array.from(element.computedStyleMap()).map(x => x[0]); |
| assert_true(names.every(x => !x.startsWith('-internal'))); |
| } |
| }, 'Internal properties do not appear in enumeration of computed style (CSS Typed OM)'); |
| |
| test(() => { |
| for (let rule of style.sheet.cssRules) { |
| let names = Array.from(rule.styleMap).map(x => x[0]); |
| assert_true(names.every(x => !x.startsWith('-internal'))); |
| } |
| }, 'Internal properties do not appear in enumeration of specified style (CSS Typed OM)'); |
| |
| test(() => { |
| for (let element of elements) { |
| let cs = element.computedStyleMap(); |
| assert_throws_js(TypeError, () => { |
| assert_equals(cs.get('-internal-visited-color'), ''); |
| }, 'get() should throw when attempting to access internal property'); |
| } |
| }, '-internal-visited-color does not appear on computed style (CSS Typed OM)'); |
| |
| test(() => { |
| for (let rule of style.sheet.cssRules) { |
| assert_throws_js(TypeError, () => { |
| assert_equals(rule.styleMap.get('-internal-visited-color'), ''); |
| }, 'get() should throw when attempting to access internal property'); |
| } |
| }, '-internal-visited-color does not appear on specified style (CSS Typed OM)'); |
| |
| test(() => { |
| for (let rule of style.sheet.cssRules) { |
| assert_throws_js(TypeError, () => { |
| assert_equals(rule.styleMap.set('-internal-visited-color'), 'red'); |
| }, 'set() should throw when attempting to access internal property'); |
| } |
| }, '-internal-visited-color may not be set on specified style (CSS Typed OM)'); |
| |
| </script> |