diff options
Diffstat (limited to 'actionpack/lib/action_dispatch/testing/assertions')
| -rw-r--r-- | actionpack/lib/action_dispatch/testing/assertions/response.rb | 11 | ||||
| -rw-r--r-- | actionpack/lib/action_dispatch/testing/assertions/routing.rb | 8 | 
2 files changed, 12 insertions, 7 deletions
| diff --git a/actionpack/lib/action_dispatch/testing/assertions/response.rb b/actionpack/lib/action_dispatch/testing/assertions/response.rb index 13a72220b3..b6e21b0d28 100644 --- a/actionpack/lib/action_dispatch/testing/assertions/response.rb +++ b/actionpack/lib/action_dispatch/testing/assertions/response.rb @@ -3,6 +3,13 @@ module ActionDispatch    module Assertions      # A small suite of assertions that test responses from \Rails applications.      module ResponseAssertions +      RESPONSE_PREDICATES = { # :nodoc: +        success:  :successful?, +        missing:  :not_found?, +        redirect: :redirection?, +        error:    :server_error?, +      } +        # Asserts that the response is one of the following types:        #        # * <tt>:success</tt>   - Status code was in the 200-299 range @@ -20,11 +27,9 @@ module ActionDispatch        #   # assert that the response code was status code 401 (unauthorized)        #   assert_response 401        def assert_response(type, message = nil) -        message ||= "Expected response to be a <#{type}>, but was <#{@response.response_code}>" -          if Symbol === type            if [:success, :missing, :redirect, :error].include?(type) -            assert @response.send("#{type}?"), message +            assert_predicate @response, RESPONSE_PREDICATES[type], message            else              code = Rack::Utils::SYMBOL_TO_STATUS_CODE[type]              if code.nil? diff --git a/actionpack/lib/action_dispatch/testing/assertions/routing.rb b/actionpack/lib/action_dispatch/testing/assertions/routing.rb index c94eea9134..54e24ed6bf 100644 --- a/actionpack/lib/action_dispatch/testing/assertions/routing.rb +++ b/actionpack/lib/action_dispatch/testing/assertions/routing.rb @@ -86,8 +86,8 @@ module ActionDispatch          end          # Load routes.rb if it hasn't been loaded. -        generated_path, extra_keys = @routes.generate_extras(options, defaults) -        found_extras = options.reject { |k, _| ! extra_keys.include? k } +        generated_path, query_string_keys = @routes.generate_extras(options, defaults) +        found_extras = options.reject { |k, _| ! query_string_keys.include? k }          msg = message || sprintf("found extras <%s>, not <%s>", found_extras, extras)          assert_equal(extras, found_extras, msg) @@ -165,7 +165,7 @@ module ActionDispatch        # ROUTES TODO: These assertions should really work in an integration context        def method_missing(selector, *args, &block) -        if defined?(@controller) && @controller && @routes && @routes.named_routes.route_defined?(selector) +        if defined?(@controller) && @controller && defined?(@routes) && @routes && @routes.named_routes.route_defined?(selector)            @controller.send(selector, *args, &block)          else            super @@ -183,7 +183,7 @@ module ActionDispatch            end            # Assume given controller -          request = ActionController::TestRequest.new +          request = ActionController::TestRequest.create            if path =~ %r{://}              fail_on(URI::InvalidURIError, msg) do | 
