<html>
<head>
<link rel="stylesheet" href="../../js/resources/js-test-style.css">
<script src="../../js/resources/js-test-pre.js"></script>
</head>
<body>
<progress id="target" min="0" max="100" value="50" style="-webkit-appearance: none;" ></progress>
<script>
(function() {
    target = document.getElementById("target");
    cloned = target.cloneNode();
    document.body.insertBefore(cloned, target.nextSibling);
    
    if (!window.internals) {
        debug("You need internals to run this test.");
        return;
    }

    targetShadowRoot = internals.shadowRoot(target);
    clonedShadowRoot = internals.shadowRoot(cloned);

    shouldBe("cloned.value", "target.value");
    shouldBe("internals.shadowPseudoId(clonedShadowRoot.firstChild)", "internals.shadowPseudoId(targetShadowRoot.firstChild)");
    shouldBe("internals.shadowPseudoId(clonedShadowRoot.firstChild.firstChild)", "internals.shadowPseudoId(targetShadowRoot.firstChild.firstChild)");
    
    cloned.value = 70;
    shouldBe("clonedShadowRoot.firstChild.firstChild.style.width", '"70%"');
    shouldBe("targetShadowRoot.firstChild.firstChild.style.width", '"50%"');
    
})();
var successfullyParsed = true;
</script>
<script src="../../js/resources/js-test-post.js"></script>
</body>
</html>
