| <html> |
| <head> |
| <title>Selectors and Shadow Scopes</title> |
| <style> |
| input[type=range] { |
| -webkit-appearance: none; |
| } |
| </style> |
| <script> |
| |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var head; |
| var input; |
| var logDiv; |
| var SELECTOR_TEST_PROPERTIES = ' { height: 1px; -webkit-appearance: none; }'; |
| |
| // convenience constants |
| var MATCH = true; |
| var NO_MATCH = false; |
| |
| function log(msg, success) |
| { |
| logDiv.appendChild(document.createElement('div')).innerHTML = msg + ': ' + (success ? 'PASS' : 'FAIL'); |
| } |
| |
| function runSelectorTest(matchExpected, selector) |
| { |
| var style = document.createElement('style'); |
| style.textContent = selector + SELECTOR_TEST_PROPERTIES; |
| head.appendChild(style); |
| var matched = input.offsetHeight == 1; |
| log('<code>' + selector + '</code> <strong>should' + (matchExpected ? '' : ' not') + '</strong> match', matchExpected ? matched : !matched); |
| head.removeChild(style); |
| } |
| |
| function runTest() |
| { |
| head = document.getElementsByTagName('head')[0]; |
| input = document.getElementsByTagName('input')[0]; |
| logDiv = document.getElementById('log'); |
| runSelectorTest(NO_MATCH, 'div'); |
| runSelectorTest(NO_MATCH, '*'); |
| runSelectorTest(NO_MATCH, 'body *'); |
| document.body.removeChild(input); |
| } |
| |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests whether and how selectors cross shadow DOM scopes.</p> |
| <input id="foo" class="bar" style="height:auto" type="range"> |
| <div id="log"></div> |
| </body> |
| </html> |