diff options
Diffstat (limited to 'actionpack/test/assertions/response_assertions_test.rb')
-rw-r--r-- | actionpack/test/assertions/response_assertions_test.rb | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/actionpack/test/assertions/response_assertions_test.rb b/actionpack/test/assertions/response_assertions_test.rb new file mode 100644 index 0000000000..5e64cae7e2 --- /dev/null +++ b/actionpack/test/assertions/response_assertions_test.rb @@ -0,0 +1,63 @@ +require 'abstract_unit' +require 'action_dispatch/testing/assertions/response' + +module ActionDispatch + module Assertions + class ResponseAssertionsTest < ActiveSupport::TestCase + include ResponseAssertions + + FakeResponse = Struct.new(:response_code) do + [:success, :missing, :redirect, :error].each do |sym| + define_method("#{sym}?") do + sym == response_code + end + end + end + + def test_assert_response_predicate_methods + [:success, :missing, :redirect, :error].each do |sym| + @response = FakeResponse.new sym + assert_response sym + + assert_raises(Minitest::Assertion) { + assert_response :unauthorized + } + end + end + + def test_assert_response_fixnum + @response = FakeResponse.new 400 + assert_response 400 + + assert_raises(Minitest::Assertion) { + assert_response :unauthorized + } + + assert_raises(Minitest::Assertion) { + assert_response 500 + } + end + + def test_assert_response_sym_status + @response = FakeResponse.new 401 + assert_response :unauthorized + + assert_raises(Minitest::Assertion) { + assert_response :ok + } + + assert_raises(Minitest::Assertion) { + assert_response :success + } + end + + def test_assert_response_sym_typo + @response = FakeResponse.new 200 + + assert_raises(ArgumentError) { + assert_response :succezz + } + end + end + end +end |