<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Test animation with missing from and to keyframes</title>
  <style type="text/css" media="screen">
    .box {
      position: relative;
      left: 10px;
      top: 10px;
      height: 20px;
      width: 20px;
      background-color: blue;
      -webkit-animation-duration: 2s;
      -webkit-animation-timing-function: linear;
    }
  
    #box1 {
      -webkit-animation-name: anim1;
    }
    @-webkit-keyframes anim1 {
        from { left: 10px; }
        40% { left: 30px; }
        60% { left: 10px; }
        to { left: 20px; }
    }

    #box2 {
      -webkit-animation-name: anim2;
      background-color: red;
    }
    @-webkit-keyframes anim2 {
        40% { left: 30px; }
        60% { left: 10px; }
        to { left: 20px; }
    }

    #box3 {
      left: 20px;
      -webkit-animation-name: anim3;
      background-color: green;
    }
    @-webkit-keyframes anim3 {
        from { left: 10px; }
        40% { left: 30px; }
        60% { left: 10px; }
    }

    #box4 {
      -webkit-animation-name: anim4;
      background-color: yellow;
    }
    @-webkit-keyframes anim4 {
        40% { left: 30px; }
        60% { left: 20px; }
    }

    #box5 {
      -webkit-animation-name: anim5;
      background-color: orange;
    }
    @-webkit-keyframes anim5 {
    }
    
    #result {
      margin-top: 20px;
    }
  </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]
      ["anim1", 0.4, "box1", "left", 20, 2],
      ["anim1", 1.0, "box1", "left", 20, 2],
      ["anim1", 1.6, "box1", "left", 15, 2],
      ["anim2", 0.4, "box2", "left", 20, 2],
      ["anim2", 1.0, "box2", "left", 20, 2],
      ["anim2", 1.6, "box2", "left", 15, 2],
      ["anim3", 0.4, "box3", "left", 20, 2],
      ["anim3", 1.0, "box3", "left", 20, 2],
      ["anim3", 1.6, "box3", "left", 15, 2],
      ["anim4", 0.4, "box4", "left", 20, 2],
      ["anim4", 1.0, "box4", "left", 25, 2],
      ["anim4", 1.6, "box4", "left", 15, 2]
    ];

    runAnimationTest(expectedValues, function() {
      if (window.testRunner) {
          var box5Element = document.getElementById('box5');
          if (internals.pauseAnimationAtTimeOnElement("anim5", 0.1, box5Element))
              result += "FAIL - box5 animation was running<br>";
          else 
              result += "PASS - box5 animation was not running<br>";
      }
    });
    
  </script>
</head>
<body>
This test performs animations of the left property on five boxes over 2 seconds.
Box 1 has all keyframes. Box 2 has a missing "from" keyframe.
Box 3 has a missing "to" keyframe.
Box 4 has both "from" and "to" keyframes missing, but other keyframes which
should trigger the generation of "from" and "to". Box 5 has no keyframes, and
should not animate.
The test takes 3 snapshots each and expects each result to be within a specified range.
<div class="box" id="box1">
</div>
<div class="box" id="box2">
</div>
<div class="box" id="box3">
</div>
<div class="box" id="box4">
</div>
<div class="box" id="box5">
</div>
<div id="result">
</div>
</body>
</html>
