Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2784)

Unified Diff: bower_components/web-animations-js/test/testcases/test-player.html

Issue 786953007: npm_modules: Fork bower_components into Polymer 0.4.0 and 0.5.0 versions (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: bower_components/web-animations-js/test/testcases/test-player.html
diff --git a/bower_components/web-animations-js/test/testcases/test-player.html b/bower_components/web-animations-js/test/testcases/test-player.html
deleted file mode 100644
index 7254669d2464a387b152eab1cf19260990e83db4..0000000000000000000000000000000000000000
--- a/bower_components/web-animations-js/test/testcases/test-player.html
+++ /dev/null
@@ -1,786 +0,0 @@
-<!--
-Copyright 2013 Google Inc. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Written by Steph McArthur
--->
-
-<!DOCTYPE html><meta charset="UTF-8">
-<div id="anim"></div>
-
-<script src="../bootstrap.js"></script>
-<script>
-var animation = new Animation(anim, {left: "100px"}, 100);
-var dt = document.timeline;
-
-// Test AnimationPlayer.timeline.
-var player1 = dt.play(animation);
-test(function() {assert_equals(player1.timeline, document.timeline)},
- "AnimationPlayer.timeline is document timeline");
-
-// Test that TimedItem.player and AnimationPlayer.source are consistent.
-test(function() {assert_equals(player1.source, animation)},
- "AnimationPlayer.source should be the Animation");
-test(function() {assert_equals(animation.player, player1)},
- "TimedItem.player should be the AnimationPlayer");
-
-// Test that play() always returns a new AnimationPlayer.
-var player2 = dt.play(animation);
-test(function() {assert_not_equals(player2, player1)},
- "Repeated calls to play() should create a new AnimationPlayer");
-test(function() {assert_equals(animation.player, player2)},
- "Repeated play(): TimedItem.player should be the AnimationPlayer");
-test(function() {assert_equals(player2.source, animation)},
- "Repeated play(): AnimationPlayer.source should be the Animation");
-test(function() {assert_equals(player2.startTime, player1.startTime)},
- "Repeated play(): Players should have same start time");
-
-// Test explicit setting of AnimationPlayer.source.
-player1.source = animation;
-test(function() {assert_equals(player2.source, null)},
- "Set AnimationPlayer.source: Old source should be null");
-test(function() {assert_equals(player1.source, animation)},
- "Set AnimationPlayer.source: New source should be the Animation");
-test(function() {assert_equals(animation.player, player1)},
- "Set AnimationPlayer.source: TimedItem.player should be the AnimationPlayer");
-
-// Test that TimedItem.player gives null on a detached tree.
-var animation2 =
- new Animation(document.getElementById("anim"), {left: "100px"});
-var animationGroup = new AnimationGroup([animation2]);
-test(function() {assert_equals(animationGroup.player, null)},
- "TimedItem.player should be null for root");
-test(function() {assert_equals(animation2.player, null)},
- "TimedItem.player should be null for leaf");
-
-// Test that TimedItem.player remotes to the root of the tree.
-var player3 = dt.play(animationGroup);
-test(function() {assert_equals(animation2.player, player3)},
- "TimedItem.player should remote");
-
-// Test that calling play() on a TimedItem with a parent results in
-// reparenting.
-var player4 = dt.play(animation2);
-test(function() {assert_equals(animation2.parent, null)},
- "Animation should be reparented");
-test(function() {assert_equals(animationGroup.children.length, 0)},
- "Animation parent should be updated, leaving animationGroup.children.length = 0");
-test(function() {assert_equals(player4.source, animation2)},
- "AnimationPlayer should use reparented animation");
-
-// Test that setting a parent on a TimedItem with an AnimationPlayer causes the
-// player to be disconnected.
-animationGroup.append(animation2);
-test(function() {assert_equals(animationGroup.player, player3)},
- "TimedItem.player should be updated for root");
-test(function() {assert_equals(animation2.player, player3)},
- "TimedItem.player should be updated for leaf");
-test(function() {assert_equals(player4.source, null)},
- "AnimationPlayer.source should be updated");
-test(function() {assert_equals(animation2.parent, animationGroup)},
- "Animation.parent should be updated");
-test(function() {assert_equals(animationGroup.children.length, 1)},
- "Animation parent should be updated, leaving animationGroup.children.length = 1");
-test(function() {assert_equals(animationGroup.children[0], animation2)},
- "Animation parent should be updated");
-
-// Test that currentTime is zero before timeline starts.
-test(function() {assert_equals(document.timeline.play(animation).currentTime, 0)},
- "currentTime should be zero before Timeline starts");
-
-// Test that startTime is zero before timeline starts.
-test(function() {assert_equals(document.timeline.play(animation).startTime, 0)},
- "startTime should be zero before Timeline starts");
-
-// Test that setting currentTime has an effect before the timeline starts.
-var player5 = dt.play(animation);
-player5.currentTime = 42;
-test(function() {assert_equals(player5.currentTime, 42)},
- "player5 can be seeked before timeline starts");
-timing_test(function() {
- at(0.1, function() {
- assert_equals(player5.currentTime, 42.1);
- });
- }, "player5's updates to currentTime should persist after Timeline starts");
-
-// Test that setting startTime has an effect before the timeline starts.
-var player6 = dt.play(animation.clone());
-player6.startTime = 42;
-test(function() {assert_equals(player6.currentTime, -42)},
- "player6's currentTime should always be zero before Timeline starts");
-
-// Test that an AnimationPlayer's TimedItem gets a null inherited time until the
-// timeline starts.
-var animation1 = new Animation(document.getElementById("anim"), {left: "100px"});
-dt.play(animation1);
-test(function() {assert_equals(animation1.localTime, null)},
- "TimedItem's inherited time, and thus " +
- "localTime should be null before Timeline starts");
-timing_test(function() {
- at(0.0, function() {assert_not_equals(animation1.localTime, null)});
- }, "TimedItem's inherited time " +
- "and thus localTime should not be null after Timeline starts");
-
-// Test that TimedItem is updated immediately on calling Timeline.play() after
-// the timeline starts.
-var animation4 = new Animation(
- document.getElementById("anim"), {left: "100px"});
-test(function() {assert_equals(animation4.localTime, null)},
- "localTime should be null before playing");
-timing_test(function() {
- at(0.0, function() {
- document.timeline.play(animation4);
- assert_equals(animation4.localTime, 0)
- });
- }, "localTime should be set by playing");
-
-// Test that updates to currentTime take immediate effect.
-timing_test(function() {
- at(0.0, function() {
- var animation5 = new Animation(
- document.getElementById("anim"), {left: "100px"}, 100);
- document.timeline.play(animation5).currentTime = 42;
- assert_equals(animation5.localTime, 42);
- });
- }, "Updates to AnimationPlayer.currentTime should take immediate effect");
-
-// Test that updates to source take immediate effect.
-timing_test(function() {
- at(0.0, function() {
- var player = document.timeline.play(new Animation(
- document.getElementById("anim"), {left: "100px"}));
- var animation7 = new Animation(
- document.getElementById("anim"), {left: "100px"});
- player.source = animation7;
- assert_equals(animation7.localTime, 0);
- });
- }, "Updates to AnimationPlayer.source should take immediate effect");
-
-function createPlayer(duration) {
- return document.timeline.play(new Animation(null, null, duration));
-}
-
-// Tests the initial values of the AnimationPlayer API.
-timing_test(function() {
- at(0, function() {
- var anim = new Animation(null, null, 3);
- assert_equals(anim.player, null, "player should be null initially");
-
- // Check state after playing
- document.timeline.play(anim);
- assert_not_equals(anim.player, null, "player should be not be null when playing");
- assert_equals(anim.player.source, anim, "Initial source content");
- assert_equals(anim.player.timeline, document.timeline, "Initial document timeline");
- assert_equals(anim.player.startTime, document.timeline.currentTime, "Initial start time");
- assert_equals(anim.player.currentTime, 0, "Initial current time");
- assert_equals(anim.player.timeLag, 0, "Initial time lag");
- assert_equals(anim.player.playbackRate, 1, "Initial playback rate");
- assert_false(anim.player.paused, "Initial paused state");
- assert_false(anim.player.finished, "Initial finished state");
- });
- }, "Initial state");
-
-// Test paused states after pausing.
-test(function() {
- var player = createPlayer(3);
-
- // Pause
- player.pause();
- assert_true(player.paused, "Paused state after pausing");
- assert_false(player.finished, "Finished state after pausing");
-
- // Unpause
- player.play();
- assert_false(player.paused, "Paused state after unpausing");
- assert_false(player.finished, "Finished state after unpausing");
- }, "Pause");
-
-// Test seeking behind startTime for a forwards player.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek before start
- player.currentTime = -0.1;
- assert_equals(player.currentTime, -0.1, "Current time after seeking before start");
- assert_false(player.paused, "Paused state after seeking before start");
- assert_false(player.finished, "Finished state after seeking before start");
-
- // Check player does progress
- at(0.2, function() {
- assert_equals(player.currentTime, 0.1, "Current time should progress");
- });
- }, "Seek behind content (forwards)");
-
-// Test players do not get bounded after updating startTime such that they are before the start time.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set start time in the future
- player.startTime = 0.1;
-
- // Check state of player
- assert_equals(player.currentTime, -0.1, "Current time while waiting to start");
- assert_false(player.paused, "Paused state while waiting to start");
- assert_false(player.finished, "Finished state while waiting to start");
-
- // Check player starts automatically
- at(0.2, function() {
- assert_equals(player.currentTime, 0.1, "Current time should progress");
- assert_false(player.paused, "Paused state after starting");
- assert_false(player.finished, "Finished state after starting");
- });
- }, "No bounding at start");
-
-// Test players get bounded when they finish their source content.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek to just before end
- player.currentTime = 2.9;
-
- // Check state of player
- assert_equals(player.currentTime, 2.9, "Current time just before end");
- assert_false(player.paused, "Paused state just before end");
- assert_false(player.finished, "Finished state just before end");
-
- // Check player after finishing
- at(0.2, function() {
- assert_equals(player.currentTime, 3.0, "Current time when bounded progress");
- assert_false(player.paused, "Paused state after ending");
- assert_true(player.finished, "Finished state after ending");
- });
- }, "Limiting at end (seek with current time)");
-
-// Test players get bounded when they finish their source content after altering start time.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek to just before end using the start time
- player.startTime -= 2.9;
-
- // Check state of player
- assert_equals(player.currentTime, 2.9, "Current time just before end");
- assert_false(player.paused, "Paused state just before end");
- assert_false(player.finished, "Finished state just before end");
-
- // Check player after finishing
- at(0.2, function() {
- assert_equals(player.currentTime, 3.0, "Current time when bounded progress");
- assert_false(player.paused, "Paused state after ending");
- assert_true(player.finished, "Finished state after ending");
- });
- }, "Limiting at end (seek with start time)");
-
-// Test reversing a player prior to starting doesn't snap the current time to the beginning.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek before start
- player.currentTime = -0.1;
-
- // Check state
- assert_equals(player.currentTime, -0.1, "Current time before reversing");
- assert_false(player.finished, "Finished state before reversing");
-
- // Reverse
- player.reverse();
- assert_equals(player.currentTime, -0.1, "Current time after reversing");
- assert_true(player.finished, "Finished state after reversing");
- assert_equals(player.playbackRate, -1, "Playback rate after reversing");
-
- // Check player after some time
- at(0.2, function() {
- assert_equals(player.currentTime, -0.1, "Current time later");
- assert_true(player.finished, "Finished state later");
- });
- }, "reverse() before start");
-
-// Test reversing a player at the start causes the player to become bounded.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Reverse
- player.reverse();
- assert_equals(player.currentTime, 0, "Current time after reversing");
- assert_true(player.finished, "Finished state after reversing");
- assert_equals(player.playbackRate, -1, "Playback rate after reversing");
-
- // Check player after some time
- at(0.2, function() {
- assert_equals(player.currentTime, 0, "Current time later");
- assert_true(player.finished, "Finished state later");
- });
- }, "reverse() at start");
-
-// Test reversing a player halfway through an animation.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek midway
- player.currentTime = 1.5;
-
- // Reverse
- player.reverse();
- assert_equals(player.currentTime, 1.5, "Current time after reversing");
- assert_false(player.finished, "Finished state after reversing");
- assert_equals(player.playbackRate, -1, "Playback rate after reversing");
-
- // Check player after some time
- at(0.2, function() {
- assert_equals(player.currentTime, 1.3, "Current time when reversing");
- assert_false(player.finished, "Finished state later");
- });
- }, "reverse() while playing");
-
-// Test reversing a player that has ended starts playing backwards.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek to just before the end
- player.currentTime = 2.9;
-
- // Wait to finish
- at(0.2, function() {
- assert_equals(player.currentTime, 3.0, "Current time when finished");
- assert_true(player.finished, "Finished state after finished");
-
- // Reverse
- player.reverse();
- assert_equals(player.currentTime, 3.0, "Current time after reversing");
- assert_false(player.finished, "Finished state after reversing");
- assert_equals(player.playbackRate, -1, "Playback rate after reversing");
-
- // Check we actually reverse
- at(0.2, function() {
- assert_equals(player.currentTime, 2.8, "Current time after beginning reverse");
- assert_false(player.finished, "Finished state after reversing");
- });
- });
- }, "reverse() when finished");
-
-// Test reversing a player seeked past the end will snap back to the end.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek to past the end
- player.currentTime = 4.0
-
- player.reverse();
- assert_equals(player.currentTime, 3.0, "Current time after reversing");
- assert_false(player.finished, "Finished state after reversing");
- assert_equals(player.playbackRate, -1, "Playback rate after reversing");
-
- // Check we actually reverse
- at(0.2, function() {
- assert_equals(player.currentTime, 2.8, "Current time after beginning reverse");
- assert_false(player.finished, "Finished state after reversing");
- });
- }, "reverse() when seeked past end");
-
-// Test player current time after adjusting start time.
-test(function() {
- var player = createPlayer(3);
-
- player.startTime = 1;
-
- assert_equals(player.currentTime, -1, "currentTime while waiting to start");
- assert_false(player.finished, "Finished state while waiting to start");
-
- // Then put it in range
- player.startTime -= 2;
- assert_equals(player.currentTime, 1, "currentTime after updating start time");
- assert_false(player.finished, "Finished state while after updating start time");
- }, "Adjust start time (1)");
-
-// Test player current time after adjusting start time and playing.
-timing_test(function() {
- var player = createPlayer(3);
-
- player.startTime = 1;
-
- assert_equals(player.currentTime, -1, "currentTime while waiting to start");
- assert_false(player.finished, "Finished state while waiting to start");
-
- // Then adjust start time
- player.startTime -= 0.75;
-
- // Check player is still waiting
- assert_equals(player.currentTime, -0.25, "currentTime while waiting to start");
- assert_false(player.finished, "Finished state while still waiting to start");
-
- // Verify the time *did* update though
- at(0.5, function() {
- assert_equals(player.currentTime, 0.25, "currentTime after starting to play");
- assert_false(player.finished, "Finished state after starting to play");
- });
- }, "Adjust start time (2)");
-
-// Test player bounding by changing start time.
-test(function() {
- var player = createPlayer(3);
-
- // Put it past the end
- player.startTime = -4;
- assert_equals(player.currentTime, 3, "currentTime after end");
- assert_true(player.finished, "Finished state after end");
- }, "Adjust start time (3)");
-
-// Test bounding and unbounding a player by modifying start time.
-test(function() {
- var player = createPlayer(3);
-
- // Put player in limited stage
- player.startTime = -4;
-
- assert_equals(player.currentTime, 3, "currentTime state while limited");
- assert_true(player.finished, "Finished state while limited");
-
- // Then put it in range
- player.startTime += 2;
- assert_equals(player.currentTime, 2, "currentTime after updating start time");
- assert_false(player.finished, "Finished state while after updating start time");
- }, "Adjust start time (4)");
-
-// Test seeking past end of player.
-timing_test(function() {
- var player = createPlayer(3);
- player.currentTime = 4;
- assert_equals(player.currentTime, 4, "currentTime before waiting");
- at(0.2, function() {
- assert_equals(player.currentTime, 4, "currentTime after waiting");
- });
- }, "Seeking past player content end and waiting");
-
-// Test seeking before start of reversed player.
-timing_test(function() {
- var player = createPlayer(3);
- player.playbackRate = -1;
- player.currentTime = -1;
- assert_equals(player.currentTime, -1, "currentTime before waiting");
- at(0.2, function() {
- assert_equals(player.currentTime, -1, "currentTime after waiting");
- });
- }, "Seeking before reversed player content start and waiting");
-
-// Test reversing the playback rate of a bounded player.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set up player to start in 0.1s
- player.startTime = 0.1;
-
- // Check state
- assert_equals(player.currentTime, -0.1, "currentTime after while waiting to start");
- assert_false(player.finished, "Finished state while waiting to start");
-
- // Reverse playbackRate
- player.playbackRate = -1;
-
- // We should maintain the same current time
- assert_equals(player.currentTime, -0.1, "currentTime after updating playbackRate");
- assert_true(player.finished, "Finished state after updating playbackRate");
-
- // If we wait a while we should be stuck at the end
- at(0.2, function() {
- assert_equals(player.currentTime, -0.1, "currentTime after waiting");
- assert_true(player.finished, "Finished state after waiting");
-
- // Call play and we should start from the end
- player.play();
- assert_equals(player.currentTime, 3, "currentTime after play()");
- assert_false(player.finished, "Finished state after play()");
- });
- }, "Reversing playbackRate before start");
-
-// Test normal current time progression of a player after being bounded and unbounded.
-timing_test(function() {
- // Set up player
- var player = createPlayer(3);
-
- // Seek to bounded time
- player.currentTime = 4;
-
- // Check state
- assert_equals(player.currentTime, 4, "currentTime while bounded");
- assert_true(player.finished, "Finished state while bounded");
-
- // Seek to unbounded time
- player.currentTime = 2;
- assert_equals(player.currentTime, 2, "currentTime while unbounded");
- assert_false(player.finished, "Finished state while unbounded");
-
- // Check it actually is playing
- at(0.2, function() {
- assert_equals(player.currentTime, 2.2, "Current time after playing unbounded");
- });
- }, "Seeking from end to playing");
-
-// Test finishing and replaying a player in reverse.
-timing_test(function() {
- // Set up player
- var player = createPlayer(3);
-
- // Seek to middle of interval and reverse
- player.currentTime = 2;
- player.reverse();
-
- // Check state
- assert_equals(player.currentTime, 2, "currentTime after reversing");
- assert_false(player.finished, "Finished state after reversing");
- assert_equals(player.playbackRate, -1, "Playback rate after reversing");
- player.finish();
- assert_equals(player.currentTime, 0, "currentTime after finishing");
- assert_true(player.finished, "Finished state after finishing");
-
- // Then play again
- player.play();
- assert_equals(player.currentTime, 3, "currentTime after playing again");
- assert_false(player.finished, "Finished state after playing again");
-
- // Check if actually progresses
- at(0.2, function() {
- assert_equals(player.currentTime, 2.8, "Current time after playing for a while");
- });
- }, "play() on a finished reversed player");
-
-// Test player.play() seeking to start when behind the source content.
-timing_test(function() {
- // Set up player to start in 2s
- var player = createPlayer(3);
- player.startTime = 2;
-
- // Check it is waiting to start
- assert_equals(player.currentTime, -2, "currentTime while waiting");
- assert_false(player.finished, "Finished state while waiting");
-
- // Call play()
- player.play();
- assert_equals(player.currentTime, 0, "currentTime after calling play()");
- assert_false(player.finished, "Finished state after calling play()");
-
- // Check it really is playing
- at(0.5, function() {
- assert_equals(player.currentTime, 0.5, "Current time after playing for a while");
- });
- }, "play() on player waiting to start kick-starts it");
-
-// Test seeking a player to the start of its animation.
-timing_test(function() {
- // Set up player to start in 2s
- var player = createPlayer(3);
- player.startTime = 2;
-
- // Check it is waiting to start
- assert_equals(player.currentTime, -2, "currentTime while waiting");
- assert_false(player.finished, "Finished state while waiting");
-
- // Set currentTime = 0
- player.currentTime = 0;
- assert_equals(player.currentTime, 0, "currentTime after setting currentTime = 0");
- assert_false(player.finished, "Finished state after setting currentTime = 0");
-
- // Check it is playing
- at(0.5, function() {
- assert_equals(player.currentTime, 0.5, "currentTime after waiting a while");
- assert_false(player.finished, "Finished state after waiting a while");
- });
- }, "currentTime = 0 on player waiting to start is ok");
-
-// Test player becoming unbounded after source content is extended.
-timing_test(function() {
- var player = createPlayer(3);
-
- player.currentTime = 4;
- assert_equals(player.currentTime, 4, "currentTime after setting currentTime = 4");
- assert_true(player.finished, "Finished state after setting currentTime = 4");
-
- // Check it is NOT playing
- at(0.2, function() {
- assert_equals(player.currentTime, 4, "currentTime after waiting a while");
-
- // Extend source
- player.source.timing.duration = 5;
- assert_equals(player.currentTime, 4, "currentTime after extending source");
- assert_false(player.finished, "Finished state after extending source");
-
- // Check it IS playing
- at(0.2, function() {
- assert_equals(player.currentTime, 4.2, "currentTime after waiting a while again");
- });
- });
- }, "Extending source unblocks player (seek past end)");
-
-// Test player ending normally and becoming unbounded after source content is extended.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set currentTime to just before the end
- player.currentTime = 2.9;
- assert_false(player.finished, "Finished state just before ending");
-
- // Play to end
- at(0.2, function() {
- assert_equals(player.currentTime, 3, "currentTime after ending normally");
- assert_true(player.finished, "Finished state after ending normally");
-
- // Extend source
- player.source.timing.duration = 5;
- assert_equals(player.currentTime, 3.0, "currentTime after extending source");
- assert_false(player.finished, "Finished state after extending source");
-
- // Check it is playing
- at(0.2, function() {
- assert_equals(player.currentTime, 3.2, "currentTime after waiting a while again");
- });
- });
- }, "Extending source unblocks player (end normally)");
-
-// Test player becomes bounded after source content is shortened.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set currentTime to just before the end
- player.currentTime = 2;
- assert_equals(player.currentTime, 2.0, "currentTime before shortening");
- assert_false(player.finished, "Finished state before shortening");
-
- // Shorten source
- player.source.timing.duration = 1;
- assert_equals(player.currentTime, 2.0, "currentTime after shortening");
- assert_true(player.finished, "Finished state after shortening");
-
- // Check it is not playing
- at(0.2, function() {
- assert_equals(player.currentTime, 2.0, "currentTime after shortening");
- });
- }, "Shortening source blocks player");
-
-// Test playing player becomes bounded after source content is shortened.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set currentTime to midway
- player.currentTime = 1.5;
- assert_equals(player.currentTime, 1.5, "currentTime before shortening");
- assert_false(player.finished, "Finished state after seeking");
-
- // Let it play for a while
- at(0.2, function() {
- assert_equals(player.currentTime, 1.7, "currentTime before shortening");
- assert_false(player.finished, "Finished state before shortening");
-
- // Shorten source
- player.source.timing.duration = 1;
- assert_equals(player.currentTime, 1.7, "currentTime after shortening");
- assert_true(player.finished, "Finished state after shortening");
- });
- }, "Shortening source blocks player when playing");
-
-// Test reversed player does not become bounded after its source content is shortened.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set currentTime to just before the end
- player.currentTime = 2;
- player.reverse();
- assert_equals(player.currentTime, 2.0, "currentTime before shortening");
- assert_false(player.finished, "Finished state before shortening");
-
- // Shorten source
- player.source.timing.duration = 1;
- assert_equals(player.currentTime, 2.0, "currentTime after shortening");
- assert_false(player.finished, "Finished state after shortening");
-
- // Check it is playing
- at(0.2, function() {
- assert_equals(player.currentTime, 1.8, "currentTime after shortening");
- });
- }, "Shortening source does not block in reverse");
-
-// Test player becoming unbounded after duration 0 source content is extended.
-timing_test(function() {
- // Add empty animation
- var player = createPlayer(0);
-
- // Check we don't progress
- assert_equals(player.currentTime, 0, "currentTime before adding content");
- assert_true(player.finished, "Finished state before adding content");
-
- // Wait and check we don't progress
- at(0.2, function() {
- assert_equals(player.currentTime, 0, "currentTime after waiting");
- assert_true(player.finished, "Finished state after waiting");
-
- // "Add" content
- player.source.timing.duration = 3;
-
- // We should pick up from 0, not jump 0.2s in
- assert_equals(player.currentTime, 0, "currentTime after extending");
- assert_false(player.finished, "Finished state after extending");
-
- // Wait and check
- at(0.2, function() {
- assert_equals(player.currentTime, 0.2, "currentTime after extending and waiting");
- });
- });
- }, "Async add content");
-
-// Test negative player playback rate with negative current time.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Set a negative time and let it play for a while
- player.currentTime = -1;
- at(0.2, function() {
- assert_equals(player.currentTime, -0.8, "currentTime after waiting");
- assert_false(player.finished, "Finished state after waiting");
-
- // Reverse
- player.playbackRate = -1;
- assert_equals(player.currentTime, -0.8, "currentTime after reversing");
- assert_true(player.finished, "Finished state after reversing");
- });
- }, "Setting negative playback rate in negative space");
-
-// Test reversed player becoming bounded when start of animation is reached.
-timing_test(function() {
- var player = createPlayer(3);
-
- // Seek to just before end
- player.reverse();
- player.currentTime = 0.1;
-
- // Check state of player
- assert_equals(player.currentTime, 0.1, "Current time just before end");
- assert_false(player.paused, "Paused state just before end");
- assert_false(player.finished, "Finished state just before end");
-
- // Check player after finishing
- at(0.2, function() {
- assert_equals(player.currentTime, 0, "Current time when limited");
- assert_false(player.paused, "Paused state after ending");
- assert_true(player.finished, "Finished state after ending");
- });
-}, "Limiting at start");
-
-// Test the floating point accuracy of seeking a player.
-test(function() {
- var player = createPlayer(3);
- // Setting a high playbackRate has caused the reported currentTime to differ
- // from what was set in previous implementations of AnimationPlayer.
- player.playbackRate = 123456;
- player.currentTime = 1.618;
- assert_equals(player.currentTime, 1.618, "currentTime after seeking to fractional time");
- }, "currentTime preserves floating point accuracy after seeking");
-</script>

Powered by Google App Engine
This is Rietveld 408576698