mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
131 lines
4.5 KiB
Ruby
131 lines
4.5 KiB
Ruby
module ActionDispatch
|
|
# Integration test methods such as ActionDispatch::Integration::Session#get
|
|
# and ActionDispatch::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
|