From c0110a9faa1fc414c960a1c639aa8b121d92ca82 Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Tue, 22 Jan 2008 01:46:34 +0000 Subject: Refactor template compilation from AV::Base into the template handlers. Closes #10888 [lifofifo] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8689 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../test/template/compiled_templates_test.rb | 88 ++++++++++------------ 1 file changed, 39 insertions(+), 49 deletions(-) (limited to 'actionpack/test/template') diff --git a/actionpack/test/template/compiled_templates_test.rb b/actionpack/test/template/compiled_templates_test.rb index 4998eb198c..c46eed0775 100644 --- a/actionpack/test/template/compiled_templates_test.rb +++ b/actionpack/test/template/compiled_templates_test.rb @@ -87,21 +87,22 @@ class CompiledTemplateTests < Test::Unit::TestCase v.base_path = '.' v.cache_template_loading = false + @handler_class = ActionView::Base.handler_class_for_extension(:rhtml) + @handler = @handler_class.new(v) + # All templates were created at t+1 File::Stat.any_instance.expects(:mtime).times(windows ? 2 : 3).returns(t + 1.second) # private methods template_changed_since? and compile_template? # should report true for all since they have not been compiled - assert v.send(:template_changed_since?, @a, t) - assert v.send(:template_changed_since?, @b, t) - assert v.send(:template_changed_since?, @s, t) unless windows + assert @handler.send(:template_changed_since?, @a, t) + assert @handler.send(:template_changed_since?, @b, t) + assert @handler.send(:template_changed_since?, @s, t) unless windows - assert v.send(:compile_template?, nil, @a, {}) - assert v.send(:compile_template?, nil, @b, {}) - assert v.send(:compile_template?, nil, @s, {}) unless windows + assert @handler.send(:compile_template?, nil, @a, {}) + assert @handler.send(:compile_template?, nil, @b, {}) + assert @handler.send(:compile_template?, nil, @s, {}) unless windows - @handler_class = ActionView::Base.handler_class_for_extension(:rhtml) - @handler = @handler_class.new(v) # All templates are rendered at t+2 Time.expects(:now).times(windows ? 2 : 3).returns(t + 2.seconds) v.send(:compile_and_render_template, @handler, '', @a) @@ -111,26 +112,26 @@ class CompiledTemplateTests < Test::Unit::TestCase b_n = v.method_names[@b] s_n = v.method_names[@s] unless windows # all of the files have changed since last compile - assert v.compile_time[a_n] > t - assert v.compile_time[b_n] > t - assert v.compile_time[s_n] > t unless windows + assert @handler.compile_time[a_n] > t + assert @handler.compile_time[b_n] > t + assert @handler.compile_time[s_n] > t unless windows # private methods template_changed_since? and compile_template? # should report false for all since none have changed since compile File::Stat.any_instance.expects(:mtime).times(windows ? 6 : 12).returns(t + 1.second) - assert !v.send(:template_changed_since?, @a, v.compile_time[a_n]) - assert !v.send(:template_changed_since?, @b, v.compile_time[b_n]) - assert !v.send(:template_changed_since?, @s, v.compile_time[s_n]) unless windows - assert !v.send(:compile_template?, nil, @a, {}) - assert !v.send(:compile_template?, nil, @b, {}) - assert !v.send(:compile_template?, nil, @s, {}) unless windows + assert !@handler.send(:template_changed_since?, @a, @handler.compile_time[a_n]) + assert !@handler.send(:template_changed_since?, @b, @handler.compile_time[b_n]) + assert !@handler.send(:template_changed_since?, @s, @handler.compile_time[s_n]) unless windows + assert !@handler.send(:compile_template?, nil, @a, {}) + assert !@handler.send(:compile_template?, nil, @b, {}) + assert !@handler.send(:compile_template?, nil, @s, {}) unless windows v.send(:compile_and_render_template, @handler, '', @a) v.send(:compile_and_render_template, @handler, '', @b) v.send(:compile_and_render_template, @handler, '', @s) unless windows # none of the files have changed since last compile - assert v.compile_time[a_n] < t + 3.seconds - assert v.compile_time[b_n] < t + 3.seconds - assert v.compile_time[s_n] < t + 3.seconds unless windows + assert @handler.compile_time[a_n] < t + 3.seconds + assert @handler.compile_time[b_n] < t + 3.seconds + assert @handler.compile_time[s_n] < t + 3.seconds unless windows `rm #{@s}; ln -s #{@b} #{@s}` unless windows # private methods template_changed_since? and compile_template? @@ -140,12 +141,12 @@ class CompiledTemplateTests < Test::Unit::TestCase File::Stat.any_instance.expects(:mtime).times(windows ? 6 : 9).returns( *(windows ? [ t + 1.second, t + 1.second ] : [ t + 1.second, t + 1.second, t + 3.second ]) * 3) - assert !v.send(:template_changed_since?, @a, v.compile_time[a_n]) - assert !v.send(:template_changed_since?, @b, v.compile_time[b_n]) - assert v.send(:template_changed_since?, @s, v.compile_time[s_n]) unless windows - assert !v.send(:compile_template?, nil, @a, {}) - assert !v.send(:compile_template?, nil, @b, {}) - assert v.send(:compile_template?, nil, @s, {}) unless windows + assert !@handler.send(:template_changed_since?, @a, @handler.compile_time[a_n]) + assert !@handler.send(:template_changed_since?, @b, @handler.compile_time[b_n]) + assert @handler.send(:template_changed_since?, @s, @handler.compile_time[s_n]) unless windows + assert !@handler.send(:compile_template?, nil, @a, {}) + assert !@handler.send(:compile_template?, nil, @b, {}) + assert @handler.send(:compile_template?, nil, @s, {}) unless windows # Only the symlink template gets rendered at t+3 Time.stubs(:now).returns(t + 3.seconds) unless windows @@ -153,9 +154,9 @@ class CompiledTemplateTests < Test::Unit::TestCase v.send(:compile_and_render_template, @handler, '', @b) v.send(:compile_and_render_template, @handler, '', @s) unless windows # the symlink has changed since last compile - assert v.compile_time[a_n] < t + 3.seconds - assert v.compile_time[b_n] < t + 3.seconds - assert_equal v.compile_time[s_n], t + 3.seconds unless windows + assert @handler.compile_time[a_n] < t + 3.seconds + assert @handler.compile_time[b_n] < t + 3.seconds + assert_equal @handler.compile_time[s_n], t + 3.seconds unless windows FileUtils.touch @b # private methods template_changed_since? and compile_template? @@ -166,12 +167,12 @@ class CompiledTemplateTests < Test::Unit::TestCase File::Stat.any_instance.expects(:mtime).times(windows ? 6 : 12).returns( *(windows ? [ t + 1.second, t + 4.seconds ] : [ t + 1.second, t + 4.seconds, t + 3.second, t + 4.seconds ]) * 3) - assert !v.send(:template_changed_since?, @a, v.compile_time[a_n]) - assert v.send(:template_changed_since?, @b, v.compile_time[b_n]) - assert v.send(:template_changed_since?, @s, v.compile_time[s_n]) unless windows - assert !v.send(:compile_template?, nil, @a, {}) - assert v.send(:compile_template?, nil, @b, {}) - assert v.send(:compile_template?, nil, @s, {}) unless windows + assert !@handler.send(:template_changed_since?, @a, @handler.compile_time[a_n]) + assert @handler.send(:template_changed_since?, @b, @handler.compile_time[b_n]) + assert @handler.send(:template_changed_since?, @s, @handler.compile_time[s_n]) unless windows + assert !@handler.send(:compile_template?, nil, @a, {}) + assert @handler.send(:compile_template?, nil, @b, {}) + assert @handler.send(:compile_template?, nil, @s, {}) unless windows Time.expects(:now).times(windows ? 1 : 2).returns(t + 5.seconds) v.send(:compile_and_render_template, @handler, '', @a) @@ -179,20 +180,9 @@ class CompiledTemplateTests < Test::Unit::TestCase v.send(:compile_and_render_template, @handler, '', @s) unless windows # the file at the end of the symlink has changed since last compile # both the symlink and the file at the end of it should be recompiled - assert v.compile_time[a_n] < t + 5.seconds - assert_equal v.compile_time[b_n], t + 5.seconds - assert_equal v.compile_time[s_n], t + 5.seconds unless windows - end - end -end - -module ActionView - class Base - def compile_time - @@compile_time - end - def method_names - @@method_names + assert @handler.compile_time[a_n] < t + 5.seconds + assert_equal @handler.compile_time[b_n], t + 5.seconds + assert_equal @handler.compile_time[s_n], t + 5.seconds unless windows end end end -- cgit v1.2.3