@@ -2316,6 +2316,53 @@ describe('Scope', function() {
2316
2316
} ) ) ;
2317
2317
2318
2318
2319
+ it ( 'should call next listener when removing current' , inject ( function ( $rootScope ) {
2320
+ var remove1 = $rootScope . $on ( 'abc' , function ( ) { remove1 ( ) } ) ;
2321
+
2322
+ var listener2 = jasmine . createSpy ( ) ;
2323
+ var remove2 = $rootScope . $on ( 'abc' , listener2 ) ;
2324
+
2325
+ var listener3 = jasmine . createSpy ( ) ;
2326
+ var remove3 = $rootScope . $on ( 'abc' , listener3 ) ;
2327
+
2328
+ $rootScope . $broadcast ( 'abc' ) ;
2329
+ expect ( listener2 ) . toHaveBeenCalled ( ) ;
2330
+ expect ( listener3 ) . toHaveBeenCalled ( ) ;
2331
+ } ) ) ;
2332
+
2333
+
2334
+ it ( 'should call all listeners when removing previous' , inject ( function ( $rootScope ) {
2335
+ var listener1 = jasmine . createSpy ( ) ;
2336
+ var remove1 = $rootScope . $on ( 'abc' , listener1 ) ;
2337
+
2338
+ var listener2 = jasmine . createSpy ( ) . and . callFake ( remove1 ) ;
2339
+ var remove2 = $rootScope . $on ( 'abc' , listener2 ) ;
2340
+
2341
+ var listener3 = jasmine . createSpy ( ) ;
2342
+ var remove3 = $rootScope . $on ( 'abc' , listener3 ) ;
2343
+
2344
+ $rootScope . $broadcast ( 'abc' ) ;
2345
+ expect ( listener1 ) . toHaveBeenCalled ( ) ;
2346
+ expect ( listener2 ) . toHaveBeenCalled ( ) ;
2347
+ expect ( listener3 ) . toHaveBeenCalled ( ) ;
2348
+ } ) ) ;
2349
+
2350
+
2351
+ it ( 'should not call listener when removed by previous' , inject ( function ( $rootScope ) {
2352
+ var listener1 = jasmine . createSpy ( ) ;
2353
+ var remove1 = $rootScope . $on ( 'abc' , listener1 ) ;
2354
+
2355
+ var remove2 = $rootScope . $on ( 'abc' , function ( ) { remove3 ( ) ; } ) ;
2356
+
2357
+ var listener3 = jasmine . createSpy ( ) ;
2358
+ var remove3 = $rootScope . $on ( 'abc' , listener3 ) ;
2359
+
2360
+ $rootScope . $broadcast ( 'abc' ) ;
2361
+ expect ( listener1 ) . toHaveBeenCalled ( ) ;
2362
+ expect ( listener3 ) . not . toHaveBeenCalled ( ) ;
2363
+ } ) ) ;
2364
+
2365
+
2319
2366
it ( 'should decrement ancestor $$listenerCount entries' , inject ( function ( $rootScope ) {
2320
2367
var child1 = $rootScope . $new ( ) ,
2321
2368
child2 = child1 . $new ( ) ,
0 commit comments