@@ -96,8 +96,47 @@ describe("TweenJS", function () {
9696 } ) ;
9797 } ) ;
9898
99-
100-
99+ describe ( "Race Conditions" , function ( ) {
100+ it ( "don't run newly added tweens" , function ( done ) {
101+ var counter = 10 ;
102+ function addAnother ( ) {
103+ if ( counter < 0 ) { return ; }
104+ counter -- ;
105+ createjs . Tween . get ( ) . wait ( 10 ) . call ( addAnother ) ;
106+ }
107+ for ( var i = 0 ; i < counter ; i ++ ) {
108+ createjs . Tween . get ( ) . wait ( 10 ) . call ( addAnother ) ;
109+ }
110+ createjs . Tween . tick ( 1000 , false ) ;
111+ expect ( counter ) . toBe ( 0 ) ;
112+ done ( ) ;
113+
114+ } ) ;
115+
116+ it ( "don't run removed tweens" , function ( done ) {
117+ var counter = 1 ;
118+ function ended ( ) { counter -- ; }
119+ var tween = createjs . Tween . get ( ) . wait ( 10 ) . call ( ended ) ;
120+ var tween2 = createjs . Tween . get ( ) . wait ( 10 ) . call ( ended ) ;
121+ tween . call ( function ( ) { tween2 . paused = true ; } ) ;
122+ createjs . Tween . tick ( 1000 , false )
123+ expect ( counter ) . toBe ( 0 ) ;
124+ done ( ) ;
125+ } ) ;
126+
127+ it ( "do run tweens after a removed tween" , function ( done ) {
128+ var counter = 2 ;
129+ function ended ( ) { counter -- ; }
130+ var tween = createjs . Tween . get ( ) . wait ( 10 ) . call ( ended ) ;
131+ var tween2 = createjs . Tween . get ( ) . wait ( 10 ) . call ( ended ) ;
132+ var tween3 = createjs . Tween . get ( ) . wait ( 10 ) . call ( ended ) ;
133+ tween . call ( function ( ) { tween2 . paused = true ; } ) ;
134+ createjs . Tween . tick ( 1000 , false )
135+ expect ( counter ) . toBe ( 0 ) ;
136+ done ( ) ;
137+ } ) ;
138+ } ) ;
139+
101140 describe ( "Events" , function ( ) {
102141 it ( "change" , function ( done ) {
103142 var obj = { x : 0 } ;
0 commit comments