<!doctype html>
<meta charset=utf-8>
<title>CSSAnimation.startTime</title>
<!-- TODO: Add a more specific link for this once it is specified. -->
<link rel="help" href="https://drafts.csswg.org/css-animations-2/#cssanimation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/testcommon.js"></script>
<style>

.animated-div {
  margin-left: 10px;
  /* Make it easier to calculate expected values: */
  animation-timing-function: linear ! important;
}

@keyframes anim {
  from { margin-left: 100px; }
  to { margin-left: 200px; }
}

</style>
<div id="log"></div>
<script type="text/javascript">

'use strict';

test(t => {
  const div = addDiv(t, { 'class': 'animated-div' });
  div.style.animation = 'anim 100s 100s';
  const animation = div.getAnimations()[0];

  const timelineTime = animation.timeline.currentTime;
  animation.startTime = timelineTime;

  assert_times_equal(animation.startTime, timelineTime,
    'Check setting of startTime actually works');
}, 'The start time of a CSS animation can be set');

promise_test(async t => {
  const div = addDiv(t, { 'class': 'animated-div' });
  div.style.animation = 'anim 100s 100s';
  const animation = div.getAnimations()[0];

  // Seek to the half-way point
  animation.startTime = animation.timeline.currentTime - 150 * MS_PER_SEC;

  assert_equals(getComputedStyle(div).marginLeft, '150px');
}, 'The start time can be set to seek a CSS animation');

promise_test(async t => {
  const div = addDiv(t, { class: 'animated-div' });
  const eventWatcher = new EventWatcher(t, div, [
    'animationstart',
    'animationend',
  ]);
  div.style.animation = 'anim 100s 100s';
  const animation = div.getAnimations()[0];

  await animation.ready;

  animation.startTime = animation.timeline.currentTime - 100 * MS_PER_SEC;
  await eventWatcher.wait_for('animationstart');

  animation.startTime = animation.timeline.currentTime - 200 * MS_PER_SEC;
  await eventWatcher.wait_for('animationend');
}, 'Seeking a CSS animation using the start time dispatches animation events');

</script>
