Permalink
Browse files

Expose view via the view() method in AV::TestCase::Behavior

- 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 <jose.valim@gmail.com>
  • Loading branch information...
1 parent 0e0df4b commit 32b8be95331928990a61a43023a343a0583b53c7 @dchelimsky dchelimsky committed with josevalim Jun 23, 2010
Showing with 24 additions and 17 deletions.
  1. +8 −5 actionpack/lib/action_view/test_case.rb
  2. +16 −12 actionpack/test/template/test_case_test.rb
@@ -99,8 +99,8 @@ def config
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 @@ def _render_partial(options)
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 @@ def _view
end
end
+ alias_method :_view, :view
+
EXCLUDE_IVARS = %w{
@_assertion_wrapped
@_result
- @_view
@controller
@layouts
@locals
@@ -174,6 +176,7 @@ def _view
@routes
@templates
@test_passed
+ @view
@view_context_class
}
@@ -37,8 +37,12 @@ class GeneralViewTest < ActionView::TestCase
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 @@ class GeneralViewTest < ActionView::TestCase
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 @@ def help_me
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 @@ def render_from_helper
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 @@ def render_from_helper
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

0 comments on commit 32b8be9

Please sign in to comment.