diff options
Diffstat (limited to 'test')
| -rwxr-xr-x | test/ng/compileSpec.js | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 356b1796..a61d50f2 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -2504,7 +2504,7 @@ describe('$compile', function() { }); - it('should share isolate scope with replaced directives', function() { + it('should share isolate scope with replaced directives (template)', function() { var normalScope; var isolateScope; @@ -2540,7 +2540,7 @@ describe('$compile', function() { }); - it('should share isolate scope with replaced directives', function() { + it('should share isolate scope with replaced directives (templateUrl)', function() { var normalScope; var isolateScope; @@ -2577,6 +2577,41 @@ describe('$compile', function() { }); + it('should not get confused about where to use isolate scope when a replaced directive is used multiple times', + function() { + + module(function() { + directive('isolate', function() { + return { + replace: true, + scope: {}, + template: '<span scope-tester="replaced"><span scope-tester="inside"></span></span>' + }; + }); + directive('scopeTester', function(log) { + return { + link: function($scope, $element) { + log($element.attr('scope-tester') + '=' + ($scope.$root === $scope ? 'non-isolate' : 'isolate')); + } + } + }); + }); + + inject(function($compile, $rootScope, log) { + element = $compile('<div>' + + '<div isolate scope-tester="outside"></div>' + + '<span scope-tester="sibling"></span>' + + '</div>')($rootScope); + + $rootScope.$digest(); + expect(log).toEqual('inside=isolate; ' + + 'outside replaced=non-isolate; ' + // outside + 'outside replaced=isolate; ' + // replaced + 'sibling=non-isolate') + }); + }); + + it('should require controller of a non-isolate directive from an isolate directive on the ' + 'same element', function() { var NonIsolateController = function() {}; |
