diff options
Diffstat (limited to 'test/ng/compileSpec.js')
| -rwxr-xr-x | test/ng/compileSpec.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index c1dedd4a..5dfad4be 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -3268,4 +3268,55 @@ describe('$compile', function() { expect(spans.eq(3)).toBeHidden(); })); }); + + describe('$animate animation hooks', function() { + + beforeEach(module('mock.animate')); + + it('should automatically fire the addClass and removeClass animation hooks', + inject(function($compile, $animate, $rootScope) { + + var data, element = jqLite('<div class="{{val1}} {{val2}} fire"></div>'); + $compile(element)($rootScope); + + $rootScope.$digest(); + data = $animate.flushNext('removeClass'); + + expect(element.hasClass('fire')).toBe(true); + + $rootScope.val1 = 'ice'; + $rootScope.val2 = 'rice'; + $rootScope.$digest(); + + data = $animate.flushNext('addClass'); + expect(data.params[1]).toBe('ice rice'); + + expect(element.hasClass('ice')).toBe(true); + expect(element.hasClass('rice')).toBe(true); + expect(element.hasClass('fire')).toBe(true); + + $rootScope.val2 = 'dice'; + $rootScope.$digest(); + + data = $animate.flushNext('removeClass'); + expect(data.params[1]).toBe('rice'); + data = $animate.flushNext('addClass'); + expect(data.params[1]).toBe('dice'); + + expect(element.hasClass('ice')).toBe(true); + expect(element.hasClass('dice')).toBe(true); + expect(element.hasClass('fire')).toBe(true); + + $rootScope.val1 = ''; + $rootScope.val2 = ''; + $rootScope.$digest(); + + data = $animate.flushNext('removeClass'); + expect(data.params[1]).toBe('ice dice'); + + expect(element.hasClass('ice')).toBe(false); + expect(element.hasClass('dice')).toBe(false); + expect(element.hasClass('fire')).toBe(true); + })); + }); }); |
