diff options
| author | Igor Minar | 2012-11-26 20:17:11 +0100 | 
|---|---|---|
| committer | Igor Minar | 2012-11-26 20:17:11 +0100 | 
| commit | e7d37ee45ac48b0ff2a3d43f7236d316be6c241e (patch) | |
| tree | 414833c70c1388442a7d99828d81552f721757bf /test/ng/directive | |
| parent | 733a97adf87bf8f7ec6be22b37c4676cf7b5fc2b (diff) | |
| download | angular.js-e7d37ee45ac48b0ff2a3d43f7236d316be6c241e.tar.bz2 | |
test(ngRepeat): add test for issue #1076
Diffstat (limited to 'test/ng/directive')
| -rw-r--r-- | test/ng/directive/ngRepeatSpec.js | 64 | 
1 files changed, 38 insertions, 26 deletions
diff --git a/test/ng/directive/ngRepeatSpec.js b/test/ng/directive/ngRepeatSpec.js index 83f23cec..49c009de 100644 --- a/test/ng/directive/ngRepeatSpec.js +++ b/test/ng/directive/ngRepeatSpec.js @@ -37,10 +37,10 @@ describe('ngRepeat', function() {    })); -  it('should ngRepeat over array of primitive correctly', inject(function($rootScope, $compile) { +  it('should ngRepeat over array of primitives', inject(function($rootScope, $compile) {      element = $compile(        '<ul>' + -        '<li ng-repeat="item in items" ng-init="suffix = \';\'" ng-bind="item + suffix"></li>' + +        '<li ng-repeat="item in items">{{item}};</li>' +        '</ul>')($rootScope);      Array.prototype.extraProperty = "should be ignored"; @@ -91,13 +91,13 @@ describe('ngRepeat', function() {      $rootScope.$digest();      expect(element.find('li').length).toEqual(1);      expect(element.text()).toEqual('test;'); -	 +      $rootScope.items = ['same', 'value'];      $rootScope.$digest();      expect(element.find('li').length).toEqual(2);      expect(element.text()).toEqual('same;value;'); -	 -	// number + +    // number      $rootScope.items = [12, 12, 12];      $rootScope.$digest();      expect(element.find('li').length).toEqual(3); @@ -130,36 +130,48 @@ describe('ngRepeat', function() {      expect(element.text()).toEqual('misko:swe;shyam:set;');    })); -   -  it('should ngRepeat over object with primitive value correctly', inject(function($rootScope, $compile) { + +  it('should ngRepeat over object with changing primitive value', +      inject(function($rootScope, $compile) { +      element = $compile(        '<ul>' + -        '<li ng-repeat="(key, value) in items" ng-bind="key + \':\' + value + \';\' "></li>' + +        '<li ng-repeat="(key, value) in items">' + +          '{{key}}:{{value}};' + +          '<input type="checkbox" ng-model="items[key]">' + +        '</li>' +        '</ul>')($rootScope); -    $rootScope.items = {misko:'true', shyam:'true', zhenbo: 'true'}; + +    $rootScope.items = {misko: true, shyam: true, zhenbo:true};      $rootScope.$digest();      expect(element.find('li').length).toEqual(3);      expect(element.text()).toEqual('misko:true;shyam:true;zhenbo:true;'); -	 -    $rootScope.items = {misko:'false', shyam:'true', zhenbo: 'true'}; -    $rootScope.$digest(); -    expect(element.find('li').length).toEqual(3); + +    browserTrigger(element.find('input').eq(0), 'click'); +      expect(element.text()).toEqual('misko:false;shyam:true;zhenbo:true;'); -	 -    $rootScope.items = {misko:'false', shyam:'false', zhenbo: 'false'}; -    $rootScope.$digest(); -    expect(element.find('li').length).toEqual(3); -    expect(element.text()).toEqual('misko:false;shyam:false;zhenbo:false;'); -	 -    $rootScope.items = {misko:'true'}; -    $rootScope.$digest(); -    expect(element.find('li').length).toEqual(1); -    expect(element.text()).toEqual('misko:true;'); +    expect(element.find('input')[0].checked).toBe(false); +    expect(element.find('input')[1].checked).toBe(true); +    expect(element.find('input')[2].checked).toBe(true); -    $rootScope.items = {shyam:'true', zhenbo: 'false'}; +    browserTrigger(element.find('input').eq(0), 'click'); +    expect(element.text()).toEqual('misko:true;shyam:true;zhenbo:true;'); +    expect(element.find('input')[0].checked).toBe(true); +    expect(element.find('input')[1].checked).toBe(true); +    expect(element.find('input')[2].checked).toBe(true); + +    browserTrigger(element.find('input').eq(1), 'click'); +    expect(element.text()).toEqual('misko:true;shyam:false;zhenbo:true;'); +    expect(element.find('input')[0].checked).toBe(true); +    expect(element.find('input')[1].checked).toBe(false); +    expect(element.find('input')[2].checked).toBe(true); + +    $rootScope.items = {misko: false, shyam: true, zhenbo: true};      $rootScope.$digest(); -    expect(element.find('li').length).toEqual(2); -    expect(element.text()).toEqual('shyam:true;zhenbo:false;'); +    expect(element.text()).toEqual('misko:false;shyam:true;zhenbo:true;'); +    expect(element.find('input')[0].checked).toBe(false); +    expect(element.find('input')[1].checked).toBe(true); +    expect(element.find('input')[2].checked).toBe(true);    }));  | 
