diff options
author | kpdecker <kpdecker@gmail.com> | 2011-07-29 20:53:47 -0500 |
---|---|---|
committer | kpdecker <kpdecker@gmail.com> | 2011-07-29 20:53:47 -0500 |
commit | a927125909825a3fd9e696ac37f01b2e7fdf5560 (patch) | |
tree | fa13d2f54b4b2da88b383b4141aebe15aa9e1212 /spec/qunit_spec.js | |
parent | 9062cac3f0b62f6c3805c79fb7c3f5e07ca98462 (diff) | |
download | handlebars.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.js | 44 |
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}}'); |