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}}');    }));  });  | 
