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/ParserSpec.js | |
| 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/ParserSpec.js')
| -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]; } | 
