blob: 66ed29392243f382d8185ce47b7b81de1d68bfe7 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Test the parsing and the computed style values of the transitions properties.")
var testContainer = document.createElement("div");
document.body.appendChild(testContainer);
testContainer.innerHTML = '<div style="width:500px;height:500px"><div id="test">hello</div></div>';
e = document.getElementById('test');
style = e.style;
computedStyle = window.getComputedStyle(e, null);
debug("Valid transition-property values.");
// Initial test.
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "none";
shouldBe("style.transitionProperty", "'none'");
shouldBe("computedStyle.transitionProperty", "'none'");
shouldBe("style.webkitTransitionProperty", "'none'");
shouldBe("computedStyle.webkitTransitionProperty", "'none'");
style.transitionProperty = "all";
shouldBe("style.transitionProperty", "'all'");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "'all'");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "background-position";
shouldBe("style.transitionProperty", "'background-position'");
shouldBe("computedStyle.transitionProperty", "'background-position'");
shouldBe("style.webkitTransitionProperty", "'background-position'");
shouldBe("computedStyle.webkitTransitionProperty", "'background-position'");
style.transitionProperty = "background-position, font-size";
shouldBe("style.transitionProperty", "'background-position, font-size'");
shouldBe("computedStyle.transitionProperty", "'background-position, font-size'");
shouldBe("style.webkitTransitionProperty", "'background-position, font-size'");
shouldBe("computedStyle.webkitTransitionProperty", "'background-position, font-size'");
style.transitionProperty = "background-position, font-size, color";
shouldBe("style.transitionProperty", "'background-position, font-size, color'");
shouldBe("computedStyle.transitionProperty", "'background-position, font-size, color'");
shouldBe("style.webkitTransitionProperty", "'background-position, font-size, color'");
shouldBe("computedStyle.webkitTransitionProperty", "'background-position, font-size, color'");
debug("Invalid transition-property values.");
style.transitionProperty = "";
style.transitionProperty = "solid, font-size";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "solid, left";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "solid";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "20px";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "0";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "'font-size'";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "all none";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
style.transitionProperty = "opacity width";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105428.
/*style.transitionProperty = "all, none";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");*/
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105430.
/*style.transitionProperty = "background, font-size, all";
shouldBe("style.transitionProperty", "''");
shouldBe("computedStyle.transitionProperty", "'all'");
shouldBe("style.webkitTransitionProperty", "''");
shouldBe("computedStyle.webkitTransitionProperty", "'all'");*/
style.transitionProperty = "";
debug("Valid transition-duration values.");
// Initial test.
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "0s";
shouldBe("style.transitionDuration", "'0s'");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "'0s'");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "5s";
shouldBe("style.transitionDuration", "'5s'");
shouldBe("computedStyle.transitionDuration", "'5s'");
shouldBe("style.webkitTransitionDuration", "'5s'");
shouldBe("computedStyle.webkitTransitionDuration", "'5s'");
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105432.
/*style.transitionDuration = "10ms";
shouldBe("style.transitionDuration", "'10ms'");
shouldBe("computedStyle.transitionDuration", "'0.01s'");
shouldBe("style.webkitTransitionDuration", "'10ms'");
shouldBe("computedStyle.webkitTransitionDuration", "'0.01s'");
// Negative values should be treated as 0s.
style.transitionDuration = "-10ms";
shouldBe("style.transitionDuration", "'0s'");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "'0s'");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionProperty = "opacity, width";
style.transitionDuration = "-10ms, 20s";
shouldBe("style.transitionDuration", "'0s, 20s'");
shouldBe("computedStyle.transitionDuration", "'0s, 20s'");
shouldBe("style.webkitTransitionDuration", "'0s, 20s'");
shouldBe("computedStyle.webkitTransitionDuration", "'0s, 20s'");*/
debug("Invalid transition-duration values.");
style.transitionProperty = "opacity";
style.transitionDuration = "";
style.transitionDuration = "'5ms'";
shouldBe("style.transitionDuration", "''");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "''");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "30px";
shouldBe("style.transitionDuration", "''");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "''");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "solid";
shouldBe("style.transitionDuration", "''");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "''");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "20";
shouldBe("style.transitionDuration", "''");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "''");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "20%";
shouldBe("style.transitionDuration", "''");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "''");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
style.transitionDuration = "0s, 20px";
shouldBe("style.transitionDuration", "''");
shouldBe("computedStyle.transitionDuration", "'0s'");
shouldBe("style.webkitTransitionDuration", "''");
shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
debug("Valid transition-timing-function values.");
// Initial test.
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105442.
/*style.transitionTimingFunction = "linear";
shouldBe("style.transitionTimingFunction", "'linear'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0, 0, 1, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'linear'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0, 0, 1, 1)'");*/
style.transitionTimingFunction = "ease";
shouldBe("style.transitionTimingFunction", "'ease'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'ease'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "ease-in";
shouldBe("style.transitionTimingFunction", "'ease-in'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.42, 0, 1, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'ease-in'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.42, 0, 1, 1)'");
style.transitionTimingFunction = "ease-out";
shouldBe("style.transitionTimingFunction", "'ease-out'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0, 0, 0.58, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'ease-out'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0, 0, 0.58, 1)'");
style.transitionTimingFunction = "ease-in-out";
shouldBe("style.transitionTimingFunction", "'ease-in-out'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.42, 0, 0.58, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'ease-in-out'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.42, 0, 0.58, 1)'");
style.transitionTimingFunction = "cubic-bezier(0.1, 0, 0.23, 0.4)";
shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 0.4)'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 0.4)'");
shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 0.4)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 0.4)'");
style.transitionTimingFunction = "cubic-bezier(0.1, 0, 4, 0.4)";
shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.1, 0, 4, 0.4)'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.1, 0, 4, 0.4)'");
shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 0, 4, 0.4)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 0, 4, 0.4)'");
style.transitionTimingFunction = "cubic-bezier(3, 0, 4, 0.4)";
shouldBe("style.transitionTimingFunction", "'cubic-bezier(3, 0, 4, 0.4)'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(3, 0, 4, 0.4)'");
shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(3, 0, 4, 0.4)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(3, 0, 4, 0.4)'");
style.transitionTimingFunction = "cubic-bezier(3, 0, 0.2, 0.4)";
shouldBe("style.transitionTimingFunction", "'cubic-bezier(3, 0, 0.2, 0.4)'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(3, 0, 0.2, 0.4)'");
shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(3, 0, 0.2, 0.4)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(3, 0, 0.2, 0.4)'");
style.transitionTimingFunction = "step-start";
shouldBe("style.transitionTimingFunction", "'step-start'");
shouldBe("computedStyle.transitionTimingFunction", "'steps(1, start)'");
shouldBe("style.webkitTransitionTimingFunction", "'step-start'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(1, start)'");
style.transitionTimingFunction = "step-end";
shouldBe("style.transitionTimingFunction", "'step-end'");
shouldBe("computedStyle.transitionTimingFunction", "'steps(1, end)'");
shouldBe("style.webkitTransitionTimingFunction", "'step-end'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(1, end)'");
style.transitionTimingFunction = "steps(3)";
shouldBe("style.transitionTimingFunction", "'steps(3, end)'");
shouldBe("computedStyle.transitionTimingFunction", "'steps(3, end)'");
shouldBe("style.webkitTransitionTimingFunction", "'steps(3, end)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(3, end)'");
style.transitionTimingFunction = "steps(4, end)";
shouldBe("style.transitionTimingFunction", "'steps(4, end)'");
shouldBe("computedStyle.transitionTimingFunction", "'steps(4, end)'");
shouldBe("style.webkitTransitionTimingFunction", "'steps(4, end)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(4, end)'");
style.transitionTimingFunction = "steps(5, start)";
shouldBe("style.transitionTimingFunction", "'steps(5, start)'");
shouldBe("computedStyle.transitionTimingFunction", "'steps(5, start)'");
shouldBe("style.webkitTransitionTimingFunction", "'steps(5, start)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(5, start)'");
style.transitionProperty = "opacity, width";
style.transitionTimingFunction = "ease-in-out, ease-in";
shouldBe("style.transitionTimingFunction", "'ease-in-out, ease-in'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.42, 0, 0.58, 1), cubic-bezier(0.42, 0, 1, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'ease-in-out, ease-in'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.42, 0, 0.58, 1), cubic-bezier(0.42, 0, 1, 1)'");
style.transitionTimingFunction = "ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)";
shouldBe("style.transitionTimingFunction", "'ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)'");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.42, 0, 0.58, 1), cubic-bezier(0.1, 0, 0.23, 0.4)'");
shouldBe("style.webkitTransitionTimingFunction", "'ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.42, 0, 0.58, 1), cubic-bezier(0.1, 0, 0.23, 0.4)'");
style.transitionTimingFunction = "steps(3, start), ease-in-out";
shouldBe("style.transitionTimingFunction", "'steps(3, start), ease-in-out'");
shouldBe("computedStyle.transitionTimingFunction", "'steps(3, start), cubic-bezier(0.42, 0, 0.58, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "'steps(3, start), ease-in-out'");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(3, start), cubic-bezier(0.42, 0, 0.58, 1)'");
debug("Invalid transition-timing-function values.");
style.transitionProperty = "";
style.transitionTimingFunction = "";
style.transitionTimingFunction = "steps(5, 3)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "steps(-5, start)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "steps(5, start, end)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "step(5)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "red";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "cubic-bezier(0.25, 0.1, 0.25)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "cubic-bezier(0.25, 0.1, 0.25, 1, 2)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "cubic-foo(0.25, 0.1, 0.25, 1)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105426.
/*style.transitionTimingFunction = "cubic-bezier(3, 0.1, 4, 1)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
style.transitionTimingFunction = "cubic-bezier(1, 0.1, 3, 1)";
shouldBe("style.transitionTimingFunction", "''");
shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
shouldBe("style.webkitTransitionTimingFunction", "''");
shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");*/
debug("Valid transition-delay values.");
// Initial test.
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "0s";
shouldBe("style.transitionDelay", "'0s'");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "'0s'");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "5s";
shouldBe("style.transitionDelay", "'5s'");
shouldBe("computedStyle.transitionDelay", "'5s'");
shouldBe("style.webkitTransitionDelay", "'5s'");
shouldBe("computedStyle.webkitTransitionDelay", "'5s'");
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105432.
/*style.transitionDelay = "10ms";
shouldBe("style.transitionDelay", "'10ms'");
shouldBe("computedStyle.transitionDelay", "'10ms'");
shouldBe("style.webkitTransitionDelay", "'10ms'");
shouldBe("computedStyle.webkitTransitionDelay", "'10ms'");
style.transitionDelay = "-10ms";
shouldBe("style.transitionDelay", "'-10ms'");
shouldBe("computedStyle.transitionDelay", "'-0.01s'");
shouldBe("style.webkitTransitionDelay", "'-10ms'");
shouldBe("computedStyle.webkitTransitionDelay", "'-0.01s'");
style.transitionProperty = "opacity, width";
style.transitionDelay = "-10ms, 20s";
shouldBe("style.transitionDelay", "'-10ms, 20s'");
shouldBe("computedStyle.transitionDelay", "'-0.01s, 20s'");
shouldBe("style.webkitTransitionDelay", "'-10ms, 20s'");
shouldBe("computedStyle.webkitTransitionDelay", "'-0.01s, 20s'");*/
debug("Invalid transition-duration values.");
style.transitionProperty = "opacity";
style.transitionDelay = "";
style.transitionDelay = "'5ms'";
shouldBe("style.transitionDelay", "''");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "''");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "30px";
shouldBe("style.transitionDelay", "''");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "''");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "solid";
shouldBe("style.transitionDelay", "''");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "''");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "20";
shouldBe("style.transitionDelay", "''");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "''");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "20%";
shouldBe("style.transitionDelay", "''");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "''");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
style.transitionDelay = "0s, 20px";
shouldBe("style.transitionDelay", "''");
shouldBe("computedStyle.transitionDelay", "'0s'");
shouldBe("style.webkitTransitionDelay", "''");
shouldBe("computedStyle.webkitTransitionDelay", "'0s'");
// Transition and -webkit-transition is not correctly implemented.
// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105035.
/*debug("Valid transition shorthand values.");
style.transition = "";
// Initial test.
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "none";
shouldBe("style.transition", "'none'");
shouldBe("computedStyle.transition", "'none 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "'none'");
shouldBe("computedStyle.webkitTransition", "'none 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "none 20s";
shouldBe("style.transition", "'none 20s'");
shouldBe("computedStyle.transition", "'none 20s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "'none 20s'");
shouldBe("computedStyle.webkitTransition", "'none 20s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "ease-in none 20s";
shouldBe("style.transition", "'ease-in none 20s'");
shouldBe("computedStyle.transition", "'none 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
shouldBe("style.webkitTransition", "'ease-in none 20s'");
shouldBe("computedStyle.webkitTransition", "'none 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
style.transition = "ease-in opacity 20s";
shouldBe("style.transition", "'ease-in opacity 20s'");
shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
shouldBe("style.webkitTransition", "'ease-in opacity 20s'");
shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
style.transition = "ease-in opacity 20s 10s";
shouldBe("style.transition", "'ease-in opacity 20s 10s'");
shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
shouldBe("style.webkitTransition", "'ease-in opacity 20s 10s'");
shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
// Let's double check here the delay and duration. As stated in the spec the first value parsed
// is assigned to the duration.
shouldBe("computedStyle.transitionDuration", "'20s'");
shouldBe("computedStyle.webkitTransitionDuration", "'20s'");
shouldBe("computedStyle.transitionDelay", "'10s'");
shouldBe("computedStyle.webkitTransitionDelay", "'10s'");
style.transition = "20s ease-in opacity 10s";
shouldBe("style.transition", "'20s ease-in opacity 10s'");
shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
shouldBe("style.webkitTransition", "'20s ease-in opacity 10s'");
shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
shouldBe("computedStyle.transitionDuration", "'20s'");
shouldBe("computedStyle.webkitTransitionDuration", "'20s'");
shouldBe("computedStyle.transitionDelay", "'10s'");
shouldBe("computedStyle.webkitTransitionDelay", "'10s'");
style.transition = "ease-in opacity 20s 10s, cubic-bezier(0.32, 0, 1, 1) 10s width 20s";
shouldBe("style.transition", "'ease-in opacity 20s 10s, cubic-bezier(0.32, 0, 1, 1) 10s width 20s'");
shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
shouldBe("style.webkitTransition", "'ease-in opacity 20s 10s, cubic-bezier(0.32, 0, 1, 1) 10s width 20s'");
shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
// Let's double check here the delay and duration. As stated in the spec the first value parsed
// is assigned to the duration.
shouldBe("computedStyle.transitionDuration", "'20s, 10s'");
shouldBe("computedStyle.webkitTransitionDuration", "'20s, 10s'");
shouldBe("computedStyle.transitionDelay", "'10s, 20s'");
shouldBe("computedStyle.webkitTransitionDelay", "'10s, 20s'");
debug("Invalid transition shorthand values.");
style.transition = "";
style.transition = "20";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "20, 20";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "widthFoo";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "all 30s width ease-in";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "all 30s ease-in 20px";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "all 30s ease-in 20s, 20px";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
style.transition = "all 30s ease-in 20s, step-start(2)";
shouldBe("style.transition", "''");
shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
shouldBe("style.webkitTransition", "''");
shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");*/
document.body.removeChild(testContainer);
</script>
<script src="../fast/js/resources/js-test-post.js"></script>
</body>
</html>