diff options
| author | Dhruv Manek | 2011-09-30 16:55:01 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-10-07 16:01:09 -0700 |
| commit | e1ecc34edd19b95d51fbcb1351b04b9876c974c1 (patch) | |
| tree | 7b71b421e03cc27faaa86581ca8262026330505c /test | |
| parent | 29d36e94e101c76da58421cab6828146b041b108 (diff) | |
| download | angular.js-e1ecc34edd19b95d51fbcb1351b04b9876c974c1.tar.bz2 | |
fix(parser): Fix short circuit of logical AND and OR operators
Closes #433
Diffstat (limited to 'test')
| -rw-r--r-- | test/ParserSpec.js | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/test/ParserSpec.js b/test/ParserSpec.js index 4c3cb64b..a5e1901c 100644 --- a/test/ParserSpec.js +++ b/test/ParserSpec.js @@ -391,7 +391,7 @@ describe('parser', function() { expect(scope.a).not.toBeDefined(); }); - it('should allow assignment after array dereference', function(){ + it('should allow assignment after array dereference', function() { scope = angular.scope(); scope.obj = [{}]; scope.$eval('obj[0].name=1'); @@ -399,14 +399,30 @@ describe('parser', function() { expect(scope.obj[0].name).toEqual(1); }); - describe('formatter', function(){ + it('should short-circuit AND operator', function() { + var scope = angular.scope(); + scope.run = function() { + throw "IT SHOULD NOT HAVE RUN"; + }; + expect(scope.$eval('false && run()')).toBe(false); + }); + + it('should short-circuit OR operator', function() { + var scope = angular.scope(); + scope.run = function() { + throw "IT SHOULD NOT HAVE RUN"; + }; + expect(scope.$eval('true || run()')).toBe(true); + }); + + describe('formatter', function() { it('should return no argument function', function() { var noop = parser('noop').formatter()(); expect(noop.format(null, 'abc')).toEqual('abc'); expect(noop.parse(null, '123')).toEqual('123'); }); - it('should delegate arguments', function(){ + it('should delegate arguments', function() { angularFormatter.myArgs = { parse: function(a, b){ return [a, b]; }, format: function(a, b){ return [a, b]; } |
