summaryrefslogtreecommitdiffstats
path: root/spec/qunit_spec.js
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2011-07-31 21:00:44 -0500
committerkpdecker <kpdecker@gmail.com>2011-07-31 21:00:44 -0500
commitf53737ef23e5d37ecce932fb7dfb6ae720cbcad7 (patch)
treee5885f678b8c7bb6301fa571c6e173731ab4233b /spec/qunit_spec.js
parent1a88356dc3ec86376392405b23f3cba1eaff8f73 (diff)
downloadhandlebars.js-f53737ef23e5d37ecce932fb7dfb6ae720cbcad7.zip
handlebars.js-f53737ef23e5d37ecce932fb7dfb6ae720cbcad7.tar.gz
handlebars.js-f53737ef23e5d37ecce932fb7dfb6ae720cbcad7.tar.bz2
knownHandlers and knownHandlersOnly compile options.
Diffstat (limited to 'spec/qunit_spec.js')
-rw-r--r--spec/qunit_spec.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/qunit_spec.js b/spec/qunit_spec.js
index ba8173d..1774bbf 100644
--- a/spec/qunit_spec.js
+++ b/spec/qunit_spec.js
@@ -519,6 +519,46 @@ test("if a context is not found, helperMissing is used", function() {
shouldCompileTo(string, context, "Hello <a>world</a>")
});
+module("knownHelpers");
+
+test("Known helper should render helper", function() {
+ var template = CompilerContext.compile("{{hello}}", {knownHelpers: {"hello" : true}})
+
+ var result = template({}, {helpers: {hello: function() { return "foo"; }}});
+ equal(result, "foo", "'foo' should === '" + result);
+});
+
+test("Unknown helper in knownHelpers only mode should be passed as undefined", function() {
+ var template = CompilerContext.compile("{{typeof hello}}", {knownHelpers: {'typeof': true}, knownHelpersOnly: true})
+
+ var result = template({}, {helpers: {'typeof': function(arg) { return typeof arg; }, hello: function() { return "foo"; }}});
+ equal(result, "undefined", "'undefined' should === '" + result);
+});
+test("Builtin helpers available in knownHelpers only mode", function() {
+ var template = CompilerContext.compile("{{#unless foo}}bar{{/unless}}", {knownHelpersOnly: true})
+
+ var result = template({});
+ equal(result, "bar", "'bar' should === '" + result);
+});
+test("Field lookup works in knownHelpers only mode", function() {
+ var template = CompilerContext.compile("{{foo}}", {knownHelpersOnly: true})
+
+ var result = template({foo: 'bar'});
+ equal(result, "bar", "'bar' should === '" + result);
+});
+test("Conditional blocks work in knownHelpers only mode", function() {
+ var template = CompilerContext.compile("{{#foo}}bar{{/foo}}", {knownHelpersOnly: true})
+
+ var result = template({foo: 'baz'});
+ equal(result, "bar", "'bar' should === '" + result);
+});
+test("Invert blocks work in knownHelpers only mode", function() {
+ var template = CompilerContext.compile("{{^foo}}bar{{/foo}}", {knownHelpersOnly: true})
+
+ var result = template({foo: false});
+ equal(result, "bar", "'bar' should === '" + result);
+});
+
module("built-in helpers");
test("with", function() {