| <!DOCTYPE html> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <style> |
| @namespace uh url(http://www.w3.org/1999/xhtml); |
| #root div { |
| background-color: rgb(1, 2, 3); |
| color: rgb(1, 2, 3); |
| } |
| #root |div { |
| background-color: rgb(4, 5, 6); |
| } |
| #root uh|div { |
| color: rgb(4, 5, 6); |
| } |
| </style> |
| </head> |
| <body> |
| <div id="root" style="display:none;"> |
| <div data-case="1">Default namespace</div> |
| </div> |
| <script> |
| description("Verify that \"|name\" matches the empty namespace while \"*|name\" and \"name\" match any namespace."); |
| |
| var root = document.getElementById("root"); |
| var elementWithoutNamespace = document.createElementNS("", "div"); |
| elementWithoutNamespace.setAttribute("data-case", "2"); |
| root.appendChild(elementWithoutNamespace); |
| |
| function test(selector, expectedCases) |
| { |
| shouldBe('root.querySelectorAll("' + selector + '").length', '' + expectedCases.length); |
| let queryResult = root.querySelectorAll(selector); |
| for (let i = 0; i < queryResult.length; ++i) { |
| shouldBeEqualToString('root.querySelectorAll("' + selector + '")[' + i + '].getAttribute("data-case")', '' + expectedCases[i]); |
| } |
| } |
| |
| debug("Trivial Selector used as rightmost"); |
| test("|div", [2]); |
| test("*|div", [1, 2]); |
| test("div", [1, 2]); |
| |
| shouldBeEqualToString('getComputedStyle(document.querySelector("[|data-case=\'1\' i]")).color', 'rgb(4, 5, 6)'); |
| shouldBeEqualToString('getComputedStyle(document.querySelector("[|data-case=\'1\' i]")).backgroundColor', 'rgb(1, 2, 3)'); |
| shouldBeEqualToString('getComputedStyle(document.querySelector("[|data-case=\'2\' i]")).color', 'rgb(1, 2, 3)'); |
| shouldBeEqualToString('getComputedStyle(document.querySelector("[|data-case=\'2\' i]")).backgroundColor', 'rgb(4, 5, 6)'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |