summaryrefslogtreecommitdiff
path: root/test/support
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-07-10 12:13:30 +0200
committerAzul <azul@leap.se>2014-07-14 10:49:39 +0200
commit60052d15ca02b1c40ed265bed6515880d2851b8f (patch)
treee6946d2c25a04161c4f3003b1ef66ab9376938f4 /test/support
parent091793265e23452890c6ca27fc64feb54df2ad0b (diff)
clean up and simplify error responses and test code
Diffstat (limited to 'test/support')
-rw-r--r--test/support/api_integration_test.rb5
-rw-r--r--test/support/auth_test_helper.rb34
-rw-r--r--test/support/rack_test.rb7
3 files changed, 29 insertions, 17 deletions
diff --git a/test/support/api_integration_test.rb b/test/support/api_integration_test.rb
index bd10f11..ccf7066 100644
--- a/test/support/api_integration_test.rb
+++ b/test/support/api_integration_test.rb
@@ -14,6 +14,11 @@ class ApiIntegrationTest < ActionDispatch::IntegrationTest
@token.save
end
+ def assert_login_required
+ assert_equal 401, get_response.status
+ assert_json_response error: I18n.t(:not_authorized_login)
+ end
+
teardown do
if @user && @user.persisted?
Identity.destroy_all_for @user
diff --git a/test/support/auth_test_helper.rb b/test/support/auth_test_helper.rb
index 38c2ea1..79d07d6 100644
--- a/test/support/auth_test_helper.rb
+++ b/test/support/auth_test_helper.rb
@@ -20,28 +20,30 @@ module AuthTestHelper
end
def assert_login_required
- assert_access_denied(true, false)
+ assert_error_response :not_authorized_login, :unauthorized, login_url
end
- def assert_access_denied(denied = true, logged_in = true)
- if denied
- if @response.content_type == 'application/json'
- assert_json_response('error' => I18n.t(:not_authorized))
- assert_response :unprocessable_entity
- else
- if logged_in
- assert_equal({:alert => I18n.t(:not_authorized)}, flash.to_hash)
- assert_redirected_to home_url
- else
- assert_equal({:alert => I18n.t(:not_authorized_login)}, flash.to_hash)
- assert_redirected_to login_url
- end
- end
+ def assert_access_denied
+ assert_error_response :not_authorized, :forbidden, home_url
+ end
+
+ def assert_error_response(message, status=nil, redirect=nil)
+ message = I18n.t(message) if message.is_a? Symbol
+ if @response.content_type == 'application/json'
+ status ||= :unprocessable_entity
+ assert_json_response('error' => message)
+ assert_response status
else
- assert flash[:alert].blank?
+ assert_equal({:alert => message}, flash.to_hash)
+ assert_redirected_to redirect
end
end
+ def assert_access_granted
+ assert flash[:alert].blank?,
+ "expected to have access but there was a flash alert"
+ end
+
def expect_logout
expect_warden_logout
@token.expects(:destroy) if @token
diff --git a/test/support/rack_test.rb b/test/support/rack_test.rb
index 806339a..83adf6c 100644
--- a/test/support/rack_test.rb
+++ b/test/support/rack_test.rb
@@ -13,7 +13,12 @@ class RackTest < ActiveSupport::TestCase
def assert_access_denied
assert_json_response('error' => I18n.t(:not_authorized))
- assert_response :unprocessable_entity
+ assert_response :forbidden
+ end
+
+ def assert_login_required
+ assert_json_response('error' => I18n.t(:not_authorized_login))
+ assert_response :unauthorized
end
# inspired by rails 4