@@ -38,6 +38,7 @@ suite('player', function() {
3838 assert . equal ( p . currentTime , null ) ;
3939 tick ( 700 ) ;
4040 p . play ( ) ;
41+ tick ( 700 ) ;
4142 assert . equal ( p . currentTime , 1000 ) ;
4243 tick ( 800 ) ;
4344 assert . equal ( p . currentTime , 1100 ) ;
@@ -75,6 +76,7 @@ suite('player', function() {
7576 assert . equal ( p . currentTime , 300 ) ;
7677 assert . equal ( p . playbackRate , 1 ) ;
7778 p . reverse ( ) ;
79+ tick ( 600 ) ;
7880 assert . equal ( p . startTime , 900 ) ;
7981 assert . equal ( p . currentTime , 300 ) ;
8082 assert . equal ( p . playbackRate , - 1 ) ;
@@ -90,8 +92,8 @@ suite('player', function() {
9092 p . reverse ( ) ;
9193 tick ( 601 ) ;
9294 tick ( 700 ) ;
93- assert . equal ( p . startTime , 1100 ) ;
94- assert . equal ( p . currentTime , 400 ) ;
95+ assert . equal ( p . startTime , 1101 ) ;
96+ assert . equal ( p . currentTime , 401 ) ;
9597 } ) ;
9698 test ( 'reversing after finishing works as expected' , function ( ) {
9799 tick ( 90 ) ;
@@ -172,7 +174,8 @@ suite('player', function() {
172174 assert . equal ( p . playbackRate , 1 ) ;
173175 setTicking ( true ) ;
174176 p . play ( ) ;
175- assert . equal ( p . startTime , 2600 ) ;
177+ tick ( 2700 ) ;
178+ assert . equal ( p . startTime , 2700 ) ;
176179 assert . equal ( p . currentTime , 0 ) ;
177180 assert . equal ( p . finished , false ) ;
178181 assert . equal ( p . playbackRate , 1 ) ;
@@ -183,14 +186,16 @@ suite('player', function() {
183186 tick ( 600 ) ;
184187 tick ( 700 ) ;
185188 p . reverse ( ) ;
189+ tick ( 701 ) ;
186190 tick ( 900 ) ;
187- assert . equal ( p . startTime , 800 ) ;
191+ assert . equal ( p . startTime , 801 ) ;
188192 assert . equal ( p . currentTime , 0 ) ;
189193 assert . equal ( p . finished , true ) ;
190194 assert . equal ( p . playbackRate , - 1 ) ;
191195 setTicking ( true ) ;
192196 p . play ( ) ;
193- assert . equal ( p . startTime , 3900 ) ;
197+ tick ( 1000 ) ;
198+ assert . equal ( p . startTime , 4000 ) ;
194199 assert . equal ( p . currentTime , 3000 ) ;
195200 assert . equal ( p . finished , false ) ;
196201 assert . equal ( p . playbackRate , - 1 ) ;
@@ -205,10 +210,11 @@ suite('player', function() {
205210 assert . equal ( p . currentTime , 600 ) ;
206211 assert . equal ( p . startTime , 300 ) ;
207212 p . reverse ( ) ;
208- assert . equal ( p . startTime , 1500 ) ;
213+ tick ( 1000 ) ;
214+ assert . equal ( p . startTime , 1600 ) ;
209215 p . currentTime = 300 ;
210216 assert . equal ( p . currentTime , 300 ) ;
211- assert . equal ( p . startTime , 1200 ) ;
217+ assert . equal ( p . startTime , 1300 ) ;
212218 } ) ;
213219 test ( 'seeking while paused works as expected' , function ( ) {
214220 tick ( 790 ) ;
@@ -434,4 +440,22 @@ suite('player', function() {
434440 p . currentTime = undefined ;
435441 assert . equal ( p . currentTime , 10 ) ;
436442 } ) ;
443+ test ( 'play() should not set a start time' , function ( ) {
444+ var p = document . body . animate ( [ ] , 1000 ) ;
445+ p . cancel ( ) ;
446+ assert . equal ( p . startTime , null ) ;
447+ assert . equal ( p . playState , 'idle' ) ;
448+ p . play ( ) ;
449+ assert . equal ( p . startTime , null ) ;
450+ assert . equal ( p . playState , 'pending' ) ;
451+ } ) ;
452+ test ( 'reverse() should not set a start time' , function ( ) {
453+ var p = document . body . animate ( [ ] , 1000 ) ;
454+ p . cancel ( ) ;
455+ assert . equal ( p . startTime , null ) ;
456+ assert . equal ( p . playState , 'idle' ) ;
457+ p . reverse ( ) ;
458+ assert . equal ( p . startTime , null ) ;
459+ assert . equal ( p . playState , 'pending' ) ;
460+ } ) ;
437461} ) ;
0 commit comments