diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-04-08 19:01:11 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-04-08 19:01:11 -0300 |
commit | 041c2c879a3c4086ad3aa6d30fed1eede1d53c11 (patch) | |
tree | 45e13b95e9eedd643ec47a0e20355f40e0fbd1e2 /actionpack/test/journey | |
parent | 39c7cb20660de9ea95c35805c9dc802e6a63dad2 (diff) | |
parent | a77de09812eec5f342dd159f053038c6f67e6da4 (diff) | |
download | rails-041c2c879a3c4086ad3aa6d30fed1eede1d53c11.tar.gz rails-041c2c879a3c4086ad3aa6d30fed1eede1d53c11.tar.bz2 rails-041c2c879a3c4086ad3aa6d30fed1eede1d53c11.zip |
Merge pull request #19633 from y00rb/sort_router_parameters_duplicated_keys
avoid error when sort mixture keys in symbol and string
Diffstat (limited to 'actionpack/test/journey')
-rw-r--r-- | actionpack/test/journey/router_test.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/actionpack/test/journey/router_test.rb b/actionpack/test/journey/router_test.rb index 19c61b5914..a134e343cc 100644 --- a/actionpack/test/journey/router_test.rb +++ b/actionpack/test/journey/router_test.rb @@ -401,6 +401,33 @@ module ActionDispatch assert_equal({:id => 1, :relative_url_root => nil}, params) end + def test_generate_missing_keys_no_matches_different_format_keys + path = Path::Pattern.from_string '/:controller/:action/:name' + @router.routes.add_route @app, path, {}, {}, {} + primarty_parameters = { + :id => 1, + :controller => "tasks", + :action => "show", + :relative_url_root => nil + } + redirection_parameters = { + 'action'=>'show', + } + missing_key = 'name' + missing_parameters ={ + missing_key => "task_1" + } + request_parameters = primarty_parameters.merge(redirection_parameters).merge(missing_parameters) + + message = "No route matches #{Hash[request_parameters.sort_by{|k,v|k.to_s}].inspect} missing required keys: #{[missing_key.to_sym].inspect}" + + error = assert_raises(ActionController::UrlGenerationError) do + @formatter.generate( + nil, request_parameters, request_parameters) + end + assert_equal message, error.message + end + def test_generate_uses_recall_if_needed path = Path::Pattern.from_string '/:controller(/:action(/:id))' @router.routes.add_route @app, path, {}, {}, {} |