<script src="../../resources/js-test-pre.js"></script>
<body>
<script>

description("Test that initial values implicitly set via a shorthand property override previously defined shorthand properties.");

function testStyle(cssText, property, expected) {
    var element = document.body.appendChild(document.createElement("div"));
    element.setAttribute("style", cssText);

    var actual = getComputedStyle(element).getPropertyValue(property);
    if (actual === expected)
        testPassed(property);
    else
        testFailed(`expected that setting "${cssText}" would compute ${property} to "${expected}" but got "${actual}"`);

    element.remove();
}

debug("Transition properties");
testStyle("transition-property: none; transition: 1s;", "transition-property", "all");
testStyle("transition-duration: 1s; transition: none;", "transition-duration", "0s");
testStyle("transition-timing-function: linear; transition: none;", "transition-timing-function", "ease");
testStyle("transition-delay: 1s; transition: none;", "transition-delay", "0s");

debug("");
debug("Prefixed transition properties");
testStyle("-webkit-transition-property: none; transition: 1s;", "transition-property", "all");
testStyle("-webkit-transition-property: none; -webkit-transition: 1s;", "transition-property", "all");
testStyle("transition-property: none; transition: 1s;", "transition-property", "all");
testStyle("transition-property: none; -webkit-transition: 1s;", "transition-property", "all");

debug("");
debug("Animation properties");
testStyle("animation-name: foo; animation: 1s;", "animation-name", "none");
testStyle("animation-duration: 1s; animation: none;", "animation-duration", "0s");
testStyle("animation-timing-function: linear; animation: none;", "animation-timing-function", "ease");
testStyle("animation-iteration-count: 5; animation: none;", "animation-iteration-count", "1");
testStyle("animation-direction: reverse; animation: none;", "animation-direction", "normal");
testStyle("animation-play-state: paused; animation: none;", "animation-play-state", "running");
testStyle("animation-delay: 1s; animation: none;", "animation-delay", "0s");
testStyle("animation-fill-mode: forwards; animation: none;", "animation-fill-mode", "none");

debug("");
debug("Prefixed animation properties");
testStyle("-webkit-animation-name: foo; -webkit-animation: none;", "-webkit-animation-name", "none");
testStyle("-webkit-animation-name: foo; animation: none;", "animation-name", "none");
testStyle("animation-name: foo; -webkit-animation: none;", "-webkit-animation-name", "none");
testStyle("animation-name: foo; animation: none;", "animation-name", "none");

debug("");
successfullyParsed = true;

</script>
<script src="../../resources/js-test-post.js"></script>
</body>