diff options
| author | Misko Hevery | 2010-03-25 22:07:36 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2010-03-25 22:07:36 -0700 | 
| commit | 1990cbbf2817e04657ccd616da1d9d6b78cc2949 (patch) | |
| tree | 9c38bfd08ab0e42f362f8d8df39c47f06c13098f /test/ScopeSpec.js | |
| parent | d934054cfc22325d817eb0643dc061f9d212804d (diff) | |
| download | angular.js-1990cbbf2817e04657ccd616da1d9d6b78cc2949.tar.bz2 | |
added few extra tests
Diffstat (limited to 'test/ScopeSpec.js')
| -rw-r--r-- | test/ScopeSpec.js | 90 | 
1 files changed, 90 insertions, 0 deletions
| diff --git a/test/ScopeSpec.js b/test/ScopeSpec.js new file mode 100644 index 00000000..0a0b4241 --- /dev/null +++ b/test/ScopeSpec.js @@ -0,0 +1,90 @@ +describe('scope/model', function(){ + +  it('should create a scope with parent', function(){ +    var model = scope({name:'Misko'}); +    expect(model.name).toEqual('Misko'); +  }); + +  it('should have $get/set$/parent$', function(){ +    var parent = {}; +    var model = scope(parent); +    model.$set('name', 'adam'); +    expect(model.name).toEqual('adam'); +    expect(model.$get('name')).toEqual('adam'); +    expect(model.$parent).toEqual(parent); +  }); + +  //$eval +  it('should eval function with correct this and pass arguments', function(){ +    var model = scope(); +    model.$eval(function(name){ +      this.name = name; +    }, 'works'); +    expect(model.name).toEqual('works'); +  }); + +  it('should eval expression with correct this', function(){ +    var model = scope(); +    model.$eval('name="works"'); +    expect(model.name).toEqual('works'); +  }); + +  //$onEval +  it('should watch an expression for change', function(){ +    var model = scope(); +    model.oldValue = ""; +    var count = 0; +    model.name = 'adam'; +    model.$watch('name', function(){ count ++; }); +    model.$watch(function(){return model.name;}, function(newValue, oldValue){ +      this.newValue = newValue; +      this.oldValue = oldValue; +    }); +    model.name = 'misko'; +    model.$eval(); +    expect(count).toEqual(1); +    expect(model.newValue).toEqual('misko'); +    expect(model.oldValue).toEqual('adam'); +  }); + +  it('should eval with no arguments', function(){ +    var model = scope(); +    var count = 0; +    model.$onEval(function(){count++;}); +    model.$eval(); +    expect(count).toEqual(1); +  }); + +  //$bind +  it('should curry a function with respect to scope', function(){ +    var model = scope(); +    model.name = 'misko'; +    expect(model.$bind(function(){return this.name;})()).toEqual('misko'); +  }); + +  //$behavior +  it('should behave as class', function(){ +    function Printer(brand){ +      this.brand = brand; +    }; +    Printer.prototype.print = function(){ +      this.printed = true; +    }; +    var model = scope({ name: 'parent' }, Printer, 'hp'); +    expect(model.brand).toEqual('hp'); +    model.print(); +    expect(model.printed).toEqual(true); +  }); + + + +  //$tryEval +  it('should report error on element', function(){ + +  }); + +  it('should report error on visible element', function(){ + +  }); + +}); | 
