--- /dev/null
+Test the parsing and the computed style values of the transitions properties.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Valid transition-property values.
+PASS computedStyle.transitionProperty is 'all'
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is 'none'
+PASS computedStyle.transitionProperty is 'none'
+PASS style.webkitTransitionProperty is 'none'
+PASS computedStyle.webkitTransitionProperty is 'none'
+PASS style.transitionProperty is 'all'
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is 'all'
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is 'background-position'
+PASS computedStyle.transitionProperty is 'background-position'
+PASS style.webkitTransitionProperty is 'background-position'
+PASS computedStyle.webkitTransitionProperty is 'background-position'
+PASS style.transitionProperty is 'background-position, font-size'
+PASS computedStyle.transitionProperty is 'background-position, font-size'
+PASS style.webkitTransitionProperty is 'background-position, font-size'
+PASS computedStyle.webkitTransitionProperty is 'background-position, font-size'
+PASS style.transitionProperty is 'background-position, font-size, color'
+PASS computedStyle.transitionProperty is 'background-position, font-size, color'
+PASS style.webkitTransitionProperty is 'background-position, font-size, color'
+PASS computedStyle.webkitTransitionProperty is 'background-position, font-size, color'
+Invalid transition-property values.
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+PASS style.transitionProperty is ''
+PASS computedStyle.transitionProperty is 'all'
+PASS style.webkitTransitionProperty is ''
+PASS computedStyle.webkitTransitionProperty is 'all'
+Valid transition-duration values.
+PASS computedStyle.transitionDuration is '0s'
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is '0s'
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is '0s'
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is '5s'
+PASS computedStyle.transitionDuration is '5s'
+PASS style.webkitTransitionDuration is '5s'
+PASS computedStyle.webkitTransitionDuration is '5s'
+PASS style.transitionDuration is '10ms'
+PASS computedStyle.transitionDuration is '0.01s'
+PASS style.webkitTransitionDuration is '10ms'
+PASS computedStyle.webkitTransitionDuration is '0.01s'
+PASS style.transitionDuration is '10ms, 20s'
+PASS computedStyle.transitionDuration is '0.01s, 20s'
+PASS style.webkitTransitionDuration is '10ms, 20s'
+PASS computedStyle.webkitTransitionDuration is '0.01s, 20s'
+Invalid transition-duration values.
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+PASS style.transitionDuration is ''
+PASS computedStyle.transitionDuration is '0s'
+PASS style.webkitTransitionDuration is ''
+PASS computedStyle.webkitTransitionDuration is '0s'
+Valid transition-timing-function values.
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is 'linear'
+PASS computedStyle.transitionTimingFunction is 'linear'
+PASS style.webkitTransitionTimingFunction is 'linear'
+PASS computedStyle.webkitTransitionTimingFunction is 'linear'
+PASS style.transitionTimingFunction is 'ease'
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is 'ease'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is 'ease-in'
+PASS computedStyle.transitionTimingFunction is 'ease-in'
+PASS style.webkitTransitionTimingFunction is 'ease-in'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease-in'
+PASS style.transitionTimingFunction is 'ease-out'
+PASS computedStyle.transitionTimingFunction is 'ease-out'
+PASS style.webkitTransitionTimingFunction is 'ease-out'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease-out'
+PASS style.transitionTimingFunction is 'ease-in-out'
+PASS computedStyle.transitionTimingFunction is 'ease-in-out'
+PASS style.webkitTransitionTimingFunction is 'ease-in-out'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease-in-out'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.25, 0.1, 0.25, 1)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.25, 0.1, 0.25, 1)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.25, 0.1, 0.25, 1)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.25, 0.1, 0.25, 1)'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 3)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 3)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 3)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 0, 0.23, 3)'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 3)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 3)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 3)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 3)'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 0)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 0)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 0)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.1, 5, 0.23, 0)'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.2, 2, 0.2, -0.4)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.2, 2, 0.2, -0.4)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.2, 2, 0.2, -0.4)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.2, 2, 0.2, -0.4)'
+PASS style.transitionTimingFunction is 'cubic-bezier(0.2, -2, 0.2, 0.4)'
+PASS computedStyle.transitionTimingFunction is 'cubic-bezier(0.2, -2, 0.2, 0.4)'
+PASS style.webkitTransitionTimingFunction is 'cubic-bezier(0.2, -2, 0.2, 0.4)'
+PASS computedStyle.webkitTransitionTimingFunction is 'cubic-bezier(0.2, -2, 0.2, 0.4)'
+PASS style.transitionTimingFunction is 'step-start'
+PASS computedStyle.transitionTimingFunction is 'steps(1, start)'
+PASS style.webkitTransitionTimingFunction is 'step-start'
+PASS computedStyle.webkitTransitionTimingFunction is 'steps(1, start)'
+PASS style.transitionTimingFunction is 'step-end'
+PASS computedStyle.transitionTimingFunction is 'steps(1, end)'
+PASS style.webkitTransitionTimingFunction is 'step-end'
+PASS computedStyle.webkitTransitionTimingFunction is 'steps(1, end)'
+PASS style.transitionTimingFunction is 'steps(3, end)'
+PASS computedStyle.transitionTimingFunction is 'steps(3, end)'
+PASS style.webkitTransitionTimingFunction is 'steps(3, end)'
+PASS computedStyle.webkitTransitionTimingFunction is 'steps(3, end)'
+PASS style.transitionTimingFunction is 'steps(4, end)'
+PASS computedStyle.transitionTimingFunction is 'steps(4, end)'
+PASS style.webkitTransitionTimingFunction is 'steps(4, end)'
+PASS computedStyle.webkitTransitionTimingFunction is 'steps(4, end)'
+PASS style.transitionTimingFunction is 'steps(5, start)'
+PASS computedStyle.transitionTimingFunction is 'steps(5, start)'
+PASS style.webkitTransitionTimingFunction is 'steps(5, start)'
+PASS computedStyle.webkitTransitionTimingFunction is 'steps(5, start)'
+PASS style.transitionTimingFunction is 'ease-in-out, ease-in'
+PASS computedStyle.transitionTimingFunction is 'ease-in-out, ease-in'
+PASS style.webkitTransitionTimingFunction is 'ease-in-out, ease-in'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease-in-out, ease-in'
+PASS style.transitionTimingFunction is 'ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS computedStyle.transitionTimingFunction is 'ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS style.webkitTransitionTimingFunction is 'ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS computedStyle.webkitTransitionTimingFunction is 'ease-in-out, cubic-bezier(0.1, 0, 0.23, 0.4)'
+PASS style.transitionTimingFunction is 'steps(3, start), ease-in-out'
+PASS computedStyle.transitionTimingFunction is 'steps(3, start), ease-in-out'
+PASS style.webkitTransitionTimingFunction is 'steps(3, start), ease-in-out'
+PASS computedStyle.webkitTransitionTimingFunction is 'steps(3, start), ease-in-out'
+Invalid transition-timing-function values.
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+PASS style.transitionTimingFunction is ''
+PASS computedStyle.transitionTimingFunction is 'ease'
+PASS style.webkitTransitionTimingFunction is ''
+PASS computedStyle.webkitTransitionTimingFunction is 'ease'
+Valid transition-delay values.
+PASS computedStyle.transitionDelay is '0s'
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is '0s'
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is '0s'
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is '5s'
+PASS computedStyle.transitionDelay is '5s'
+PASS style.webkitTransitionDelay is '5s'
+PASS computedStyle.webkitTransitionDelay is '5s'
+PASS style.transitionDelay is '10ms'
+PASS computedStyle.transitionDelay is '0.01s'
+PASS style.webkitTransitionDelay is '10ms'
+PASS computedStyle.webkitTransitionDelay is '0.01s'
+PASS style.transitionDelay is '-10ms'
+PASS computedStyle.transitionDelay is '-0.01s'
+PASS style.webkitTransitionDelay is '-10ms'
+PASS computedStyle.webkitTransitionDelay is '-0.01s'
+PASS style.transitionDelay is '-10ms, 20s'
+PASS computedStyle.transitionDelay is '-0.01s, 20s'
+PASS style.webkitTransitionDelay is '-10ms, 20s'
+PASS computedStyle.webkitTransitionDelay is '-0.01s, 20s'
+Invalid transition-duration values.
+PASS style.transitionDelay is ''
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is ''
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is ''
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is ''
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is ''
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is ''
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is ''
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is ''
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is ''
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is ''
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS style.transitionDelay is ''
+PASS computedStyle.transitionDelay is '0s'
+PASS style.webkitTransitionDelay is ''
+PASS computedStyle.webkitTransitionDelay is '0s'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
--- /dev/null
+<!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'");
+
+style.transitionDuration = "10ms";
+shouldBe("style.transitionDuration", "'10ms'");
+shouldBe("computedStyle.transitionDuration", "'0.01s'");
+shouldBe("style.webkitTransitionDuration", "'10ms'");
+shouldBe("computedStyle.webkitTransitionDuration", "'0.01s'");
+
+style.transitionProperty = "opacity, width";
+
+style.transitionDuration = "10ms, 20s";
+shouldBe("style.transitionDuration", "'10ms, 20s'");
+shouldBe("computedStyle.transitionDuration", "'0.01s, 20s'");
+shouldBe("style.webkitTransitionDuration", "'10ms, 20s'");
+shouldBe("computedStyle.webkitTransitionDuration", "'0.01s, 20s'");
+
+debug("Invalid transition-duration values.");
+style.transitionProperty = "opacity";
+style.transitionDuration = "";
+
+// Negative values are invalid.
+style.transitionDuration = "-10ms";
+shouldBe("style.transitionDuration", "''");
+shouldBe("computedStyle.transitionDuration", "'0s'");
+shouldBe("style.webkitTransitionDuration", "''");
+shouldBe("computedStyle.webkitTransitionDuration", "'0s'");
+
+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", "'ease'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "linear";
+shouldBe("style.transitionTimingFunction", "'linear'");
+shouldBe("computedStyle.transitionTimingFunction", "'linear'");
+shouldBe("style.webkitTransitionTimingFunction", "'linear'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'linear'");
+
+style.transitionTimingFunction = "ease";
+shouldBe("style.transitionTimingFunction", "'ease'");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "'ease'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "ease-in";
+shouldBe("style.transitionTimingFunction", "'ease-in'");
+shouldBe("computedStyle.transitionTimingFunction", "'ease-in'");
+shouldBe("style.webkitTransitionTimingFunction", "'ease-in'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease-in'");
+
+style.transitionTimingFunction = "ease-out";
+shouldBe("style.transitionTimingFunction", "'ease-out'");
+shouldBe("computedStyle.transitionTimingFunction", "'ease-out'");
+shouldBe("style.webkitTransitionTimingFunction", "'ease-out'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease-out'");
+
+style.transitionTimingFunction = "ease-in-out";
+shouldBe("style.transitionTimingFunction", "'ease-in-out'");
+shouldBe("computedStyle.transitionTimingFunction", "'ease-in-out'");
+shouldBe("style.webkitTransitionTimingFunction", "'ease-in-out'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease-in-out'");
+
+style.transitionTimingFunction = "cubic-bezier(0.25, 0.1, 0.25, 1)";
+shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
+shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
+shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 1)'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.25, 0.1, 0.25, 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, 0.23, 3)";
+shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 3)'");
+shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 3)'");
+shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 3)'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 0, 0.23, 3)'");
+
+style.transitionTimingFunction = "cubic-bezier(0.1, 5, 0.23, 3)";
+shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 3)'");
+shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 3)'");
+shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 3)'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 3)'");
+
+style.transitionTimingFunction = "cubic-bezier(0.1, 5, 0.23, 0)";
+shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 0)'");
+shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 0)'");
+shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 0)'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.1, 5, 0.23, 0)'");
+
+style.transitionTimingFunction = "cubic-bezier(0.2, 2, 0.2, -0.4)";
+shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.2, 2, 0.2, -0.4)'");
+shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.2, 2, 0.2, -0.4)'");
+shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.2, 2, 0.2, -0.4)'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.2, 2, 0.2, -0.4)'");
+
+style.transitionTimingFunction = "cubic-bezier(0.2, -2, 0.2, 0.4)";
+shouldBe("style.transitionTimingFunction", "'cubic-bezier(0.2, -2, 0.2, 0.4)'");
+shouldBe("computedStyle.transitionTimingFunction", "'cubic-bezier(0.2, -2, 0.2, 0.4)'");
+shouldBe("style.webkitTransitionTimingFunction", "'cubic-bezier(0.2, -2, 0.2, 0.4)'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'cubic-bezier(0.2, -2, 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", "'ease-in-out, ease-in'");
+shouldBe("style.webkitTransitionTimingFunction", "'ease-in-out, ease-in'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease-in-out, ease-in'");
+
+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", "'ease-in-out, 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", "'ease-in-out, 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), ease-in-out'");
+shouldBe("style.webkitTransitionTimingFunction", "'steps(3, start), ease-in-out'");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'steps(3, start), ease-in-out'");
+
+debug("Invalid transition-timing-function values.");
+style.transitionProperty = "";
+style.transitionTimingFunction = "";
+
+style.transitionTimingFunction = "cubic-bezier(3, 0.1, 4, 1)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(1, 0.1, 3, 1)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(0.1, 0, 4, 0.4)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(3, 0, 4, 0.4)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(3, 0, 0.2, 0.4)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(-0.2, 0, 0.2, 0.4)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(0.2, 2, -0.2, 0.4)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "steps(5, 3)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "steps(-5, start)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "steps(5, start, end)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "step(5)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "red";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(0.25, 0.1, 0.25)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-bezier(0.25, 0.1, 0.25, 1, 2)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+style.transitionTimingFunction = "cubic-foo(0.25, 0.1, 0.25, 1)";
+shouldBe("style.transitionTimingFunction", "''");
+shouldBe("computedStyle.transitionTimingFunction", "'ease'");
+shouldBe("style.webkitTransitionTimingFunction", "''");
+shouldBe("computedStyle.webkitTransitionTimingFunction", "'ease'");
+
+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'");
+
+style.transitionDelay = "10ms";
+shouldBe("style.transitionDelay", "'10ms'");
+shouldBe("computedStyle.transitionDelay", "'0.01s'");
+shouldBe("style.webkitTransitionDelay", "'10ms'");
+shouldBe("computedStyle.webkitTransitionDelay", "'0.01s'");
+
+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>