From c53d4c94300c97dd005f9a0cbdbfa387294b9026 Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Mon, 13 May 2013 17:37:52 -0400 Subject: feat($animator): provide support for custom animation events --- test/ng/animatorSpec.js | 70 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'test') diff --git a/test/ng/animatorSpec.js b/test/ng/animatorSpec.js index c9d1227d..d4d7c0ec 100644 --- a/test/ng/animatorSpec.js +++ b/test/ng/animatorSpec.js @@ -352,6 +352,18 @@ describe("$animator", function() { expect(element.hasClass('animation-cancelled')).toBe(true); })); + + it("should properly animate custom animation events", inject(function($animator, $rootScope) { + $animator.enabled(true); + animator = $animator($rootScope, { + ngAnimate : '{custom: \'setup-memo\'}' + }); + + element.text('123'); + animator.animate('custom',element); + window.setTimeout.expect(1).process(); + expect(element.text()).toBe('memento'); + })); }); describe("with CSS3", function() { @@ -368,6 +380,64 @@ describe("$animator", function() { }) }); + it("should properly animate custom animations for specific animation events", + inject(function($animator, $rootScope, $compile, $sniffer) { + + $animator.enabled(true); + var element = $compile(html('
'))($rootScope); + + animator = $animator($rootScope, { + ngAnimate : '{custom: \'special\'}' + }); + + animator.animate('custom',element); + if($sniffer.transitions) { + expect(element.hasClass('special')).toBe(true); + window.setTimeout.expect(1).process(); + expect(element.hasClass('special-active')).toBe(true); + } + else { + expect(window.setTimeout.queue.length).toBe(0); + } + })); + + it("should not animate custom animations if not specifically defined", + inject(function($animator, $rootScope, $compile) { + + $animator.enabled(true); + var element = $compile(html(''))($rootScope); + + animator = $animator($rootScope, { + ngAnimate : '{custom: \'special\'}' + }); + + expect(window.setTimeout.queue.length).toBe(0); + animator.animate('custom1',element); + expect(element.hasClass('special')).toBe(false); + expect(window.setTimeout.queue.length).toBe(0); + })); + + it("should properly animate custom animations for general animation events", + inject(function($animator, $rootScope, $compile, $sniffer) { + + $animator.enabled(true); + var element = $compile(html(''))($rootScope); + + animator = $animator($rootScope, { + ngAnimate : "'special'" + }); + + animator.animate('custom',element); + if($sniffer.transitions) { + expect(element.hasClass('special-custom')).toBe(true); + window.setTimeout.expect(1).process(); + expect(element.hasClass('special-custom-active')).toBe(true); + } + else { + expect(window.setTimeout.queue.length).toBe(0); + } + })); + describe("Animations", function() { it("should properly detect and make use of CSS Animations", inject(function($animator, $rootScope, $compile, $sniffer) { -- cgit v1.2.3