From 61c90a4ad6eab3623002353ed5867e2f05cb6809 Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Mon, 21 Jan 2008 20:45:04 +0000 Subject: Reapply the TemplateFinder first applied in [8669] then reverted in [8676]. Closes #10800 [lifofifo] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8683 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/test/template/template_finder_test.rb | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 actionpack/test/template/template_finder_test.rb (limited to 'actionpack/test/template') diff --git a/actionpack/test/template/template_finder_test.rb b/actionpack/test/template/template_finder_test.rb new file mode 100644 index 0000000000..c1da5be0f4 --- /dev/null +++ b/actionpack/test/template/template_finder_test.rb @@ -0,0 +1,43 @@ +require 'abstract_unit' + +class TemplateFinderTest < Test::Unit::TestCase + + LOAD_PATH_ROOT = File.join(File.dirname(__FILE__), '..', 'fixtures') + + def setup + ActionView::TemplateFinder.process_view_paths(LOAD_PATH_ROOT) + ActionView::Base::register_template_handler :mab, Class.new(ActionView::TemplateHandler) + @template = ActionView::Base.new + @finder = ActionView::TemplateFinder.new(@template, LOAD_PATH_ROOT) + end + + def test_should_raise_exception_for_unprocessed_view_path + assert_raises ActionView::TemplateFinder::InvalidViewPath do + ActionView::TemplateFinder.new(@template, File.dirname(__FILE__)) + end + end + + def test_should_cache_file_extension_properly + assert_equal ["builder", "erb", "rhtml", "rjs", "rxml", "mab"].sort, + ActionView::TemplateFinder.file_extension_cache[LOAD_PATH_ROOT].values.flatten.uniq.sort + + assert_equal Dir.glob("#{LOAD_PATH_ROOT}/**/*.{erb,rjs,rjs,builder,rxml,mab}").size, + ActionView::TemplateFinder.file_extension_cache[LOAD_PATH_ROOT].keys.size + end + + def test_should_cache_dir_content_properly + assert ActionView::TemplateFinder.processed_view_paths[LOAD_PATH_ROOT] + assert_equal Dir.glob("#{LOAD_PATH_ROOT}/**/*").find_all {|f| !File.directory?(f) }.size, + ActionView::TemplateFinder.processed_view_paths[LOAD_PATH_ROOT].size + end + + uses_mocha 'Template finder tests' do + + def test_should_update_extension_cache_when_template_handler_is_registered + ActionView::TemplateFinder.expects(:update_extension_cache_for).with("funky") + ActionView::Base::register_template_handler :funky, Class.new(ActionView::TemplateHandler) + end + + end + +end -- cgit v1.2.3