<!DOCTYPE html>

<html>
<head>
    <style type="text/css" media="screen">
        .box {
            position: relative;
            height: 100px;
            width: 100px;
            margin: 20px;
            background-color: blue;
        }

        #movers.moved > .box {
            -webkit-animation: move 1s linear;
        }

        #movers > #test {
            -webkit-animation-iteration-count: 1;
        }
        
        @-webkit-keyframes move {
            from { left: 0px;   }
            to   { left: 400px; }
        }
    </style>
    <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" charset="utf-8">
        const expectedValues = [
            // [animation-name, time, element-id, property, expected-value, tolerance]
            ["move", 0.5, "control", "left", 200, 10],
            ["move", 0.5, "test", "left", 200, 10],
        ];

        function setupTest()
        {
            document.getElementById('movers').className = 'moved';
            runAnimationTest(expectedValues);
        }

        window.addEventListener('load', function() {
            window.setTimeout(setupTest, 0);
        }, false);
    </script>
</head>
<body>
    <p>Animations should both use a linear timing function.</p>
    <div id="movers">
        <div id="control" class="box"></div>
        <div id="test" class="box"></div>
    </div>
    <div id="result"></div>
</body>
</html>
