From f288b8f010468237d238acf51ea3d8108138207a Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Thu, 13 Feb 2014 14:59:25 -0500 Subject: pref($animate): group all asynchronous requests into one shared buffer --- test/ngAnimate/animateSpec.js | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) (limited to 'test') diff --git a/test/ngAnimate/animateSpec.js b/test/ngAnimate/animateSpec.js index d626d60e..41115e42 100644 --- a/test/ngAnimate/animateSpec.js +++ b/test/ngAnimate/animateSpec.js @@ -2563,8 +2563,9 @@ describe("ngAnimate", function() { }); - it("should disable all child animations on structural animations until the post animation timeout has passed", function() { - var intercepted; + it("should disable all child animations on structural animations until the post animation" + + "timeout has passed as well as all structural animations", function() { + var intercepted, continueAnimation; module(function($animateProvider) { $animateProvider.register('.animated', function() { return { @@ -2578,7 +2579,10 @@ describe("ngAnimate", function() { function ani(type) { return function(element, className, done) { intercepted = type; - (done || className)(); + continueAnimation = function() { + continueAnimation = angular.noop; + (done || className)(); + } } } }); @@ -2595,26 +2599,45 @@ describe("ngAnimate", function() { var child2 = $compile('
...
')($rootScope); var container = $compile('
...
')($rootScope); - jqLite($document[0].body).append($rootElement); + var body = angular.element($document[0].body); + body.append($rootElement); $rootElement.append(container); element.append(child1); element.append(child2); - $animate.move(element, null, container); + $animate.enter(element, container); $rootScope.$digest(); - expect(intercepted).toBe('move'); + expect(intercepted).toBe('enter'); + continueAnimation(); $animate.addClass(child1, 'test'); expect(child1.hasClass('test')).toBe(true); - expect(intercepted).toBe('move'); + expect(element.children().length).toBe(2); + + expect(intercepted).toBe('enter'); $animate.leave(child1); $rootScope.$digest(); + expect(element.children().length).toBe(1); + + expect(intercepted).toBe('enter'); + + $animate.move(element, null, container); + $rootScope.$digest(); + expect(intercepted).toBe('move'); - //reflow has passed + //flush the enter reflow + $timeout.flush(); + + $animate.addClass(child2, 'testing'); + expect(intercepted).toBe('move'); + + continueAnimation(); + + //flush the move reflow $timeout.flush(); $animate.leave(child2); -- cgit v1.2.3