mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
a8b75c480f
Some functional tests will need to be updated if they are relying on preprocessed data on the response.
131 lines
4.5 KiB
Ruby
131 lines
4.5 KiB
Ruby
module ActionDispatch
|
|
# Integration test methods such as ActionController::Integration::Session#get
|
|
# and ActionController::Integration::Session#post return objects of class
|
|
# TestResponse, which represent the HTTP response results of the requested
|
|
# controller actions.
|
|
#
|
|
# See Response for more information on controller response objects.
|
|
class TestResponse < Response
|
|
def self.from_response(response)
|
|
new.tap do |resp|
|
|
resp.status = response.status
|
|
resp.headers = response.headers
|
|
resp.body = response.body
|
|
end
|
|
end
|
|
|
|
module DeprecatedHelpers
|
|
def template
|
|
ActiveSupport::Deprecation.warn("response.template has been deprecated. Use controller.template instead", caller)
|
|
@template
|
|
end
|
|
attr_writer :template
|
|
|
|
def session
|
|
ActiveSupport::Deprecation.warn("response.session has been deprecated. Use request.session instead", caller)
|
|
@request.session
|
|
end
|
|
|
|
def assigns
|
|
ActiveSupport::Deprecation.warn("response.assigns has been deprecated. Use controller.assigns instead", caller)
|
|
@template.controller.assigns
|
|
end
|
|
|
|
def layout
|
|
ActiveSupport::Deprecation.warn("response.layout has been deprecated. Use template.layout instead", caller)
|
|
@template.layout
|
|
end
|
|
|
|
def redirect_url_match?(pattern)
|
|
::ActiveSupport::Deprecation.warn("response.redirect_url_match? is deprecated. Use assert_match(/foo/, response.redirect_url) instead", caller)
|
|
return false if redirect_url.nil?
|
|
p = Regexp.new(pattern) if pattern.class == String
|
|
p = pattern if pattern.class == Regexp
|
|
return false if p.nil?
|
|
p.match(redirect_url) != nil
|
|
end
|
|
|
|
# Returns the template of the file which was used to
|
|
# render this response (or nil)
|
|
def rendered
|
|
ActiveSupport::Deprecation.warn("response.rendered has been deprecated. Use tempate.rendered instead", caller)
|
|
@template.instance_variable_get(:@_rendered)
|
|
end
|
|
|
|
# A shortcut to the flash. Returns an empty hash if no session flash exists.
|
|
def flash
|
|
ActiveSupport::Deprecation.warn("response.flash has been deprecated. Use request.flash instead", caller)
|
|
request.session['flash'] || {}
|
|
end
|
|
|
|
# Do we have a flash?
|
|
def has_flash?
|
|
ActiveSupport::Deprecation.warn("response.has_flash? has been deprecated. Use flash.any? instead", caller)
|
|
!flash.empty?
|
|
end
|
|
|
|
# Do we have a flash that has contents?
|
|
def has_flash_with_contents?
|
|
ActiveSupport::Deprecation.warn("response.has_flash_with_contents? has been deprecated. Use flash.any? instead", caller)
|
|
!flash.empty?
|
|
end
|
|
|
|
# Does the specified flash object exist?
|
|
def has_flash_object?(name=nil)
|
|
ActiveSupport::Deprecation.warn("response.has_flash_object? has been deprecated. Use flash[name] instead", caller)
|
|
!flash[name].nil?
|
|
end
|
|
|
|
# Does the specified object exist in the session?
|
|
def has_session_object?(name=nil)
|
|
ActiveSupport::Deprecation.warn("response.has_session_object? has been deprecated. Use session[name] instead", caller)
|
|
!session[name].nil?
|
|
end
|
|
|
|
# A shortcut to the template.assigns
|
|
def template_objects
|
|
ActiveSupport::Deprecation.warn("response.template_objects has been deprecated. Use tempate.assigns instead", caller)
|
|
@template.assigns || {}
|
|
end
|
|
|
|
# Does the specified template object exist?
|
|
def has_template_object?(name=nil)
|
|
ActiveSupport::Deprecation.warn("response.has_template_object? has been deprecated. Use tempate.assigns[name].nil? instead", caller)
|
|
!template_objects[name].nil?
|
|
end
|
|
|
|
# Returns binary content (downloadable file), converted to a String
|
|
def binary_content
|
|
ActiveSupport::Deprecation.warn("response.binary_content has been deprecated. Use response.body instead", caller)
|
|
body
|
|
end
|
|
end
|
|
include DeprecatedHelpers
|
|
|
|
# Was the response successful?
|
|
def success?
|
|
(200..299).include?(response_code)
|
|
end
|
|
|
|
# Was the URL not found?
|
|
def missing?
|
|
response_code == 404
|
|
end
|
|
|
|
# Were we redirected?
|
|
def redirect?
|
|
(300..399).include?(response_code)
|
|
end
|
|
|
|
# Was there a server-side error?
|
|
def error?
|
|
(500..599).include?(response_code)
|
|
end
|
|
alias_method :server_error?, :error?
|
|
|
|
# Was there a client client?
|
|
def client_error?
|
|
(400..499).include?(response_code)
|
|
end
|
|
end
|
|
end
|