aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ScopeSpec.js21
-rw-r--r--test/widgetsSpec.js24
2 files changed, 45 insertions, 0 deletions
diff --git a/test/ScopeSpec.js b/test/ScopeSpec.js
index a3b6d9ae..d93400e5 100644
--- a/test/ScopeSpec.js
+++ b/test/ScopeSpec.js
@@ -157,4 +157,25 @@ describe('scope/model', function(){
}
});
});
+
+ describe('getterFn', function(){
+ it('should get chain', function(){
+ expect(getterFn('a.b')(undefined)).toEqual(undefined);
+ expect(getterFn('a.b')({})).toEqual(undefined);
+ expect(getterFn('a.b')({a:null})).toEqual(undefined);
+ expect(getterFn('a.b')({a:{}})).toEqual(undefined);
+ expect(getterFn('a.b')({a:{b:null}})).toEqual(null);
+ expect(getterFn('a.b')({a:{b:0}})).toEqual(0);
+ expect(getterFn('a.b')({a:{b:'abc'}})).toEqual('abc');
+ });
+
+ it('should map type method on top of expression', function(){
+ expect(getterFn('a.$filter')({a:[]})('')).toEqual([]);
+ });
+
+ it('should bind function this', function(){
+ expect(getterFn('a')({a:function($){return this.b + $;}, b:1})(2)).toEqual(3);
+
+ });
+ });
});
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js
index 17120682..40f52b8e 100644
--- a/test/widgetsSpec.js
+++ b/test/widgetsSpec.js
@@ -221,6 +221,30 @@ describe("widget", function(){
expect(element.attr('ng-validation-error')).toEqual('Required');
});
+ it('should allow conditions on ng-required', function() {
+ compile('<input type="text" name="price" ng-required="ineedz"/>');
+ scope.$set('ineedz', false);
+ scope.$eval();
+ expect(element.hasClass('ng-validation-error')).toBeFalsy();
+ expect(element.attr('ng-validation-error')).toBeFalsy();
+
+ scope.$set('price', 'xxx');
+ scope.$eval();
+ expect(element.hasClass('ng-validation-error')).toBeFalsy();
+ expect(element.attr('ng-validation-error')).toBeFalsy();
+
+ scope.$set('price', '');
+ scope.$set('ineedz', true);
+ scope.$eval();
+ expect(element.hasClass('ng-validation-error')).toBeTruthy();
+ expect(element.attr('ng-validation-error')).toEqual('Required');
+
+ element.val('abc');
+ element.trigger('keyup');
+ expect(element.hasClass('ng-validation-error')).toBeFalsy();
+ expect(element.attr('ng-validation-error')).toBeFalsy();
+ });
+
it("should process ng-required2", function() {
compile('<textarea name="name">Misko</textarea>');
expect(scope.$get('name')).toEqual("Misko");