<!DOCTYPE html>
<script src="resources/polyfill.js"></script>

<p>Validation should be shown if Shadow DOM has a shadow element.</p>
<form id='form' action="input-with-validation.html">
<input id=password type=password required maxlength=20 title="Needs at least 8 letters.&#x0a;Should not be identical with the current password.">
<input type=submit id=submit>
</form>

<script>
if (window.internals)
    internals.settings.setAuthorShadowDOMForAnyElementEnabled(true);

var input = document.getElementById('password');
var shadowRoot = input.webkitCreateShadowRoot();
shadowRoot.innerHTML = "<shadow></shadow>";

document.getElementById('submit').click();
if (window.testRunner) {
    testRunner.waitUntilDone();
    setTimeout(function() {
        testRunner.notifyDone();
    }, 10);
}
</script>

