summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)