<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>
