module ActionView::TestCase::Behavior
Constants
- INTERNAL_IVARS
Attributes
controller[RW]
output_buffer[RW]
rendered[RW]
request[RW]
Public Instance Methods
_routes()
click to toggle source
# File lib/action_view/test_case.rb, line 135 def _routes @controller._routes if @controller.respond_to?(:_routes) end
_test_case()
click to toggle source
# File lib/action_view/test_case.rb, line 174 def _test_case controller._test_case end
config()
click to toggle source
# File lib/action_view/test_case.rb, line 121 def config @controller.config if @controller.respond_to?(:config) end
protect_against_forgery?()
click to toggle source
# File lib/action_view/test_case.rb, line 170 def protect_against_forgery? false end
render(options = {}, local_assigns = {}, &block)
click to toggle source
# File lib/action_view/test_case.rb, line 125 def render(options = {}, local_assigns = {}, &block) view.assign(view_assigns) @rendered << output = view.render(options, local_assigns, &block) output end
rendered_views()
click to toggle source
# File lib/action_view/test_case.rb, line 131 def rendered_views @_rendered_views ||= RenderedViewsCollection.new end
setup_with_controller()
click to toggle source
# File lib/action_view/test_case.rb, line 107 def setup_with_controller controller_class = Class.new(ActionView::TestCase::TestController) @controller = controller_class.new @request = @controller.request @view_flow = ActionView::OutputFlow.new # empty string ensures buffer has UTF-8 encoding as # new without arguments returns ASCII-8BIT encoded buffer like String#new @output_buffer = ActiveSupport::SafeBuffer.new "" @rendered = +"" test_case_instance = self controller_class.define_method(:_test_case) { test_case_instance } end
Private Instance Methods
_user_defined_ivars()
click to toggle source
# File lib/action_view/test_case.rb, line 250 def _user_defined_ivars instance_variables - INTERNAL_IVARS end
document_root_element()
click to toggle source
Need to experiment if this priority is the best one: rendered => #output_buffer
# File lib/action_view/test_case.rb, line 182 def document_root_element Nokogiri::HTML::Document.parse(@rendered.blank? ? @output_buffer : @rendered).root end
method_missing(selector, *args)
click to toggle source
Calls superclass method
# File lib/action_view/test_case.rb, line 264 def method_missing(selector, *args) begin routes = @controller.respond_to?(:_routes) && @controller._routes rescue # Don't call routes, if there is an error on _routes call end if routes && (routes.named_routes.route_defined?(selector) || routes.mounted_helpers.method_defined?(selector)) @controller.__send__(selector, *args) else super end end
respond_to_missing?(name, include_private = false)
click to toggle source
# File lib/action_view/test_case.rb, line 280 def respond_to_missing?(name, include_private = false) begin routes = defined?(@controller) && @controller.respond_to?(:_routes) && @controller._routes rescue # Don't call routes, if there is an error on _routes call end routes && (routes.named_routes.route_defined?(name) || routes.mounted_helpers.method_defined?(name)) end
view()
click to toggle source
The instance of ActionView::Base that is used by
render
.
# File lib/action_view/test_case.rb, line 206 def view @view ||= begin view = @controller.view_context view.singleton_class.include(_helpers) view.extend(Locals) view.rendered_views = rendered_views view.output_buffer = output_buffer view end end
Also aliased as: _view
view_assigns()
click to toggle source
Returns a Hash of instance variables and their values, as defined by the user in the test case, which are then assigned to the view being rendered. This is generally intended for internal use and extension frameworks.
# File lib/action_view/test_case.rb, line 258 def view_assigns Hash[_user_defined_ivars.map do |ivar| [ivar[1..-1].to_sym, instance_variable_get(ivar)] end] end