aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/mime_responds_test.rb6
-rw-r--r--actionpack/test/controller/new_render_test.rb10
-rw-r--r--actionpack/test/controller/view_paths_test.rb6
-rw-r--r--actionpack/test/template/template_finder_test.rb43
4 files changed, 46 insertions, 19 deletions
diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb
index ce89b9dbbb..febdbd0993 100644
--- a/actionpack/test/controller/mime_responds_test.rb
+++ b/actionpack/test/controller/mime_responds_test.rb
@@ -437,11 +437,7 @@ class MimeControllerTest < Test::Unit::TestCase
end
class AbstractPostController < ActionController::Base
- class << self
- def view_paths
- [ File.dirname(__FILE__) + "/../fixtures/post_test/" ]
- end
- end
+ self.view_paths = File.dirname(__FILE__) + "/../fixtures/post_test/"
end
# For testing layouts which are set automatically
diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb
index eb19b2e391..4a9b0e9ddf 100644
--- a/actionpack/test/controller/new_render_test.rb
+++ b/actionpack/test/controller/new_render_test.rb
@@ -78,11 +78,6 @@ class NewRenderTestController < ActionController::Base
@secret = 'in the sauce'
render :file => 'test/render_file_with_ivar', :use_full_path => true
end
-
- def render_file_not_using_full_path_with_relative_path
- @secret = 'in the sauce'
- render :file => 'test/../test/render_file_with_ivar', :use_full_path => true
- end
def render_file_not_using_full_path_with_dot_in_path
@secret = 'in the sauce'
@@ -488,11 +483,6 @@ class NewRenderTest < Test::Unit::TestCase
assert_equal "The secret is in the sauce\n", @response.body
end
- def test_render_file_not_using_full_path_with_relative_path
- get :render_file_not_using_full_path_with_relative_path
- assert_equal "The secret is in the sauce\n", @response.body
- end
-
def test_render_file_not_using_full_path_with_dot_in_path
get :render_file_not_using_full_path_with_dot_in_path
assert_equal "The secret is in the sauce\n", @response.body
diff --git a/actionpack/test/controller/view_paths_test.rb b/actionpack/test/controller/view_paths_test.rb
index b1ca400779..0516da32d8 100644
--- a/actionpack/test/controller/view_paths_test.rb
+++ b/actionpack/test/controller/view_paths_test.rb
@@ -16,7 +16,7 @@ class ViewLoadPathsTest < Test::Unit::TestCase
def hello_world_at_request_time() render(:action => 'hello_world') end
private
def add_view_path
- self.class.view_paths.unshift "#{LOAD_PATH_ROOT}/override"
+ prepend_view_path "#{LOAD_PATH_ROOT}/override"
end
end
@@ -27,7 +27,6 @@ class ViewLoadPathsTest < Test::Unit::TestCase
def setup
TestController.view_paths = nil
- ActionView::Base.cache_template_extensions = false
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@@ -45,7 +44,6 @@ class ViewLoadPathsTest < Test::Unit::TestCase
def teardown
ActiveSupport::Deprecation.behavior = @old_behavior
- ActionView::Base.cache_template_extensions = true
end
def test_template_load_path_was_set_correctly
@@ -99,7 +97,7 @@ class ViewLoadPathsTest < Test::Unit::TestCase
end
def test_view_paths_override
- TestController.view_paths.unshift "#{LOAD_PATH_ROOT}/override"
+ TestController.prepend_view_path "#{LOAD_PATH_ROOT}/override"
get :hello_world
assert_response :success
assert_equal "Hello overridden world!", @response.body
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