summaryrefslogtreecommitdiffstats
path: root/spec/qunit_spec.js
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2011-07-29 20:53:47 -0500
committerkpdecker <kpdecker@gmail.com>2011-07-29 20:53:47 -0500
commita927125909825a3fd9e696ac37f01b2e7fdf5560 (patch)
treefa13d2f54b4b2da88b383b4141aebe15aa9e1212 /spec/qunit_spec.js
parent9062cac3f0b62f6c3805c79fb7c3f5e07ca98462 (diff)
downloadhandlebars.js-a927125909825a3fd9e696ac37f01b2e7fdf5560.zip
handlebars.js-a927125909825a3fd9e696ac37f01b2e7fdf5560.tar.gz
handlebars.js-a927125909825a3fd9e696ac37f01b2e7fdf5560.tar.bz2
Can access context variables masked by helpers by scoping with 'this.'
Diffstat (limited to 'spec/qunit_spec.js')
-rw-r--r--spec/qunit_spec.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/qunit_spec.js b/spec/qunit_spec.js
index bdec68b..3b08bc5 100644
--- a/spec/qunit_spec.js
+++ b/spec/qunit_spec.js
@@ -683,6 +683,50 @@ test("helpers take precedence over same-named context properties", function() {
equals(result, "GOODBYE cruel WORLD", "Helper executed");
});
+test("Scoped names take precedence over helpers", function() {
+ var template = Handlebars.compile("{{this.goodbye}} {{cruel world}} {{cruel this.goodbye}}");
+
+ var helpers = {
+ goodbye: function() {
+ return this.goodbye.toUpperCase();
+ }
+ };
+
+ var context = {
+ cruel: function(world) {
+ return "cruel " + world.toUpperCase();
+ },
+
+ goodbye: "goodbye",
+ world: "world"
+ };
+
+ var result = template(context, {helpers: helpers});
+ equals(result, "goodbye cruel WORLD cruel GOODBYE", "Helper not executed");
+});
+
+test("Scoped names take precedence over block helpers", function() {
+ var template = Handlebars.compile("{{#goodbye}} {{cruel world}}{{/goodbye}} {{this.goodbye}}");
+
+ var helpers = {
+ goodbye: function(fn) {
+ return this.goodbye.toUpperCase() + fn(this);
+ }
+ };
+
+ var context = {
+ cruel: function(world) {
+ return "cruel " + world.toUpperCase();
+ },
+
+ goodbye: "goodbye",
+ world: "world"
+ };
+
+ var result = template(context, {helpers: helpers});
+ equals(result, "GOODBYE cruel WORLD goodbye", "Helper executed");
+});
+
test("helpers can take an optional hash", function() {
var template = Handlebars.compile('{{goodbye cruel="CRUEL" world="WORLD" times=12}}');