<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <style>
    div {
      position: relative;
      left: 100px;
      height: 50px;
      width: 50px;
      background-color: green;
      -webkit-transition-property: left;
      -webkit-transition-duration: 4s;
      -webkit-transition-timing-function: linear;
      -webkit-transition-delay: 1s;
    }
    
    .moved {
      left: 200px;
    }
   </style>
   <script src="transition-test-helpers.js" type="text/javascript" charset="utf-8"></script>
   <script type="text/javascript" charset="utf-8">
    function endTest() {
      if (window.layoutTestController) {
        layoutTestController.pauseTransitionAtTimeOnElementWithId("left", 2.0, "target");
        var left = window.getComputedStyle(document.getElementById('target')).left;
        var result = "PASS";
        if (left != "125px") {
          result = "FAIL - expected 125px got " + left;
        }
        document.getElementById('result').innerHTML = "<p>" + result + "</p>";
        layoutTestController.notifyDone();
      }
    }
    
    function startTest() {
      if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
      }
      
      document.getElementById("target").className = "moved";
      waitForAnimationStart(endTest, 1);
    }
   </script>
</head>
<body onload="startTest()">
  <h1>Test for transition delay on layoutTestController API</h1>
  
  <p>This test works only in DumpRenderTree. It uses an API exposed
    only there to jump to a particular time in a running transition.
    Tests bug <a href="https://bugs.webkit.org/show_bug.cgi?id=22368">22368</a>
  </p>

  <div id="target">
  </div>

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

</body>
</html>
