<!DOCTYPE html>

<html>
<head>
  <style>
    #container {
      position: relative;
      width: 400px;
      height: 100px;
      border: 1px solid  black;
    }
    
    .box {
      position: absolute;
      width: 100px;
      height: 100px;
      background-color: green;
    }
    
    .indicator {
      left: 150px;
      top: 0;
      background-color: red;
    }
    #container.moved .software {
      left: 300px;
    }

    #container.moved .hardware {
      -webkit-transform: translateX(300px);
    }

    .hardware {
      -webkit-transform-style: preserve-3d;
      -webkit-transition: -webkit-transform 300ms linear;
      -webkit-transform: translateX(0);
    }

   </style>
   <script src="resources/transition-test-helpers.js"></script>
   <script type="text/javascript">

    function testEnded()
    {
      var testDiv = document.getElementById('tester');
      testDiv.style.webkitTransitionProperty = 'none';
      testDiv.style.webkitTransitionDuration = '0';

      testDiv.style.webkitTransform = 'translateX(150px)';
      if (window.testRunner)
        testRunner.notifyDone();
    }
    
    function startTest()
    {
      if (window.testRunner)
        testRunner.waitUntilDone();

      document.getElementById('tester').addEventListener('webkitTransitionEnd', testEnded, false);
      document.getElementById('container').className = 'moved';
    }
    
    window.addEventListener('load', startTest, false);
   </script>
</head>
<body>

  <p>At the end of the test the green box should obscure the red box.</p>
  <div id="container">
    <div class="indicator box"></div>
    <div id="tester" class="hardware box"></div>
  </div>

  <div id="result">
  </div>

</body>
</html>
