40 lines
1.0 KiB
Ruby
40 lines
1.0 KiB
Ruby
module ActionController
|
|
module Testing
|
|
extend ActiveSupport::Concern
|
|
|
|
include RackConvenience
|
|
|
|
# OMG MEGA HAX
|
|
def process_with_new_base_test(request, response)
|
|
@_request = request
|
|
@_response = response
|
|
@_response.request = request
|
|
ret = process(request.parameters[:action])
|
|
@_response.body ||= self.response_body
|
|
@_response.prepare!
|
|
set_test_assigns
|
|
ret
|
|
end
|
|
|
|
def set_test_assigns
|
|
@assigns = {}
|
|
(instance_variable_names - self.class.protected_instance_variables).each do |var|
|
|
name, value = var[1..-1], instance_variable_get(var)
|
|
@assigns[name] = value
|
|
end
|
|
end
|
|
|
|
# TODO : Rewrite tests using controller.headers= to use Rack env
|
|
def headers=(new_headers)
|
|
@_response ||= ActionDispatch::Response.new
|
|
@_response.headers.replace(new_headers)
|
|
end
|
|
|
|
module ClassMethods
|
|
def before_filters
|
|
_process_action_callbacks.find_all{|x| x.kind == :before}.map{|x| x.name}
|
|
end
|
|
end
|
|
end
|
|
end
|