diff options
| author | Misko Hevery | 2013-05-01 20:01:27 -0400 |
|---|---|---|
| committer | Misko Hevery | 2013-05-02 15:22:16 -0400 |
| commit | 9956baedd73d5e8d0edd04c9eed368bd3988444b (patch) | |
| tree | 5c37c2b81fea497aff4075db27f4a3cd3345fbc1 /test | |
| parent | 1d8e11ddfbd6b08ff02df4331f6df125f49da3dc (diff) | |
| download | angular.js-9956baedd73d5e8d0edd04c9eed368bd3988444b.tar.bz2 | |
fix(ngView): accidentally compiling leaving content
closes: #2304
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/directive/ngViewSpec.js | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/test/ng/directive/ngViewSpec.js b/test/ng/directive/ngViewSpec.js index 579fd0a8..c31c2449 100644 --- a/test/ng/directive/ngViewSpec.js +++ b/test/ng/directive/ngViewSpec.js @@ -3,7 +3,8 @@ describe('ngView', function() { var element; - beforeEach(module(function() { + beforeEach(module(function($provide) { + $provide.value('$window', angular.mock.createMockWindow()); return function($rootScope, $compile, $animator) { element = $compile('<ng:view onload="load()"></ng:view>')($rootScope); $animator.enabled(true); @@ -621,5 +622,46 @@ describe('ngView', function() { } })); + + it('should not double compile when route changes', function() { + module(function($routeProvider, $animationProvider, $provide) { + $routeProvider.when('/foo', {template: '<div ng-repeat="i in [1,2]">{{i}}</div>'}); + $routeProvider.when('/bar', {template: '<div ng-repeat="i in [3,4]">{{i}}</div>'}); + $animationProvider.register('my-animation-leave', function() { + return { + start: function(element, done) { + done(); + } + }; + }); + }); + + inject(function($rootScope, $compile, $location, $route, $window, $rootElement, $sniffer) { + element = $compile(html('<ng:view onload="load()" ng-animate="\'my-animation\'"></ng:view>'))($rootScope); + + $location.path('/foo'); + $rootScope.$digest(); + if ($sniffer.supportsTransitions) { + $window.setTimeout.expect(1).process(); + $window.setTimeout.expect(0).process(); + } + expect(element.text()).toEqual('12'); + + $location.path('/bar'); + $rootScope.$digest(); + expect(n(element.text())).toEqual('1234'); + if ($sniffer.supportsTransitions) { + $window.setTimeout.expect(1).process(); + $window.setTimeout.expect(1).process(); + } else { + $window.setTimeout.expect(1).process(); + } + expect(element.text()).toEqual('34'); + + function n(text) { + return text.replace(/\r\n/m, '').replace(/\r\n/m, ''); + } + }); + }); }); -});
\ No newline at end of file +}); |
