aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/interpolateSpec.js
diff options
context:
space:
mode:
authorMisko Hevery2012-03-23 14:03:24 -0700
committerMisko Hevery2012-03-28 11:16:35 -0700
commit2430f52bb97fa9d682e5f028c977c5bf94c5ec38 (patch)
treee7529b741d70199f36d52090b430510bad07f233 /test/ng/interpolateSpec.js
parent944098a4e0f753f06b40c73ca3e79991cec6c2e2 (diff)
downloadangular.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.js113
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"');
+ }));
+ });
+});