<!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">
  <title>Transition Between Transform Operation Lists Which Don't Match</title>
  <style type="text/css" media="screen">
    #box {
      height: 100px;
      width: 100px;
      background-color: blue;
      -webkit-transform: translateX(0px) rotate(0deg);
      -webkit-transition-duration: 2s;
      -webkit-transition-timing-function: linear;
      -webkit-transition-property: -webkit-transform;
    }
  </style>
  <script src="transition-test-helpers.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript" charset="utf-8">
    
    function DegreesToRotation(angle)
    {
      return roundNumber(Math.cos(angle * Math.PI / 180), 5);
    }
    
    const expectedValues = [
      // [time, element-id, property, expected-value, tolerance]
      [0.5, "box", "-webkit-transform.0", DegreesToRotation(45), DegreesToRotation(10)],
      [1.0, "box", "-webkit-transform.0", DegreesToRotation(90), DegreesToRotation(10)],
    ];
    
    function setupTest()
    {
      var box = document.getElementById('box');
      box.style.webkitTransform = 'rotate(540deg)';
    }
    
    runTransitionTest(expectedValues, setupTest, true);
    
  </script>
</head>
<body>

<p>
Box should spin only 180 degrees even though the operation specifies a 0 to 540 degree animation.
This is because the operation lists don't match, so it falls back to matrix animation, which 
normalizes the angle to between 0 and 360 degrees.
</p>
<div id="box">
</div>
<div id="result">
</div>
</body>
</html>
