From eb23754ebbfbf2d465cc0f900720704fb3703633 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 17 Apr 2013 00:06:11 +0200 Subject: Move template tests from actionpack to actionview --- .../test/template/compiled_templates_test.rb | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 actionview/test/template/compiled_templates_test.rb (limited to 'actionview/test/template/compiled_templates_test.rb') diff --git a/actionview/test/template/compiled_templates_test.rb b/actionview/test/template/compiled_templates_test.rb new file mode 100644 index 0000000000..f5dc2fbb33 --- /dev/null +++ b/actionview/test/template/compiled_templates_test.rb @@ -0,0 +1,63 @@ +require 'abstract_unit' +require 'controller/fake_models' + +class CompiledTemplatesTest < ActiveSupport::TestCase + def setup + # Clean up any details key cached to expose failures + # that otherwise would appear just on isolated tests + ActionView::LookupContext::DetailsKey.clear + + @compiled_templates = ActionView::CompiledTemplates + @compiled_templates.instance_methods.each do |m| + @compiled_templates.send(:remove_method, m) if m =~ /^_render_template_/ + end + end + + def test_template_gets_recompiled_when_using_different_keys_in_local_assigns + assert_equal "one", render(:file => "test/render_file_with_locals_and_default") + assert_equal "two", render(:file => "test/render_file_with_locals_and_default", :locals => { :secret => "two" }) + end + + def test_template_changes_are_not_reflected_with_cached_templates + assert_equal "Hello world!", render(:file => "test/hello_world") + modify_template "test/hello_world.erb", "Goodbye world!" do + assert_equal "Hello world!", render(:file => "test/hello_world") + end + assert_equal "Hello world!", render(:file => "test/hello_world") + end + + def test_template_changes_are_reflected_with_uncached_templates + assert_equal "Hello world!", render_without_cache(:file => "test/hello_world") + modify_template "test/hello_world.erb", "Goodbye world!" do + assert_equal "Goodbye world!", render_without_cache(:file => "test/hello_world") + end + assert_equal "Hello world!", render_without_cache(:file => "test/hello_world") + end + + private + def render(*args) + render_with_cache(*args) + end + + def render_with_cache(*args) + view_paths = ActionController::Base.view_paths + ActionView::Base.new(view_paths, {}).render(*args) + end + + def render_without_cache(*args) + path = ActionView::FileSystemResolver.new(FIXTURE_LOAD_PATH) + view_paths = ActionView::PathSet.new([path]) + ActionView::Base.new(view_paths, {}).render(*args) + end + + def modify_template(template, content) + filename = "#{FIXTURE_LOAD_PATH}/#{template}" + old_content = File.read(filename) + begin + File.open(filename, "wb+") { |f| f.write(content) } + yield + ensure + File.open(filename, "wb+") { |f| f.write(old_content) } + end + end +end -- cgit v1.2.3 From 5e5bf31b4a3c396c63469abb217bda6810076249 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 9 Jun 2012 13:04:23 +0200 Subject: Remove unneeded files --- actionview/test/template/compiled_templates_test.rb | 1 - 1 file changed, 1 deletion(-) (limited to 'actionview/test/template/compiled_templates_test.rb') diff --git a/actionview/test/template/compiled_templates_test.rb b/actionview/test/template/compiled_templates_test.rb index f5dc2fbb33..2336321f3e 100644 --- a/actionview/test/template/compiled_templates_test.rb +++ b/actionview/test/template/compiled_templates_test.rb @@ -1,5 +1,4 @@ require 'abstract_unit' -require 'controller/fake_models' class CompiledTemplatesTest < ActiveSupport::TestCase def setup -- cgit v1.2.3