test/tilt_coffeescripttemplate_test.rb in tilt-1.3.3 vs test/tilt_coffeescripttemplate_test.rb in tilt-1.3.4
- old
+ new
@@ -3,14 +3,29 @@
begin
require 'coffee_script'
class CoffeeScriptTemplateTest < Test::Unit::TestCase
+
+ unless method_defined?(:assert_not_match)
+ # assert_not_match is missing on 1.8.7, which uses assert_no_match
+ def assert_not_match(a, b)
+ unless a.kind_of?(Regexp)
+ a = Regexp.new(Regexp.escape(a))
+ end
+ assert_no_match(a,b)
+ end
+ end
+
test "is registered for '.coffee' files" do
assert_equal Tilt::CoffeeScriptTemplate, Tilt['test.coffee']
end
+ test "bare is disabled by default" do
+ assert_equal false, Tilt::CoffeeScriptTemplate.default_bare
+ end
+
test "compiles and evaluates the template on #render" do
template = Tilt::CoffeeScriptTemplate.new { |t| "puts 'Hello, World!'\n" }
assert_match "puts('Hello, World!');", template.render
end
@@ -18,44 +33,82 @@
template = Tilt::CoffeeScriptTemplate.new { |t| "puts 'Hello, World!'\n" }
3.times { assert_match "puts('Hello, World!');", template.render }
end
test "disabling coffee-script wrapper" do
- str = "puts 'Hello, World!'\n"
+ str = 'name = "Josh"; puts "Hello #{name}"'
+ template = Tilt::CoffeeScriptTemplate.new { str }
+ assert_match "(function() {", template.render
+ assert_match "puts(\"Hello \" + name);\n", template.render
+
template = Tilt::CoffeeScriptTemplate.new(:bare => true) { str }
- assert_equal "puts('Hello, World!');", template.render
+ assert_not_match "(function() {", template.render
+ assert_equal "var name;\n\nname = \"Josh\";\n\nputs(\"Hello \" + name);\n", template.render
template2 = Tilt::CoffeeScriptTemplate.new(:no_wrap => true) { str}
- assert_equal "puts('Hello, World!');", template.render
+ assert_not_match "(function() {", template.render
+ assert_equal "var name;\n\nname = \"Josh\";\n\nputs(\"Hello \" + name);\n", template.render
end
- context "disabling coffee-script wrapper globally" do
+ context "wrapper globally enabled" do
setup do
@bare = Tilt::CoffeeScriptTemplate.default_bare
+ Tilt::CoffeeScriptTemplate.default_bare = false
end
teardown do
Tilt::CoffeeScriptTemplate.default_bare = @bare
end
test "no options" do
- template = Tilt::CoffeeScriptTemplate.new { |t| "puts 'Hello, World!'\n" }
- assert_match "puts('Hello, World!');", template.render
+ template = Tilt::CoffeeScriptTemplate.new { |t| 'name = "Josh"; puts "Hello, #{name}"' }
+ assert_match "puts(\"Hello, \" + name);", template.render
assert_match "(function() {", template.render
end
test "overridden by :bare" do
- template = Tilt::CoffeeScriptTemplate.new(:bare => false) { "puts 'Hello, World!'\n" }
- assert_not_equal "puts('Hello, World!');", template.render
+ template = Tilt::CoffeeScriptTemplate.new(:bare => true) { |t| 'name = "Josh"; puts "Hello, #{name}"' }
+ assert_match "puts(\"Hello, \" + name);", template.render
+ assert_not_match "(function() {", template.render
end
test "overridden by :no_wrap" do
- template = Tilt::CoffeeScriptTemplate.new(:no_wrap => false) { "puts 'Hello, World!'\n" }
- assert_not_equal "puts('Hello, World!');", template.render
+ template = Tilt::CoffeeScriptTemplate.new(:no_wrap => true) { |t| 'name = "Josh"; puts "Hello, #{name}"' }
+ assert_match "puts(\"Hello, \" + name);", template.render
+ assert_not_match "(function() {", template.render
end
end
+
+ context "wrapper globally disabled" do
+ setup do
+ @bare = Tilt::CoffeeScriptTemplate.default_bare
+ Tilt::CoffeeScriptTemplate.default_bare = true
+ end
+
+ teardown do
+ Tilt::CoffeeScriptTemplate.default_bare = @bare
+ end
+
+ test "no options" do
+ template = Tilt::CoffeeScriptTemplate.new { |t| 'name = "Josh"; puts "Hello, #{name}"' }
+ assert_match "puts(\"Hello, \" + name);", template.render
+ assert_not_match "(function() {", template.render
+ end
+
+ test "overridden by :bare" do
+ template = Tilt::CoffeeScriptTemplate.new(:bare => false) { |t| 'name = "Josh"; puts "Hello, #{name}"' }
+ assert_match "puts(\"Hello, \" + name);", template.render
+ assert_match "(function() {", template.render
+ end
+
+ test "overridden by :no_wrap" do
+ template = Tilt::CoffeeScriptTemplate.new(:no_wrap => false) { |t| 'name = "Josh"; puts "Hello, #{name}"' }
+ assert_match "puts(\"Hello, \" + name);", template.render
+ assert_match "(function() {", template.render
+ end
+ end
end
rescue LoadError => boom
- warn "Tilt::CoffeeScriptTemplate (disabled)\n"
+ warn "Tilt::CoffeeScriptTemplate (disabled)"
end