summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-07-17 11:18:57 +0200
committerAzul <azul@leap.se>2014-07-17 11:18:57 +0200
commite8a3df62d14c8dd775811f4af885cf7e76d5d3f6 (patch)
tree99905fc826fbcdf0634be3b31945e6df8c7e7a1e
parentbb10a669e1129c662ba01f223bd5a0ee7f2a0344 (diff)
clean up error assertions in tests
We're not testing the redirects anymore. But the error messages should be pretty clear already. We can start testing redirects again once we redirect to different places for different actions.
-rw-r--r--app/controllers/sessions_controller.rb3
-rw-r--r--test/integration/api/smtp_cert_test.rb2
-rw-r--r--test/integration/api/srp_test.rb1
-rw-r--r--test/support/api_integration_test.rb5
-rw-r--r--test/support/assert_responses.rb19
-rw-r--r--test/support/auth_test_helper.rb20
-rw-r--r--test/support/rack_test.rb11
7 files changed, 22 insertions, 39 deletions
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 4818191..66eba40 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -19,8 +19,7 @@ class SessionsController < ApplicationController
# Warden will catch all 401s and run this instead:
#
def unauthenticated
- render json: {error: t(:not_authorized_login)},
- status: :unauthorized
+ login_required
end
#
diff --git a/test/integration/api/smtp_cert_test.rb b/test/integration/api/smtp_cert_test.rb
index aee52cf..b1bfd43 100644
--- a/test/integration/api/smtp_cert_test.rb
+++ b/test/integration/api/smtp_cert_test.rb
@@ -42,7 +42,7 @@ class SmtpCertTest < ApiIntegrationTest
test "fetching smtp certs requires email account" do
login
post '/1/smtp_cert', {}, RACK_ENV
- assert_json_response error: I18n.t(:not_authorized)
+ assert_access_denied
end
test "no anonymous smtp certs" do
diff --git a/test/integration/api/srp_test.rb b/test/integration/api/srp_test.rb
index 26adc8c..946450e 100644
--- a/test/integration/api/srp_test.rb
+++ b/test/integration/api/srp_test.rb
@@ -1,5 +1,4 @@
class SrpTest < RackTest
- include AssertResponses
teardown do
if @user
diff --git a/test/support/api_integration_test.rb b/test/support/api_integration_test.rb
index ccf7066..bd10f11 100644
--- a/test/support/api_integration_test.rb
+++ b/test/support/api_integration_test.rb
@@ -14,11 +14,6 @@ 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/assert_responses.rb b/test/support/assert_responses.rb
index 19c2768..1c9d49d 100644
--- a/test/support/assert_responses.rb
+++ b/test/support/assert_responses.rb
@@ -55,6 +55,25 @@ module AssertResponses
get_response.headers["Content-Disposition"]
end
+ def assert_login_required
+ assert_error_response :not_authorized_login, :unauthorized
+ end
+
+ def assert_access_denied
+ assert_error_response :not_authorized, :forbidden
+ end
+
+ def assert_error_response(key, status=nil)
+ message = I18n.t(key)
+ if content_type == 'application/json'
+ status ||= :unprocessable_entity
+ assert_json_response('error' => key.to_s, 'message' => message)
+ assert_response status
+ else
+ assert_equal({:alert => message}, flash.to_hash)
+ end
+ end
+
end
class ::ActionController::TestCase
diff --git a/test/support/auth_test_helper.rb b/test/support/auth_test_helper.rb
index 79d07d6..7af3341 100644
--- a/test/support/auth_test_helper.rb
+++ b/test/support/auth_test_helper.rb
@@ -19,26 +19,6 @@ module AuthTestHelper
return @current_user
end
- def assert_login_required
- assert_error_response :not_authorized_login, :unauthorized, login_url
- 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_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"
diff --git a/test/support/rack_test.rb b/test/support/rack_test.rb
index 83adf6c..2c9fa9a 100644
--- a/test/support/rack_test.rb
+++ b/test/support/rack_test.rb
@@ -3,6 +3,7 @@ require_relative 'assert_responses'
class RackTest < ActiveSupport::TestCase
include Rack::Test::Methods
include Warden::Test::Helpers
+ include AssertResponses
CONFIG_RU = (Rails.root + 'config.ru').to_s
OUTER_APP = Rack::Builder.parse_file(CONFIG_RU).first
@@ -11,16 +12,6 @@ class RackTest < ActiveSupport::TestCase
OUTER_APP
end
- def assert_access_denied
- assert_json_response('error' => I18n.t(:not_authorized))
- 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
# -> actionpack/lib/action_dispatch/testing/assertions/response.rb
def assert_response(type, message = nil)