diff options
| author | Igor Minar | 2012-11-26 20:17:11 +0100 |
|---|---|---|
| committer | Igor Minar | 2012-11-26 20:38:51 +0100 |
| commit | ff4b3e20c1bcf8f4c76114f5537c8857393c9b2b (patch) | |
| tree | 0defb59998761da9ab5b0cc79915a62f65d5685e | |
| parent | 269fb43b3667c74b35980798fd54937d65b7b7de (diff) | |
| download | angular.js-ff4b3e20c1bcf8f4c76114f5537c8857393c9b2b.tar.bz2 | |
test(ngRepeat): add test for issue #1076
| -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); })); |
