blob: e114e984e170c55b4af14b8793a2b3b6f0bb435b [file] [log] [blame]
<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>