From cf865196fec17d337640b4bca5cb16ca7c67f62f Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Sun, 1 Apr 2007 22:29:19 +0000 Subject: [PATCH] add ActionView::Base#find_template_extension_for tests git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6498 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/test/abstract_unit.rb | 6 +++-- actionpack/test/template/base_test.rb | 38 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 actionpack/test/template/base_test.rb diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb index bc7c80f1ce..2733ed95da 100644 --- a/actionpack/test/abstract_unit.rb +++ b/actionpack/test/abstract_unit.rb @@ -18,8 +18,10 @@ ActionController::Routing::Routes.reload rescue nil # Wrap tests that use Mocha and skip if unavailable. def uses_mocha(test_name) - require 'mocha' - require 'stubba' + unless Object.const_defined?(:Mocha) + require 'mocha' + require 'stubba' + end yield rescue LoadError $stderr.puts "Skipping #{test_name} tests. `gem install mocha` and try again." diff --git a/actionpack/test/template/base_test.rb b/actionpack/test/template/base_test.rb new file mode 100644 index 0000000000..754c38f393 --- /dev/null +++ b/actionpack/test/template/base_test.rb @@ -0,0 +1,38 @@ +require "#{File.dirname(__FILE__)}/../abstract_unit" +require "#{File.dirname(__FILE__)}/../testing_sandbox" + +class ActionViewTemplateTest < Test::Unit::TestCase + include TestingSandbox + + uses_mocha "Action View Templates" do + def setup + @template = ActionView::Base.new + end + + def test_should_find_delegated_extension + @template.expects(:delegate_template_exists?).with('foo').returns(['foo']) + assert_equal :foo, @template.send(:find_template_extension_for, 'foo') + end + + def test_should_find_erb_extension + @template.expects(:delegate_template_exists?).with('foo').returns(nil) + @template.expects(:erb_template_exists?).with('foo').returns(:erb) + assert_equal :erb, @template.send(:find_template_extension_for, 'foo') + end + + def test_should_find_builder_extension + @template.expects(:delegate_template_exists?).with('foo').returns(nil) + @template.expects(:erb_template_exists?).with('foo').returns(nil) + @template.expects(:builder_template_exists?).with('foo').returns(:builder) + assert_equal :builder, @template.send(:find_template_extension_for, 'foo') + end + + def test_should_find_javascript_extension + @template.expects(:delegate_template_exists?).with('foo').returns(nil) + @template.expects(:erb_template_exists?).with('foo').returns(nil) + @template.expects(:builder_template_exists?).with('foo').returns(nil) + @template.expects(:javascript_template_exists?).with('foo').returns(true) + assert_equal :rjs, @template.send(:find_template_extension_for, 'foo') + end + end +end \ No newline at end of file