aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/abstract_unit.rb6
-rw-r--r--actionpack/test/template/base_test.rb38
2 files changed, 42 insertions, 2 deletions
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