diff options
| author | Vojta Jina | 2012-03-23 13:04:52 -0700 |
|---|---|---|
| committer | Vojta Jina | 2012-03-26 21:14:09 -0700 |
| commit | 09e175f02cca0f4a295fd0c9b980cd8f432e722b (patch) | |
| tree | 49796ba88d2db7a6e621155e9849109206f744cd /test | |
| parent | 5c5b1183c82a28841b3e1e246ee341262e91d743 (diff) | |
| download | angular.js-09e175f02cca0f4a295fd0c9b980cd8f432e722b.tar.bz2 | |
feat(ngValue): allow radio inputs to have non string values
Closes #816
Diffstat (limited to 'test')
| -rw-r--r-- | test/directive/inputSpec.js | 38 | ||||
| -rw-r--r-- | test/service/compilerSpec.js | 12 |
2 files changed, 48 insertions, 2 deletions
diff --git a/test/directive/inputSpec.js b/test/directive/inputSpec.js index 0b848df1..8d0e44b3 100644 --- a/test/directive/inputSpec.js +++ b/test/directive/inputSpec.js @@ -1078,4 +1078,42 @@ describe('input', function() { expect(scope.value).toBe('value3'); })); }); + + + describe('ng-value', function() { + + it('should evaluate and set constant expressions', function() { + compileInput('<input type="radio" ng-model="selected" ng-value="true">' + + '<input type="radio" ng-model="selected" ng-value="false">' + + '<input type="radio" ng-model="selected" ng-value="1">'); + scope.$digest(); + + browserTrigger(inputElm[0], 'click'); + expect(scope.selected).toBe(true); + + browserTrigger(inputElm[1], 'click'); + expect(scope.selected).toBe(false); + + browserTrigger(inputElm[2], 'click'); + expect(scope.selected).toBe(1); + }); + + + it('should watch the expression', function() { + compileInput('<input type="radio" ng-model="selected" ng-value="value">'); + + scope.$apply(function() { + scope.selected = scope.value = {some: 'object'}; + }); + expect(inputElm[0].checked).toBe(true); + + scope.$apply(function() { + scope.value = {some: 'other'}; + }); + expect(inputElm[0].checked).toBe(false); + + browserTrigger(inputElm, 'click'); + expect(scope.selected).toBe(scope.value); + }); + }); }); diff --git a/test/service/compilerSpec.js b/test/service/compilerSpec.js index d7ecdafc..698fc23e 100644 --- a/test/service/compilerSpec.js +++ b/test/service/compilerSpec.js @@ -1401,7 +1401,7 @@ describe('$compile', function() { it('should allow overriding of attribute name and remember the name', function() { - attr.$set('ngOther', '123', 'other'); + attr.$set('ngOther', '123', true, 'other'); expect(element.attr('other')).toEqual('123'); expect(attr.ngOther).toEqual('123'); @@ -1437,7 +1437,15 @@ describe('$compile', function() { attr.$set('ngMyAttr', 'value'); attr.$set('ngMyAttr', null); expect(element.attr('ng-my-attr')).toBe(undefined); - }) + }); + + + it('should not set DOM element attr if writeAttr false', function() { + attr.$set('test', 'value', false); + + expect(element.attr('test')).toBeUndefined(); + expect(attr.test).toBe('value'); + }); }); }); |
