提交 32b8be95 编写于 作者: D David Chelimsky 提交者: José Valim

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: NJosé Valim <jose.valim@gmail.com>
上级 0e0df4b0
......@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册