diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-12-28 16:33:40 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-12-28 16:33:40 -0800 |
commit | 50af25ba87a0814d9c38984218c5e157a07f86cd (patch) | |
tree | eb12bd3ffbf4e0a1238e0e4e114547cce798a93f | |
parent | 7a80ac0162ae84cf22c91646690ad18916a66274 (diff) | |
download | rails-50af25ba87a0814d9c38984218c5e157a07f86cd.tar.gz rails-50af25ba87a0814d9c38984218c5e157a07f86cd.tar.bz2 rails-50af25ba87a0814d9c38984218c5e157a07f86cd.zip |
last named route wins. fixes #4164
This differs from route recognition where first recognized route wins.
This will not be supported in Rails 4.0 so that route recognition and
generation rules are consistent.
-rw-r--r-- | actionpack/test/controller/base_test.rb | 40 | ||||
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 2 |
2 files changed, 41 insertions, 1 deletions
diff --git a/actionpack/test/controller/base_test.rb b/actionpack/test/controller/base_test.rb index 9c22a4e7e0..ec8e5521c4 100644 --- a/actionpack/test/controller/base_test.rb +++ b/actionpack/test/controller/base_test.rb @@ -197,6 +197,46 @@ class UrlOptionsTest < ActionController::TestCase rescue_action_in_public! end + def test_path_generation_priority + rs = ActionDispatch::Routing::RouteSet.new + rs.draw do + resources :models + match 'special' => 'model#new', :as => :new_model + end + + url_params = { + :action => "new", + :controller => "model", + :use_route => "new_model", + :only_path => true } + + x = Struct.new(:rs, :params, :tc) { + include rs.named_routes.module + public :new_model_path + + def url_for(*args) + tc.assert_equal([params], args) + rs.url_for(*args) + end + }.new(rs, url_params, self) + end + + def test_url_for_params_priority + rs = ActionDispatch::Routing::RouteSet.new + rs.draw do + resources :models + match 'special' => 'model#new', :as => :new_model + end + + url_params = { + :action => "new", + :controller => "model", + :use_route => "new_model", + :only_path => true } + + assert_equal '/special', rs.url_for(url_params) + end + def test_url_options_override with_routing do |set| set.draw do diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 5325f81364..67556e5253 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -2297,7 +2297,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest def test_named_routes_collision_is_avoided_unless_explicitly_given_as assert_equal "/c/1", routes_collision_path(1) - assert_equal "/fc", routes_forced_collision_path + assert_equal "/forced_collision", routes_forced_collision_path end def test_redirect_argument_error |