/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
   https://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

const Cu = Components.utils;
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
const {TimeScale} = require("devtools/client/animationinspector/utils");

const TEST_ENDDELAY_X = [{
  desc: "Testing positive-endDelay animations",
  animations: [{
    previousStartTime: 0,
    duration: 500,
    playbackRate: 1,
    iterationCount: 3,
    delay: 500,
    endDelay: 500
  }],
  expectedEndDelayX: 80
}, {
  desc: "Testing negative-endDelay animations",
  animations: [{
    previousStartTime: 0,
    duration: 500,
    playbackRate: 1,
    iterationCount: 9,
    delay: 500,
    endDelay: -500
  }],
  expectedEndDelayX: 90
}];

function run_test() {
  do_print("Test calculating endDelayX");

  // Be independent of possible prior tests
  TimeScale.reset();

  for (let {desc, animations, expectedEndDelayX} of TEST_ENDDELAY_X) {
    do_print(`Adding animations: ${desc}`);

    for (let state of animations) {
      TimeScale.addAnimation(state);

      let {endDelayX} = TimeScale.getAnimationDimensions({state});
      equal(endDelayX, expectedEndDelayX);

      TimeScale.reset();
    }
  }
}
