diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/animatorSpec.js | 44 | ||||
| -rw-r--r-- | test/ng/directive/ngIncludeSpec.js | 3 | ||||
| -rw-r--r-- | test/ng/directive/ngRepeatSpec.js | 3 | ||||
| -rw-r--r-- | test/ng/directive/ngShowHideSpec.js | 23 | ||||
| -rw-r--r-- | test/ng/directive/ngSwitchSpec.js | 3 | ||||
| -rw-r--r-- | test/ng/directive/ngViewSpec.js | 10 | ||||
| -rw-r--r-- | test/testabilityPatch.js | 4 |
7 files changed, 66 insertions, 24 deletions
diff --git a/test/ng/animatorSpec.js b/test/ng/animatorSpec.js index 7cf785e0..4d549ee3 100644 --- a/test/ng/animatorSpec.js +++ b/test/ng/animatorSpec.js @@ -2,11 +2,12 @@ describe("$animator", function() { - var body, element; + var body, element, $rootElement; function html(html) { - body.html(html); - element = body.children().eq(0); + body.append($rootElement); + $rootElement.html(html); + element = $rootElement.children().eq(0); return element; } @@ -21,7 +22,18 @@ describe("$animator", function() { describe("enable / disable", function() { - it("should disable and enable the animations", inject(function($animator) { + beforeEach(function() { + module(function($animationProvider, $provide) { + $provide.value('$window', angular.mock.createMockWindow()); + }); + }); + + it("should disable and enable the animations", inject(function($animator, $rootScope, $window) { + expect($animator.enabled()).toBe(false); + + $rootScope.$digest(); + $window.setTimeout.expect(0).process(); + expect($animator.enabled()).toBe(true); expect($animator.enabled(0)).toBe(false); @@ -40,9 +52,10 @@ describe("$animator", function() { module(function($animationProvider, $provide) { $provide.value('$window', window = angular.mock.createMockWindow()); }) - inject(function($animator, $compile, $rootScope) { + inject(function($animator, $compile, $rootScope, _$rootElement_) { animator = $animator($rootScope, {}); element = $compile('<div></div>')($rootScope); + $rootElement = _$rootElement_; }) }); @@ -131,7 +144,10 @@ describe("$animator", function() { animator = $animator($rootScope, { ngAnimate : '{enter: \'custom\'}' }); + $rootScope.$digest(); // re-enable the animations; + window.setTimeout.expect(0).process(); + expect(element.contents().length).toBe(0); animator.enter(child, element); window.setTimeout.expect(1).process(); @@ -141,7 +157,10 @@ describe("$animator", function() { animator = $animator($rootScope, { ngAnimate : '{leave: \'custom\'}' }); - $rootScope.$digest(); + + $rootScope.$digest(); // re-enable the animations; + window.setTimeout.expect(0).process(); + element.append(child); expect(element.contents().length).toBe(1); animator.leave(child, element); @@ -150,6 +169,7 @@ describe("$animator", function() { })); it("should animate the move animation event", inject(function($animator, $compile, $rootScope) { + $animator.enabled(true); animator = $animator($rootScope, { ngAnimate : '{move: \'custom\'}' }); @@ -165,6 +185,7 @@ describe("$animator", function() { })); it("should animate the show animation event", inject(function($animator, $rootScope) { + $animator.enabled(true); animator = $animator($rootScope, { ngAnimate : '{show: \'custom\'}' }); @@ -178,6 +199,7 @@ describe("$animator", function() { })); it("should animate the hide animation event", inject(function($animator, $rootScope) { + $animator.enabled(true); animator = $animator($rootScope, { ngAnimate : '{hide: \'custom\'}' }); @@ -192,6 +214,7 @@ describe("$animator", function() { it("should assign the ngAnimate string to all events if a string is given", inject(function($animator, $sniffer, $rootScope) { + $animator.enabled(true); if (!$sniffer.supportsTransitions) return; animator = $animator($rootScope, { ngAnimate : '"custom"' @@ -237,6 +260,7 @@ describe("$animator", function() { })); it("should run polyfillSetup and return the memento", inject(function($animator, $rootScope) { + $animator.enabled(true); animator = $animator($rootScope, { ngAnimate : '{show: \'setup-memo\'}' }); @@ -248,6 +272,8 @@ describe("$animator", function() { })); it("should not run if animations are disabled", inject(function($animator, $rootScope) { + $animator.enabled(true); + $rootScope.$digest(); // clear initial animation suppression $animator.enabled(false); animator = $animator($rootScope, { @@ -274,8 +300,10 @@ describe("$animator", function() { beforeEach(function() { module(function($animationProvider, $provide) { $provide.value('$window', window = angular.mock.createMockWindow()); - return function($sniffer) { + return function($sniffer, _$rootElement_, $animator) { vendorPrefix = '-' + $sniffer.vendorPrefix + '-'; + $rootElement = _$rootElement_; + $animator.enabled(true); }; }) }); @@ -288,8 +316,6 @@ describe("$animator", function() { ngAnimate : '{show: \'inline-show\'}' }); - $rootScope.$digest(); // skip no-animate on first digest. - element.css('display','none'); expect(element.css('display')).toBe('none'); animator.show(element); diff --git a/test/ng/directive/ngIncludeSpec.js b/test/ng/directive/ngIncludeSpec.js index 4798bacc..9b5319f1 100644 --- a/test/ng/directive/ngIncludeSpec.js +++ b/test/ng/directive/ngIncludeSpec.js @@ -303,8 +303,9 @@ describe('ngInclude ngAnimate', function() { beforeEach(module(function($animationProvider, $provide) { $provide.value('$window', window = angular.mock.createMockWindow()); - return function($sniffer) { + return function($sniffer, $animator) { vendorPrefix = '-' + $sniffer.vendorPrefix + '-'; + $animator.enabled(true); }; })); diff --git a/test/ng/directive/ngRepeatSpec.js b/test/ng/directive/ngRepeatSpec.js index 7376b670..4372f57a 100644 --- a/test/ng/directive/ngRepeatSpec.js +++ b/test/ng/directive/ngRepeatSpec.js @@ -554,8 +554,9 @@ describe('ngRepeat ngAnimate', function() { beforeEach(module(function($animationProvider, $provide) { $provide.value('$window', window = angular.mock.createMockWindow()); - return function($sniffer) { + return function($sniffer, $animator) { vendorPrefix = '-' + $sniffer.vendorPrefix + '-'; + $animator.enabled(true); }; })); diff --git a/test/ng/directive/ngShowHideSpec.js b/test/ng/directive/ngShowHideSpec.js index 17c47255..ecc5b2dc 100644 --- a/test/ng/directive/ngShowHideSpec.js +++ b/test/ng/directive/ngShowHideSpec.js @@ -45,11 +45,12 @@ describe('ngShow / ngHide', function() { describe('ngShow / ngHide - ngAnimate', function() { var window; var vendorPrefix; - var body, element; + var body, element, $rootElement; function html(html) { - body.html(html); - element = body.children().eq(0); + body.append($rootElement); + $rootElement.html(html); + element = $rootElement.children().eq(0); return element; } @@ -61,12 +62,15 @@ describe('ngShow / ngHide - ngAnimate', function() { afterEach(function(){ dealoc(body); dealoc(element); + body.removeAttr('ng-animation-running'); }); beforeEach(module(function($animationProvider, $provide) { $provide.value('$window', window = angular.mock.createMockWindow()); - return function($sniffer) { + return function($sniffer, _$rootElement_, $animator) { vendorPrefix = '-' + $sniffer.vendorPrefix + '-'; + $rootElement = _$rootElement_; + $animator.enabled(true); }; })); @@ -111,11 +115,14 @@ describe('ngShow / ngHide - ngAnimate', function() { expect(element.attr('class')).not.toContain('custom-hide-setup'); })); - it('should skip the initial show state on the first digest', function() { + it('should skip animation if parent animation running', function() { var fired = false; - inject(function($compile, $rootScope, $sniffer) { + inject(function($animator, $compile, $rootScope, $sniffer) { + $animator.enabled(true); + $rootScope.$digest(); $rootScope.val = true; var element = $compile(html('<div ng-show="val" ng-animate="\'animation\'">123</div>'))($rootScope); + $rootElement.controller('ngAnimate').running = true; element.css('display','none'); expect(element.css('display')).toBe('none'); @@ -123,6 +130,7 @@ describe('ngShow / ngHide - ngAnimate', function() { expect(element[0].style.display).toBe(''); expect(fired).toBe(false); + $rootElement.controller('ngAnimate').running = false; $rootScope.val = false; $rootScope.$digest(); if ($sniffer.supportsTransitions) { @@ -178,7 +186,7 @@ describe('ngShow / ngHide - ngAnimate', function() { expect(element.attr('class')).not.toContain('custom-show-setup'); })); - it('should skip the initial hide state on the first digest', function() { + it('should disable animation when parent animation is running', function() { var fired = false; module(function($animationProvider) { $animationProvider.register('destructive-animation', function() { @@ -193,6 +201,7 @@ describe('ngShow / ngHide - ngAnimate', function() { inject(function($compile, $rootScope) { $rootScope.val = false; var element = $compile(html('<div ng-hide="val" ng-animate="{ hide:\'destructive-animation\' }">123</div>'))($rootScope); + $rootElement.controller('ngAnimate').running = true; element.css('display','block'); expect(element.css('display')).toBe('block'); diff --git a/test/ng/directive/ngSwitchSpec.js b/test/ng/directive/ngSwitchSpec.js index 5f0a2bb3..ee51e194 100644 --- a/test/ng/directive/ngSwitchSpec.js +++ b/test/ng/directive/ngSwitchSpec.js @@ -236,8 +236,9 @@ describe('ngSwitch ngAnimate', function() { beforeEach(module(function($animationProvider, $provide) { $provide.value('$window', window = angular.mock.createMockWindow()); - return function($sniffer) { + return function($sniffer, $animator) { vendorPrefix = '-' + $sniffer.vendorPrefix + '-'; + $animator.enabled(true); }; })); diff --git a/test/ng/directive/ngViewSpec.js b/test/ng/directive/ngViewSpec.js index c0348568..e9d53110 100644 --- a/test/ng/directive/ngViewSpec.js +++ b/test/ng/directive/ngViewSpec.js @@ -4,8 +4,9 @@ describe('ngView', function() { var element; beforeEach(module(function() { - return function($rootScope, $compile) { + return function($rootScope, $compile, $animator) { element = $compile('<ng:view onload="load()"></ng:view>')($rootScope); + $animator.enabled(true); }; })); @@ -510,8 +511,9 @@ describe('ngAnimate', function() { beforeEach(module(function($provide, $routeProvider) { $provide.value('$window', window = angular.mock.createMockWindow()); $routeProvider.when('/foo', {controller: noop, templateUrl: '/foo.html'}); - return function($templateCache) { + return function($templateCache, $animator) { $templateCache.put('/foo.html', [200, '<div>data</div>', {}]); + $animator.enabled(true); } })); @@ -579,8 +581,8 @@ describe('ngAnimate', function() { element = $compile(html( '<div ' + 'ng-view ' + - 'ng-animate="{enter: \'customEnter\', animateFirst: false}">' + - '</div>' + 'ng-animate="{enter: \'customEnter\'}">' + + '</div>' ))($rootScope); $location.path('/foo'); diff --git a/test/testabilityPatch.js b/test/testabilityPatch.js index cef00993..a4d4b46f 100644 --- a/test/testabilityPatch.js +++ b/test/testabilityPatch.js @@ -24,15 +24,17 @@ beforeEach(function() { // reset to jQuery or default to us. bindJQuery(); - jqLite(document.body).html(''); + jqLite(document.body).html('').removeData(); }); afterEach(function() { if (this.$injector) { var $rootScope = this.$injector.get('$rootScope'); + var $rootElement = this.$injector.get('$rootElement'); var $log = this.$injector.get('$log'); // release the injector dealoc($rootScope); + dealoc($rootElement); // check $log mock $log.assertEmpty && $log.assertEmpty(); |
