diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/ScopeSpec.js | 21 | ||||
| -rw-r--r-- | test/widgetsSpec.js | 24 |
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"); |
