require 'test/unit' $LOAD_PATH.unshift File.dirname(__FILE__) + '/../examples' require 'simple' require 'complex_view' require 'view_partial' require 'template_partial' require 'escaped' require 'unescaped' require 'comments' require 'passenger' class MustacheTest < Test::Unit::TestCase def test_passenger assert_equal <<-end_passenger, Passenger.to_text ServerName example.com DocumentRoot /var/www/example.com RailsEnv production end_passenger end def test_complex_view assert_equal <<-end_complex, ComplexView.render

Colors

end_complex end def test_simple assert_equal <<-end_simple, Simple.render Hello Chris You have just won $10000! Well, $6000.0, after taxes. end_simple end def test_hash_assignment view = Simple.new view[:name] = 'Bob' view[:value] = '4000' view[:in_ca] = false assert_equal <<-end_simple, view.render Hello Bob You have just won $4000! end_simple end def test_crazier_hash_assignment view = Simple.new view[:name] = 'Crazy' view[:in_ca] = [ { :taxed_value => 1 }, { :taxed_value => 2 }, { :taxed_value => 3 }, ] assert_equal <<-end_simple, view.render Hello Crazy You have just won $10000! Well, $1, after taxes. Well, $2, after taxes. Well, $3, after taxes. end_simple end def test_fileless_templates view = Simple.new view.template = 'Hi {{person}}!' view[:person] = 'mom' assert_equal 'Hi mom!', view.render end def test_view_partial assert_equal <<-end_partial.strip, ViewPartial.render

Welcome

Hello Chris You have just won $10000! Well, $6000.0, after taxes.

Fair enough, right?

end_partial end def test_template_partial assert_equal <<-end_partial.strip, TemplatePartial.render

Welcome

Again, Welcome! end_partial end def test_template_partial_with_custom_extension partial = TemplatePartial.new partial.template_extension = 'txt' assert_equal <<-end_partial.strip, partial.render.strip Welcome ------- ## Again, Welcome! ## end_partial end def test_comments assert_equal "

A Comedy of Errors

\n", Comments.render end def test_escaped assert_equal '

Bear > Shark

', Escaped.render end def test_unescaped assert_equal '

Bear > Shark

', Unescaped.render end def test_classify assert_equal 'TemplatePartial', Mustache.classify('template_partial') end def test_underscore assert_equal 'template_partial', Mustache.underscore('TemplatePartial') end def test_namespaced_underscore assert_equal 'stat_stuff', Mustache.underscore('Views::StatStuff') end def test_render assert_equal 'Hello World!', Mustache.render('Hello World!') end def test_render_with_params assert_equal 'Hello World!', Mustache.render('Hello {{planet}}!', :planet => 'World') end def test_render_from_file expected = <<-data ServerName example.com DocumentRoot /var/www/example.com RailsEnv production data template = File.read("examples/passenger.conf") assert_equal expected, Mustache.render(template, :stage => 'production', :server => 'example.com', :deploy_to => '/var/www/example.com' ) end end