diff options
| author | Misko Hevery | 2012-03-23 14:03:24 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2012-03-28 11:16:35 -0700 | 
| commit | 2430f52bb97fa9d682e5f028c977c5bf94c5ec38 (patch) | |
| tree | e7529b741d70199f36d52090b430510bad07f233 /test/ng/interpolateSpec.js | |
| parent | 944098a4e0f753f06b40c73ca3e79991cec6c2e2 (diff) | |
| download | angular.js-2430f52bb97fa9d682e5f028c977c5bf94c5ec38.tar.bz2 | |
chore(module): move files around in preparation for more modules
Diffstat (limited to 'test/ng/interpolateSpec.js')
| -rw-r--r-- | test/ng/interpolateSpec.js | 113 | 
1 files changed, 113 insertions, 0 deletions
| diff --git a/test/ng/interpolateSpec.js b/test/ng/interpolateSpec.js new file mode 100644 index 00000000..d5f251ea --- /dev/null +++ b/test/ng/interpolateSpec.js @@ -0,0 +1,113 @@ +'use strict'; + +describe('$interpolate', function() { + +  it('should return a function when there are no bindings and textOnly is undefined', +      inject(function($interpolate) { +    expect(typeof $interpolate('some text')).toBe('function'); +  })); + + +  it('should return undefined when there are no bindings and textOnly is set to true', +      inject(function($interpolate) { +    expect($interpolate('some text', true)).toBeUndefined(); +  })); + +  it('should suppress falsy objects', inject(function($interpolate) { +    expect($interpolate('{{undefined}}')()).toEqual(''); +    expect($interpolate('{{null}}')()).toEqual(''); +    expect($interpolate('{{a.b}}')()).toEqual(''); +  })); + +  it('should jsonify objects', inject(function($interpolate) { +    expect($interpolate('{{ {} }}')()).toEqual('{}'); +    expect($interpolate('{{ true }}')()).toEqual('true'); +    expect($interpolate('{{ false }}')()).toEqual('false'); +  })); + + +  it('should return interpolation function', inject(function($interpolate, $rootScope) { +    $rootScope.name = 'Misko'; +    expect($interpolate('Hello {{name}}!')($rootScope)).toEqual('Hello Misko!'); +  })); + +  describe('provider', function() { +    beforeEach(module(function($interpolateProvider) { +      $interpolateProvider.startSymbol('--'); +      $interpolateProvider.endSymbol('--'); +    })); + +    it('should not get confused with same markers', inject(function($interpolate) { +      expect($interpolate('---').parts).toEqual(['---']); +      expect($interpolate('----')()).toEqual(''); +      expect($interpolate('--1--')()).toEqual('1'); +    })); +  }); + +  describe('parseBindings', function() { +    it('should Parse Text With No Bindings', inject(function($interpolate) { +      var parts = $interpolate("a").parts; +      expect(parts.length).toEqual(1); +      expect(parts[0]).toEqual("a"); +    })); + +    it('should Parse Empty Text', inject(function($interpolate) { +      var parts = $interpolate("").parts; +      expect(parts.length).toEqual(1); +      expect(parts[0]).toEqual(""); +    })); + +    it('should Parse Inner Binding', inject(function($interpolate) { +      var parts = $interpolate("a{{b}}C").parts; +      expect(parts.length).toEqual(3); +      expect(parts[0]).toEqual("a"); +      expect(parts[1].exp).toEqual("b"); +      expect(parts[1]({b:123})).toEqual(123); +      expect(parts[2]).toEqual("C"); +    })); + +    it('should Parse Ending Binding', inject(function($interpolate) { +      var parts = $interpolate("a{{b}}").parts; +      expect(parts.length).toEqual(2); +      expect(parts[0]).toEqual("a"); +      expect(parts[1].exp).toEqual("b"); +      expect(parts[1]({b:123})).toEqual(123); +    })); + +    it('should Parse Begging Binding', inject(function($interpolate) { +      var parts = $interpolate("{{b}}c").parts; +      expect(parts.length).toEqual(2); +      expect(parts[0].exp).toEqual("b"); +      expect(parts[1]).toEqual("c"); +    })); + +    it('should Parse Loan Binding', inject(function($interpolate) { +      var parts = $interpolate("{{b}}").parts; +      expect(parts.length).toEqual(1); +      expect(parts[0].exp).toEqual("b"); +    })); + +    it('should Parse Two Bindings', inject(function($interpolate) { +      var parts = $interpolate("{{b}}{{c}}").parts; +      expect(parts.length).toEqual(2); +      expect(parts[0].exp).toEqual("b"); +      expect(parts[1].exp).toEqual("c"); +    })); + +    it('should Parse Two Bindings With Text In Middle', inject(function($interpolate) { +      var parts = $interpolate("{{b}}x{{c}}").parts; +      expect(parts.length).toEqual(3); +      expect(parts[0].exp).toEqual("b"); +      expect(parts[1]).toEqual("x"); +      expect(parts[2].exp).toEqual("c"); +    })); + +    it('should Parse Multiline', inject(function($interpolate) { +      var parts = $interpolate('"X\nY{{A\n+B}}C\nD"').parts; +      expect(parts.length).toEqual(3); +      expect(parts[0]).toEqual('"X\nY'); +      expect(parts[1].exp).toEqual('A\n+B'); +      expect(parts[2]).toEqual('C\nD"'); +    })); +  }); +}); | 
