diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-19 03:20:39 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-19 03:20:39 +0000 |
commit | 84b0f9c739ffb82f3b8e0571c400014c34d0e369 (patch) | |
tree | cae7ff7cf03695f0ad9483a933a097e5c898d5b2 /actionpack/test/template | |
parent | 4a644575c83d78e751f49cb6ba47e1c98af693a8 (diff) | |
download | rails-84b0f9c739ffb82f3b8e0571c400014c34d0e369.tar.gz rails-84b0f9c739ffb82f3b8e0571c400014c34d0e369.tar.bz2 rails-84b0f9c739ffb82f3b8e0571c400014c34d0e369.zip |
Introduce TemplateFinder to handle view paths and lookups. Closes #10800.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8669 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/template')
-rw-r--r-- | actionpack/test/template/template_finder_test.rb | 43 |
1 files changed, 43 insertions, 0 deletions
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 |