aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorPrathamesh Sonpatki <csonpatki@gmail.com>2015-12-04 08:33:21 +0530
committerPrathamesh Sonpatki <csonpatki@gmail.com>2015-12-04 13:13:25 +0530
commit1ee87e42caa832510dfb4a1cb6c7643620447166 (patch)
tree5fe0e339ede05280353f10c607c2762c16baab4f /actionpack/lib
parent8bdbf88dfd231f80b8e757b36e77ff72e6b6b83c (diff)
downloadrails-1ee87e42caa832510dfb4a1cb6c7643620447166.tar.gz
rails-1ee87e42caa832510dfb4a1cb6c7643620447166.tar.bz2
rails-1ee87e42caa832510dfb4a1cb6c7643620447166.zip
Add redirection path in the error message of assert_response if response is :redirect
- If the assert_response is checking for any non-redirect response like :success and actual response is :redirect then, the error message displayed was - Expected response to be a <success>, but was <302> - This commit adds the redirect path to the error message of assert_response if the response is :redirect. So above message is changed to - Expected response to be a <success>, but was a redirect to <http://test.host/posts/lol>
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/testing/assertions/response.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/testing/assertions/response.rb b/actionpack/lib/action_dispatch/testing/assertions/response.rb
index eab20b075d..5af052afb4 100644
--- a/actionpack/lib/action_dispatch/testing/assertions/response.rb
+++ b/actionpack/lib/action_dispatch/testing/assertions/response.rb
@@ -27,6 +27,8 @@ module ActionDispatch
# # Asserts that the response code was status code 401 (unauthorized)
# assert_response 401
def assert_response(type, message = nil)
+ message ||= generate_response_message(type)
+
if Symbol === type
if [:success, :missing, :redirect, :error].include?(type)
assert_predicate @response, RESPONSE_PREDICATES[type], message
@@ -82,6 +84,19 @@ module ActionDispatch
handle._compute_redirect_to_location(@request, fragment)
end
end
+
+ def generate_response_message(type)
+ message = "Expected response to be a <#{type}>, but was"
+
+ if @response.redirection?
+ redirect_is = normalize_argument_to_redirection(@response.location)
+ message << " a redirect to <#{redirect_is}>"
+ else
+ message << " <#{@response.response_code}>"
+ end
+
+ message
+ end
end
end
end