<!DOCTYPE html>

<html>
<head>
    <style>
    #box {
        position: relative;
        height: 100px;
        width: 100px;
        background-color: blue;
        -webkit-transition-property: left;
        -webkit-transition-duration: 2s;
        -webkit-transition-timing-function: linear;
    }
    </style>
    <script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    result = "PASS";
    
    function isEqual(actual, desired, tolerance)
    {
        var diff = Math.abs(actual - desired);
        return diff <= tolerance;
    }
    
    function snapshot(expected, tolerance)
    {
        if (result != "PASS")
            return;
            
        var left = parseInt(window.getComputedStyle(document.getElementById('box')).left);
        if (!isEqual(left, expected, tolerance))
            result = "FAIL(was:"+left+", expected:"+expected+")";
    }
    
    function reset()
    {
        document.getElementById('box').style.webkitTransitionDuration = "0s";
        document.getElementById('box').style.left = "0px";
    }
    
    function startTransition()
    {
        document.getElementById('box').style.left = "400px";
    }

    function start()
    {
        setTimeout("startTransition()", 0);
        setTimeout("snapshot(100, 80)", 500);
        setTimeout("reset()", 600);
        setTimeout("snapshot(0, 0)", 700);
        
        window.setTimeout(function() {
            document.getElementById('result').innerHTML = result;
            if (window.testRunner)
                testRunner.notifyDone();
        }, 800);
    }
    
    window.addEventListener('load', start, false)
  </script>
</head>
<body>

<p>
This tests changing a transitioning property while running and resetting its duration to 0.
The box should start moving left and after 500ms snap back to 0</p>
<div id="box">
</div>
<div id="result">
</div>
</body>
</html>
