<!DOCTYPE html>

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

        .box.animating {
            -webkit-animation: move 0.1s linear;
            left: 100px;
            -webkit-transition: left 10s linear;
        }
        
        /* When the animation is done, the box should be running a transition from 100px to 200px */
        .box.animating.moved {
            left: 200px;
        }
        
        @-webkit-keyframes move {
            from {
                left: 500px;
            }
            to   {
                left: 501px;
            }
        }
        
        #result {
            margin-top: 130px;
        }
    </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]
        [null, 0.2, "test", "left", 100, 10],
      ];

      function animationStarted()
      {
          document.getElementById('test').className = 'animating moved box';
      }

      function setupTest()
      {
        document.getElementById('test').className = 'animating box';
        runAnimationTest(expectedValues, animationStarted);
      }
      
      window.addEventListener('load', function() {
          window.setTimeout(setupTest, 0);
      }, false);

    </script>
</head>
<body>
    <p>Once animation has finished, box should be running left transition from 100px to 200px.</p>
    <div id="test" class="box"></div>
    <div id="result"></div>
</body>
</html>
