From f2dfa8916f8ed855d55187f5400c4c2566ce9a1b Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Thu, 1 Aug 2013 20:13:36 -0400 Subject: feat($compile): support compile animation hooks classes --- test/ng/compileSpec.js | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'test/ng/compileSpec.js') 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('
'); + $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); + })); + }); }); -- cgit v1.2.3