diff options
| author | Misko Hevery | 2010-05-13 13:57:39 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2010-05-13 13:57:39 -0700 | 
| commit | 22d1464d7abc284dd56d6beaf47e8d85088e01c5 (patch) | |
| tree | 41c2702dc7505c30aa87edc87f17b8a50a77aaa8 /test/ScopeSpec.js | |
| parent | 0a288d1db368ae0754482ad06fe2a78ce6a9de85 (diff) | |
| download | angular.js-22d1464d7abc284dd56d6beaf47e8d85088e01c5.tar.bz2 | |
fixed issue with radio view clobering model if radio was checked.
Diffstat (limited to 'test/ScopeSpec.js')
| -rw-r--r-- | test/ScopeSpec.js | 213 | 
1 files changed, 113 insertions, 100 deletions
| diff --git a/test/ScopeSpec.js b/test/ScopeSpec.js index 23638b27..a3b6d9ae 100644 --- a/test/ScopeSpec.js +++ b/test/ScopeSpec.js @@ -15,133 +15,146 @@ describe('scope/model', function(){      expect(model.$root).toEqual(model);    }); -  //$eval -  it('should eval function with correct this and pass arguments', function(){ -    var model = createScope(); -    model.$eval(function(name){ -      this.name = name; -    }, 'works'); -    expect(model.name).toEqual('works'); -  }); +  describe('$eval', function(){ +    it('should eval function with correct this and pass arguments', function(){ +      var model = createScope(); +      model.$eval(function(name){ +        this.name = name; +      }, 'works'); +      expect(model.name).toEqual('works'); +    }); -  it('should eval expression with correct this', function(){ -    var model = createScope(); -    model.$eval('name="works"'); -    expect(model.name).toEqual('works'); -  }); +    it('should eval expression with correct this', function(){ +      var model = createScope(); +      model.$eval('name="works"'); +      expect(model.name).toEqual('works'); +    }); -  //$watch -  it('should watch an expression for change', function(){ -    var model = createScope(); -    model.oldValue = ""; -    var nameCount = 0, evalCount = 0; -    model.name = 'adam'; -    model.$watch('name', function(){ nameCount ++; }); -    model.$watch(function(){return model.name;}, function(newValue, oldValue){ -      this.newValue = newValue; -      this.oldValue = oldValue; +    it('should do nothing on empty string and not update view', function(){ +      var model = createScope(); +      var onEval = jasmine.createSpy('onEval'); +      model.$onEval(onEval); +      model.$eval(''); +      expect(onEval).wasNotCalled();      }); -    model.$onEval(function(){evalCount ++;}); -    model.name = 'misko'; -    model.$eval(); -    expect(nameCount).toEqual(2); -    expect(evalCount).toEqual(1); -    expect(model.newValue).toEqual('misko'); -    expect(model.oldValue).toEqual('adam');    }); -  it('should eval with no arguments', function(){ -    var model = createScope(); -    var count = 0; -    model.$onEval(function(){count++;}); -    model.$eval(); -    expect(count).toEqual(1); -  }); +  describe('$watch', function(){ +    it('should watch an expression for change', function(){ +      var model = createScope(); +      model.oldValue = ""; +      var nameCount = 0, evalCount = 0; +      model.name = 'adam'; +      model.$watch('name', function(){ nameCount ++; }); +      model.$watch(function(){return model.name;}, function(newValue, oldValue){ +        this.newValue = newValue; +        this.oldValue = oldValue; +      }); +      model.$onEval(function(){evalCount ++;}); +      model.name = 'misko'; +      model.$eval(); +      expect(nameCount).toEqual(2); +      expect(evalCount).toEqual(1); +      expect(model.newValue).toEqual('misko'); +      expect(model.oldValue).toEqual('adam'); +    }); -  //$bind -  it('should curry a function with respect to scope', function(){ -    var model = createScope(); -    model.name = 'misko'; -    expect(model.$bind(function(){return this.name;})()).toEqual('misko'); +    it('should eval with no arguments', function(){ +      var model = createScope(); +      var count = 0; +      model.$onEval(function(){count++;}); +      model.$eval(); +      expect(count).toEqual(1); +    });    }); -  //$tryEval -  it('should report error on element', function(){ -    var scope = createScope(); -    scope.$tryEval('throw "myerror";', function(error){ -      scope.error = error; +  describe('$bind', function(){ +    it('should curry a function with respect to scope', function(){ +      var model = createScope(); +      model.name = 'misko'; +      expect(model.$bind(function(){return this.name;})()).toEqual('misko');      }); -    expect(scope.error).toEqual('myerror');    }); -  it('should report error on visible element', function(){ -    var element = jqLite('<div></div>'); -    var scope = createScope(); -    scope.$tryEval('throw "myError"', element); -    expect(element.attr('ng-exception')).toEqual('"myError"'); // errors are jsonified -    expect(element.hasClass('ng-exception')).toBeTruthy(); -  }); +  describe('$tryEval', function(){ +    it('should report error on element', function(){ +      var scope = createScope(); +      scope.$tryEval('throw "myerror";', function(error){ +        scope.error = error; +      }); +      expect(scope.error).toEqual('myerror'); +    }); -  it('should report error on $excetionHandler', function(){ -    var element = jqLite('<div></div>'); -    var scope = createScope(); -    scope.$exceptionHandler = function(e){ -      this.error = e; -    }; -    scope.$tryEval('throw "myError"'); -    expect(scope.error).toEqual("myError"); +    it('should report error on visible element', function(){ +      var element = jqLite('<div></div>'); +      var scope = createScope(); +      scope.$tryEval('throw "myError"', element); +      expect(element.attr('ng-exception')).toEqual('"myError"'); // errors are jsonified +      expect(element.hasClass('ng-exception')).toBeTruthy(); +    }); + +    it('should report error on $excetionHandler', function(){ +      var element = jqLite('<div></div>'); +      var scope = createScope(); +      scope.$exceptionHandler = function(e){ +        this.error = e; +      }; +      scope.$tryEval('throw "myError"'); +      expect(scope.error).toEqual("myError"); +    });    });    // $onEval +  describe('$onEval', function(){ +    it("should eval using priority", function(){ +      var scope = createScope(); +      scope.log = ""; +      scope.$onEval('log = log + "middle;"'); +      scope.$onEval(-1, 'log = log + "first;"'); +      scope.$onEval(1, 'log = log + "last;"'); +      scope.$eval(); +      expect(scope.log).toEqual('first;middle;last;'); +    }); -  it("should eval using priority", function(){ -    var scope = createScope(); -    scope.log = ""; -    scope.$onEval('log = log + "middle;"'); -    scope.$onEval(-1, 'log = log + "first;"'); -    scope.$onEval(1, 'log = log + "last;"'); -    scope.$eval(); -    expect(scope.log).toEqual('first;middle;last;'); -  }); - -  it("should have $root and $parent", function(){ -    var parent = createScope(); -    var scope = createScope(parent); -    expect(scope.$root).toEqual(parent); -    expect(scope.$parent).toEqual(parent); +    it("should have $root and $parent", function(){ +      var parent = createScope(); +      var scope = createScope(parent); +      expect(scope.$root).toEqual(parent); +      expect(scope.$parent).toEqual(parent); +    });    }); -  // Service injection -  it('should inject services', function(){ -    var scope = createScope(null, { -      service:function(){ +  describe('service injection', function(){ +    it('should inject services', function(){ +      var scope = createScope(null, { +        service:function(){          return "ABC";        } +      }); +      expect(scope.service).toEqual("ABC");      }); -    expect(scope.service).toEqual("ABC"); -  }); -  it('should inject arugments', function(){ -    var scope = createScope(null, { -      name:function(){ +    it('should inject arugments', function(){ +      var scope = createScope(null, { +        name:function(){          return "misko";        },        greet: extend(function(name) {          return 'hello ' + name;        }, {inject:['name']}) -    }); -    expect(scope.greet).toEqual("hello misko"); -  }); - -  it('should throw error on missing dependency', function(){ -    try { -      createScope(null, { -        greet: extend(function(name) { -        }, {inject:['name']})        }); -    } catch(e) { -      expect(e).toEqual("Don't know how to inject 'name'."); -    } -   }); +      expect(scope.greet).toEqual("hello misko"); +    }); +    it('should throw error on missing dependency', function(){ +      try { +        createScope(null, { +          greet: extend(function(name) { +          }, {inject:['name']}) +        }); +      } catch(e) { +        expect(e).toEqual("Don't know how to inject 'name'."); +      } +    }); +  });  }); | 
