Testing parsing and serialization of <tt>-webkit-transition-timing-function</tt> values.
<pre id="console">
</pre>
<div id="target"></div>
<script>
    if (window.layoutTestController)
        layoutTestController.dumpAsText();

    function log(message)
    {
        var console = document.getElementById("console");
        console.appendChild(document.createTextNode(message + "\n"));
    }

    function roundTripTransitionTimingFunctionValue(value)
    {
        var element = document.getElementById("target");
        element.style.webkitTransitionTimingFunction = value;
        if (element.style.webkitTransitionTimingFunction === value)
            log("PASS: '" + value + "' parsed and serialized successfully.");
        else
            log("FAIL: '" + value + "' serialized back as '" + element.style.webkitTransitionTimingFunction + "'.");
    }

    roundTripTransitionTimingFunctionValue("linear");
    roundTripTransitionTimingFunctionValue("ease-in");
    roundTripTransitionTimingFunctionValue("ease-out");
    roundTripTransitionTimingFunctionValue("ease-in-out");
    roundTripTransitionTimingFunctionValue("cubic-bezier(0, 0, 0, 1)");
    roundTripTransitionTimingFunctionValue("cubic-bezier(0.1, 0.52, 0.11101, 0.9)");
</script>
