| <!doctype html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <style id="style"> |
| * { |
| color: black; |
| } |
| [style*="PURPLE" i] { |
| color: red; |
| } |
| </style> |
| </head> |
| <body> |
| <div id="test-root-with-renderer"> |
| <div id="target-with-renderer" style="background-color: purple;"></div> |
| </div> |
| |
| <div style="display:none"> |
| <div id="target-without-renderer"style="background-color: purple;"></div> |
| </div> |
| </body> |
| <script> |
| description('Test attribute matching with the case insensitive flag used to match the style attribute.'); |
| |
| function testStyle(expectedValues) { |
| for (var key in expectedValues) { |
| shouldBeEqualToString('getComputedStyle(document.getElementById("target-with-renderer"))["' + key + '"]', expectedValues[key]); |
| shouldBeEqualToString('getComputedStyle(document.getElementById("target-without-renderer"))["' + key + '"]', expectedValues[key]); |
| } |
| } |
| |
| function testQuerySelector(expectMatch) { |
| if (expectMatch) { |
| shouldBe('document.querySelectorAll("[style*=PURPLE i]").length', '2'); |
| shouldBeEqualToString('document.querySelectorAll("[style*=PURPLE i]")[0].id', 'target-with-renderer'); |
| shouldBeEqualToString('document.querySelectorAll("[style*=PURPLE i]")[1].id', 'target-without-renderer'); |
| } else { |
| shouldBe('document.querySelectorAll("[style*=PURPLE i]").length', '0'); |
| } |
| } |
| |
| function test(expectMatch, expectedValues) { |
| testQuerySelector(expectMatch); |
| testStyle(expectedValues); |
| } |
| |
| // Force a layout. |
| var sideEffect = document.body.offsetTop; |
| |
| |
| debug("Initial state."); |
| test(true, {color: "rgb(255, 0, 0)", "background-color": "rgb(128, 0, 128)"}); |
| |
| document.getElementById('test-root-with-renderer').style.display = "None"; |
| debug(""); |
| |
| debug("Let's change the background color to something else than purple."); |
| var targetWithRenderer = document.getElementById('target-with-renderer'); |
| var targetWithoutRenderer = document.getElementById('target-without-renderer'); |
| targetWithRenderer.style.backgroundColor = 'red'; |
| targetWithoutRenderer.style.backgroundColor = 'red'; |
| test(false, {color: "rgb(0, 0, 0)", "background-color": "rgb(255, 0, 0)"}); |
| debug(""); |
| |
| debug("Back to purple."); |
| targetWithRenderer.style.backgroundColor = 'purple'; |
| targetWithoutRenderer.style.backgroundColor = 'purple'; |
| test(true, {color: "rgb(255, 0, 0)", "background-color": "rgb(128, 0, 128)"}); |
| debug(""); |
| |
| debug("Remove the style attribute entirely."); |
| targetWithRenderer.removeAttribute('style'); |
| targetWithoutRenderer.removeAttribute('style'); |
| test(false, {}); |
| debug(""); |
| |
| debug("Back to purple."); |
| targetWithRenderer.style.backgroundColor = 'purple'; |
| targetWithoutRenderer.style.backgroundColor = 'purple'; |
| test(true, {color: "rgb(255, 0, 0)", "background-color": "rgb(128, 0, 128)"}); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </html> |