diff options
| -rw-r--r-- | test/ng/directive/ngNonBindableSpec.js | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/test/ng/directive/ngNonBindableSpec.js b/test/ng/directive/ngNonBindableSpec.js index ed9ea6ab..87ba89d2 100644 --- a/test/ng/directive/ngNonBindableSpec.js +++ b/test/ng/directive/ngNonBindableSpec.js @@ -13,9 +13,27 @@ describe('ngNonBindable', function() { it('should prevent compilation of the owning element and its children', inject(function($rootScope, $compile) { element = $compile('<div ng-non-bindable text="{{name}}"><span ng-bind="name"></span></div>')($rootScope); - $rootScope.name = 'misko'; + element = $compile('<div>' + + ' <span id="s1">{{a}}</span>' + + ' <span id="s2" ng-bind="b"></span>' + + ' <div foo="{{a}}" ng-non-bindable>' + + ' <span ng-bind="a"></span>{{b}}' + + ' </div>' + + ' <span id="s3">{{a}}</span>' + + ' <span id="s4" ng-bind="b"></span>' + + '</div>')($rootScope); + $rootScope.a = "one"; + $rootScope.b = "two"; $rootScope.$digest(); - expect(element.text()).toEqual(''); - expect(element.attr('text')).toEqual('{{name}}'); + // Bindings not contained by ng-non-bindable should resolve. + var spans = element.find("span"); + expect(spans.eq(0).text()).toEqual('one'); + expect(spans.eq(1).text()).toEqual('two'); + expect(spans.eq(3).text()).toEqual('one'); + expect(spans.eq(4).text()).toEqual('two'); + // Bindings contained by ng-non-bindable should be left alone. + var nonBindableDiv = element.find("div"); + expect(nonBindableDiv.attr('foo')).toEqual('{{a}}'); + expect(trim(nonBindableDiv.text())).toEqual('{{b}}'); })); }); |
