<!DOCTYPE html>
<html>
<head>
<style>
/* relative positioning ensures underlying RenderLayer */
.container {
    position: relative;
}

.span {
    display: boxed-inline;
    margin: 2px;
    border: solid;
}
</style>
<script src="../resources/shadow-test-driver.js"></script>
<script src="resources/polyfill.js"></script>
<script>

var testFuncs = [];

testFuncs.push(function contentElementInSelectElement(callIfDone) {
    document.getElementById('expect-container').innerHTML = "<div><select><div></div></select></div>";

    var div = document.createElement('div');
    div.appendChild(document.createElement('div'));

    document.getElementById('actual-container').appendChild(div);

    var sr = div.webkitCreateShadowRoot();

    var select = document.createElement('select');
    var content = document.createElement('content');
    select.appendChild(content);
    sr.appendChild(select);
    document.body.offsetWidth; // force style recalc.
    callIfDone();
});

</script>
</head>
<body onload="doTest(testFuncs)">

<div id="actual-container" class="container"></div>
<div id="expect-container" class="container"></div>
<pre id="console"></pre>

</body>
</html>
