From 32b8be95331928990a61a43023a343a0583b53c7 Mon Sep 17 00:00:00 2001 From: David Chelimsky Date: Wed, 23 Jun 2010 10:19:13 -0500 Subject: Expose view via the view() method in AV::TestCase::Behavior MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - was exposed as _view, which suggested it was private - left _view as an alias of view as not to break any extensions that are relying on _view [#4932 state:resolved] Signed-off-by: José Valim --- actionpack/lib/action_view/test_case.rb | 13 ++++++++----- actionpack/test/template/test_case_test.rb | 28 ++++++++++++++++------------ 2 files changed, 24 insertions(+), 17 deletions(-) (limited to 'actionpack') diff --git a/actionpack/lib/action_view/test_case.rb b/actionpack/lib/action_view/test_case.rb index 5abc59507f..757e4cf77c 100644 --- a/actionpack/lib/action_view/test_case.rb +++ b/actionpack/lib/action_view/test_case.rb @@ -99,8 +99,8 @@ module ActionView end def render(options = {}, local_assigns = {}, &block) - _view.assign(_assigns) - @rendered << output = _view.render(options, local_assigns, &block) + view.assign(_assigns) + @rendered << output = view.render(options, local_assigns, &block) output end @@ -146,8 +146,9 @@ module ActionView end end - def _view - @_view ||= begin + # The instance of ActionView::Base that is used by +render+. + def view + @view ||= begin view = ActionView::Base.new(ActionController::Base.view_paths, {}, @controller) view.singleton_class.send :include, _helpers view.singleton_class.send :include, @controller._router.url_helpers @@ -159,10 +160,11 @@ module ActionView end end + alias_method :_view, :view + EXCLUDE_IVARS = %w{ @_assertion_wrapped @_result - @_view @controller @layouts @locals @@ -174,6 +176,7 @@ module ActionView @routes @templates @test_passed + @view @view_context_class } diff --git a/actionpack/test/template/test_case_test.rb b/actionpack/test/template/test_case_test.rb index 4773eae039..a747f46527 100644 --- a/actionpack/test/template/test_case_test.rb +++ b/actionpack/test/template/test_case_test.rb @@ -37,8 +37,12 @@ module ActionView include SharedTests test_case = self - test "memoizes the _view" do - assert_same _view, _view + test "memoizes the view" do + assert_same view, view + end + + test "exposes view as _view for backwards compatibility" do + assert_same _view, view end test "works without testing a helper module" do @@ -61,13 +65,13 @@ module ActionView end test "delegates notice to request.flash" do - _view.request.flash.expects(:notice).with("this message") - _view.notice("this message") + view.request.flash.expects(:notice).with("this message") + view.notice("this message") end test "delegates alert to request.flash" do - _view.request.flash.expects(:alert).with("this message") - _view.alert("this message") + view.request.flash.expects(:alert).with("this message") + view.alert("this message") end end @@ -136,7 +140,7 @@ module ActionView helper HelperThatInvokesProtectAgainstForgery test "protect_from_forgery? in any helpers returns false" do - assert !_view.help_me + assert !view.help_me end end @@ -200,10 +204,10 @@ module ActionView assert_match /Hello: EloyHello: Manfred/, render(:file => 'test/list') end - test "is able to render partials from templates and also use instance variables after _view has been referenced" do + test "is able to render partials from templates and also use instance variables after view has been referenced" do @controller.controller_path = "test" - _view + view @customers = [stub(:name => 'Eloy'), stub(:name => 'Manfred')] assert_match /Hello: EloyHello: Manfred/, render(:file => 'test/list') @@ -229,19 +233,19 @@ module ActionView end class RenderTemplateTest < ActionView::TestCase - test "render template supports specifying partials" do + test "supports specifying partials" do controller.controller_path = "test" render(:template => "test/calling_partial_with_layout") assert_template :partial => "_partial_for_use_in_layout" end - test "render template supports specifying locals (passing)" do + test "supports specifying locals (passing)" do controller.controller_path = "test" render(:template => "test/calling_partial_with_layout") assert_template :partial => "_partial_for_use_in_layout", :locals => { :name => "David" } end - test "render template supports specifying locals (failing)" do + test "supports specifying locals (failing)" do controller.controller_path = "test" render(:template => "test/calling_partial_with_layout") assert_raise Test::Unit::AssertionFailedError, /Somebody else.*David/m do -- cgit v1.2.3