instance method assert_routing

Ruby on Rails 2.3.18

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Signature

assert_routing(path, options, defaults={}, extras={}, message=nil)

Asserts that path and options match both ways; in other words, it verifies that path generates options and then that options generates path. This essentially combines assert_recognizes and assert_generates into one step.

The extras hash allows you to specify options that would normally be provided as a query string to the action. The message parameter allows you to specify a custom error message to display upon failure.

Examples

# Assert a basic route: a controller with the default action (index)
assert_routing '/home', :controller => 'home', :action => 'index'

# Test a route generated with a specific controller, action, and parameter (id)
assert_routing '/entries/show/23', :controller => 'entries', :action => 'show', id => 23

# Assert a basic route (controller + default action), with an error message if it fails
assert_routing '/store', { :controller => 'store', :action => 'index' }, {}, {}, 'Route for store index not generated properly'

# Tests a route, providing a defaults hash
assert_routing 'controller/action/9', {:id => "9", :item => "square"}, {:controller => "controller", :action => "action"}, {}, {:item => "square"}

# Tests a route with a HTTP method
assert_routing { :method => 'put', :path => '/product/321' }, { :controller => "product", :action => "update", :id => "321" }

Parameters

path req
options req
defaults opt = {}
extras opt = {}
message opt = nil
Source
# File actionpack/lib/action_controller/assertions/routing_assertions.rb, line 120
      def assert_routing(path, options, defaults={}, extras={}, message=nil)
        assert_recognizes(options, path, extras, message)

        controller, default_controller = options[:controller], defaults[:controller]
        if controller && controller.include?(?/) && default_controller && default_controller.include?(?/)
          options[:controller] = "/#{controller}"
        end

        assert_generates(path.is_a?(Hash) ? path[:path] : path, options, defaults, extras, message)
      end

Defined in actionpack/lib/action_controller/assertions/routing_assertions.rb line 120 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionController::Assertions::RoutingAssertions

Type at least 2 characters to search.

↑↓ navigate · open · esc close