diff options
Diffstat (limited to 'spec/utils.js')
-rw-r--r-- | spec/utils.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/utils.js b/spec/utils.js new file mode 100644 index 0000000..135beb4 --- /dev/null +++ b/spec/utils.js @@ -0,0 +1,56 @@ +/*global shouldCompileTo */ +describe('utils', function() { + describe('#SafeString', function() { + it("constructing a safestring from a string and checking its type", function() { + var safe = new Handlebars.SafeString("testing 1, 2, 3"); + safe.should.be.instanceof(Handlebars.SafeString); + (safe == "testing 1, 2, 3").should.equal(true, "SafeString is equivalent to its underlying string"); + }); + + it("it should not escape SafeString properties", function() { + var name = new Handlebars.SafeString("<em>Sean O'Malley</em>"); + + shouldCompileTo('{{name}}', [{ name: name }], "<em>Sean O'Malley</em>"); + }); + }); + + describe('#escapeExpression', function() { + it('shouhld escape html', function() { + Handlebars.Utils.escapeExpression('foo<&"\'>').should.equal('foo<&"'>'); + }); + it('should not escape SafeString', function() { + var string = new Handlebars.SafeString('foo<&"\'>'); + Handlebars.Utils.escapeExpression(string).should.equal('foo<&"\'>'); + + }); + it('should handle falsy', function() { + Handlebars.Utils.escapeExpression('').should.equal(''); + Handlebars.Utils.escapeExpression(undefined).should.equal(''); + Handlebars.Utils.escapeExpression(null).should.equal(''); + Handlebars.Utils.escapeExpression(false).should.equal(''); + + Handlebars.Utils.escapeExpression(0).should.equal('0'); + }); + it('should handle empty objects', function() { + Handlebars.Utils.escapeExpression({}).should.equal({}.toString()); + Handlebars.Utils.escapeExpression([]).should.equal([].toString()); + }); + }); + + describe('#isEmpty', function() { + it('should not be empty', function() { + Handlebars.Utils.isEmpty(undefined).should.equal(true); + Handlebars.Utils.isEmpty(null).should.equal(true); + Handlebars.Utils.isEmpty(false).should.equal(true); + Handlebars.Utils.isEmpty('').should.equal(true); + Handlebars.Utils.isEmpty([]).should.equal(true); + }); + + it('should be empty', function() { + Handlebars.Utils.isEmpty(0).should.equal(false); + Handlebars.Utils.isEmpty([1]).should.equal(false); + Handlebars.Utils.isEmpty('foo').should.equal(false); + Handlebars.Utils.isEmpty({bar: 1}).should.equal(false); + }); + }); +}); |