From 9956baedd73d5e8d0edd04c9eed368bd3988444b Mon Sep 17 00:00:00 2001
From: Misko Hevery
Date: Wed, 1 May 2013 20:01:27 -0400
Subject: fix(ngView): accidentally compiling leaving content
closes: #2304
---
test/ng/directive/ngViewSpec.js | 46 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 44 insertions(+), 2 deletions(-)
(limited to 'test')
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('')($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: '
{{i}}
'});
+ $routeProvider.when('/bar', {template: '{{i}}
'});
+ $animationProvider.register('my-animation-leave', function() {
+ return {
+ start: function(element, done) {
+ done();
+ }
+ };
+ });
+ });
+
+ inject(function($rootScope, $compile, $location, $route, $window, $rootElement, $sniffer) {
+ element = $compile(html(''))($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
+});
--
cgit v1.2.3