From 09e175f02cca0f4a295fd0c9b980cd8f432e722b Mon Sep 17 00:00:00 2001
From: Vojta Jina
Date: Fri, 23 Mar 2012 13:04:52 -0700
Subject: feat(ngValue): allow radio inputs to have non string values
Closes #816
---
test/directive/inputSpec.js | 38 ++++++++++++++++++++++++++++++++++++++
test/service/compilerSpec.js | 12 ++++++++++--
2 files changed, 48 insertions(+), 2 deletions(-)
(limited to 'test')
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('' +
+ '' +
+ '');
+ 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('');
+
+ 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');
+ });
});
});
--
cgit v1.2.3