diff options
| author | Misko Hevery | 2011-12-07 21:01:19 -0800 | 
|---|---|---|
| committer | Misko Hevery | 2012-01-25 11:46:36 -0800 | 
| commit | 5001c1a1217772d2bffe108bafd475b24badf559 (patch) | |
| tree | 8c16f111ae4bfcf4b098b14d395b327443917501 /test | |
| parent | 0f6b2ef9823953533dd98849fc29c08e6a05c4a4 (diff) | |
| download | angular.js-5001c1a1217772d2bffe108bafd475b24badf559.tar.bz2 | |
refactor($interpolate): improve interpolation service add documentation
Diffstat (limited to 'test')
| -rw-r--r-- | test/markupSpec.js | 86 | ||||
| -rw-r--r-- | test/service/interpolateSpec.js | 92 | 
2 files changed, 92 insertions, 86 deletions
diff --git a/test/markupSpec.js b/test/markupSpec.js index e2e11f7f..0dcbbfe9 100644 --- a/test/markupSpec.js +++ b/test/markupSpec.js @@ -170,91 +170,5 @@ describe("markups", function() {      expect(sortedHtml(element)).toEqual('<div href="some" ng:bind-attr="{"href":"some"}"></div>');      dealoc(element);    })); - -  it('should Parse Text With No Bindings', inject(function($rootScope, $compile) { -    var parts = parseBindings("a"); -    expect(parts.length).toBe(1); -    expect(parts[0]).toBe("a"); -    expect(binding(parts[0])).toBeFalsy(); -  })); - -  it('should Parse Empty Text', inject(function($rootScope, $compile) { -    var parts = parseBindings(""); -    expect(parts.length).toBe(1); -    expect(parts[0]).toBe(""); -    expect(binding(parts[0])).toBeFalsy(); -  })); - -  it('should Parse Inner Binding', inject(function($rootScope, $compile) { -    var parts = parseBindings("a{{b}}C"); -    expect(parts.length).toBe(3); -    expect(parts[0]).toBe("a"); -    expect(binding(parts[0])).toBeFalsy(); -    expect(parts[1]).toBe("{{b}}"); -    expect(binding(parts[1])).toBe("b"); -    expect(parts[2]).toBe("C"); -    expect(binding(parts[2])).toBeFalsy(); -  })); - -  it('should Parse Ending Binding', inject(function($rootScope, $compile) { -    var parts = parseBindings("a{{b}}"); -    expect(parts.length).toBe(2); -    expect(parts[0]).toBe("a"); -    expect(binding(parts[0])).toBeFalsy(); -    expect(parts[1]).toBe("{{b}}"); -    expect(binding(parts[1])).toBe("b"); -  })); - -  it('should Parse Begging Binding', inject(function($rootScope, $compile) { -    var parts = parseBindings("{{b}}c"); -    expect(parts.length).toBe(2); -    expect(parts[0]).toBe("{{b}}"); -    expect(binding(parts[0])).toBe("b"); -    expect(parts[1]).toBe("c"); -    expect(binding(parts[1])).toBeFalsy(); -  })); - -  it('should Parse Loan Binding', inject(function($rootScope, $compile) { -    var parts = parseBindings("{{b}}"); -    expect(parts.length).toBe(1); -    expect(parts[0]).toBe("{{b}}"); -    expect(binding(parts[0])).toBe("b"); -  })); - -  it('should Parse Two Bindings', inject(function($rootScope, $compile) { -    var parts = parseBindings("{{b}}{{c}}"); -    expect(parts.length).toBe(2); -    expect(parts[0]).toBe("{{b}}"); -    expect(binding(parts[0])).toBe("b"); -    expect(parts[1]).toBe("{{c}}"); -    expect(binding(parts[1])).toBe("c"); -  })); - -  it('should Parse Two Bindings With Text In Middle', inject(function($rootScope, $compile) { -    var parts = parseBindings("{{b}}x{{c}}"); -    expect(parts.length).toBe(3); -    expect(parts[0]).toBe("{{b}}"); -    expect(binding(parts[0])).toBe("b"); -    expect(parts[1]).toBe("x"); -    expect(binding(parts[1])).toBeFalsy(); -    expect(parts[2]).toBe("{{c}}"); -    expect(binding(parts[2])).toBe("c"); -  })); - -  it('should Parse Multiline', inject(function($rootScope, $compile) { -    var parts = parseBindings('"X\nY{{A\nB}}C\nD"'); -    expect(binding('{{A\nB}}')).toBeTruthy(); -    expect(parts.length).toBe(3); -    expect(parts[0]).toBe('"X\nY'); -    expect(parts[1]).toBe('{{A\nB}}'); -    expect(parts[2]).toBe('C\nD"'); -  })); - -  it('should Has Binding', inject(function($rootScope, $compile) { -    expect(hasBindings(parseBindings("{{a}}"))).toBe(true); -    expect(hasBindings(parseBindings("a"))).toBeFalsy(); -    expect(hasBindings(parseBindings("{{b}}x{{c}}"))).toBe(true); -  })); -  }); diff --git a/test/service/interpolateSpec.js b/test/service/interpolateSpec.js index 8644ee0a..d5f251ea 100644 --- a/test/service/interpolateSpec.js +++ b/test/service/interpolateSpec.js @@ -13,9 +13,101 @@ describe('$interpolate', function() {      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"'); +    })); +  });  });  | 
