<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
<html>
  <head>
    <title>cubic-bezier value overflow: Transforms</title>
    <style>
      .box {
        position: relative;
        left: 0;
        height: 100px;
        width: 100px;
        margin: 10px;
        background-color: blue;
        -webkit-transition: -webkit-transform 1s linear;
        -webkit-transform: rotate(0deg);
      }
      .animating > .box {
        -webkit-transform: rotate(180deg);
      }
    </style>
    <script src="resources/transition-test-helpers.js"></script>
    <script>
      function DegreesToRotation(angle) {
        return roundNumber(Math.cos(angle * Math.PI / 180), 5);
      }

      const expectedValues = [
        // [time, element-id, property, expected-value, tolerance]
        [0.5, "box1", "-webkit-transform.0", DegreesToRotation(137), 0.3],
        [0.95, "box1", "-webkit-transform.0", DegreesToRotation(190), 0.3],
        [0.10, "box2", "-webkit-transform.0", DegreesToRotation(-27), 0.3],
        [0.50, "box2", "-webkit-transform.0", DegreesToRotation(75), 0.3],
        [0.95, "box2", "-webkit-transform.0", DegreesToRotation(193), 0.3],
        [0.10, "box3", "-webkit-transform.0", DegreesToRotation(-68), 0.3],
        [0.50, "box3", "-webkit-transform.0", DegreesToRotation(-203), 0.3],
        [0.15, "box4", "-webkit-transform.0", DegreesToRotation(231), 0.3],
        [0.50, "box4", "-webkit-transform.0", DegreesToRotation(80), 0.3],
        [0.80, "box4", "-webkit-transform.0", DegreesToRotation(48), 0.3],
      ];

      function setupTest() {
        document.getElementById('container').className = 'animating';
      }

      runTransitionTest(expectedValues, setupTest, usePauseAPI);
    </script>
  </head>
  <body>
    <div id="container">
      <div class="box" id="box1" style="-webkit-transition-timing-function: cubic-bezier(0.3, 1.5, 0.8, 1.5);"></div>
      <div class="box" id="box2" style="-webkit-transition-timing-function: cubic-bezier(0.4, -0.8, 0.7, 1.7);"></div>
      <div class="box" id="box3" style="-webkit-transition-timing-function: cubic-bezier(0.7, -2, 1, -1.5);"></div>
      <div class="box" id="box4" style="-webkit-transition-timing-function: cubic-bezier(0, 4, 1, -3);"></div>
    </div>
    <div id="result"></div>
  </body>
</html>