2009-05-01 19:03:46 -04:00
|
|
|
module ActionController
|
|
|
|
module Testing
|
2009-05-28 12:35:36 -04:00
|
|
|
extend ActiveSupport::Concern
|
2009-05-21 15:48:26 -04:00
|
|
|
|
2009-12-20 21:05:26 -05:00
|
|
|
include RackDelegation
|
2009-05-27 04:40:43 -04:00
|
|
|
|
2009-05-01 19:03:46 -04:00
|
|
|
# OMG MEGA HAX
|
2009-05-20 20:55:25 -04:00
|
|
|
def process_with_new_base_test(request, response)
|
2009-05-01 19:03:46 -04:00
|
|
|
@_request = request
|
|
|
|
@_response = response
|
2009-05-11 15:04:43 -04:00
|
|
|
@_response.request = request
|
2009-05-01 19:03:46 -04:00
|
|
|
ret = process(request.parameters[:action])
|
2010-01-16 18:21:46 -05:00
|
|
|
if cookies = @_request.env['action_dispatch.cookies']
|
|
|
|
cookies.write(@_response)
|
|
|
|
end
|
2009-05-21 23:22:18 -04:00
|
|
|
@_response.body ||= self.response_body
|
2009-05-11 13:57:59 -04:00
|
|
|
@_response.prepare!
|
2009-05-01 19:03:46 -04:00
|
|
|
set_test_assigns
|
|
|
|
ret
|
|
|
|
end
|
2009-05-28 10:49:02 -04:00
|
|
|
|
2009-05-01 19:03:46 -04:00
|
|
|
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
|
2009-05-21 15:48:26 -04:00
|
|
|
|
|
|
|
# TODO : Rewrite tests using controller.headers= to use Rack env
|
|
|
|
def headers=(new_headers)
|
|
|
|
@_response ||= ActionDispatch::Response.new
|
|
|
|
@_response.headers.replace(new_headers)
|
|
|
|
end
|
2009-05-25 12:05:58 -04:00
|
|
|
|
|
|
|
module ClassMethods
|
|
|
|
def before_filters
|
|
|
|
_process_action_callbacks.find_all{|x| x.kind == :before}.map{|x| x.name}
|
|
|
|
end
|
|
|
|
end
|
2009-05-01 19:03:46 -04:00
|
|
|
end
|
2009-05-21 23:22:18 -04:00
|
|
|
end
|