mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
stop passing recall to url_for
This commit is contained in:
parent
8e105a5538
commit
f3c1832ad4
2 changed files with 47 additions and 36 deletions
|
@ -348,8 +348,8 @@ module ActionDispatch
|
|||
end
|
||||
|
||||
module RoutingTestHelpers
|
||||
def url_for(set, options, recall = {})
|
||||
set.url_for options.merge(:only_path => true, :_recall => recall)
|
||||
def url_for(set, options)
|
||||
set.url_for options.merge(:only_path => true)
|
||||
end
|
||||
|
||||
def make_set(strict = true)
|
||||
|
|
|
@ -6,6 +6,7 @@ require 'active_support/core_ext/object/with_options'
|
|||
module ActionPack
|
||||
class URLForIntegrationTest < ActiveSupport::TestCase
|
||||
include RoutingTestHelpers
|
||||
include ActionDispatch::RoutingVerbs
|
||||
|
||||
Model = Struct.new(:to_param)
|
||||
|
||||
|
@ -61,8 +62,11 @@ module ActionPack
|
|||
root :to => "news#index"
|
||||
}
|
||||
|
||||
attr_reader :routes
|
||||
attr_accessor :controller
|
||||
|
||||
def setup
|
||||
@routes = ActionDispatch::Routing::RouteSet.new
|
||||
@routes = make_set false
|
||||
@routes.draw(&Mapping)
|
||||
end
|
||||
|
||||
|
@ -70,9 +74,9 @@ module ActionPack
|
|||
['/admin/users',[ { :use_route => 'admin_users' }]],
|
||||
['/admin/users',[ { :controller => 'admin/users' }]],
|
||||
['/admin/users',[ { :controller => 'admin/users', :action => 'index' }]],
|
||||
['/admin/users',[ { :action => 'index' }, { :controller => 'admin/users' }]],
|
||||
['/admin/users',[ { :controller => 'users', :action => 'index' }, { :controller => 'admin/accounts' }]],
|
||||
['/people',[ { :controller => '/people', :action => 'index' }, { :controller => 'admin/accounts' }]],
|
||||
['/admin/users',[ { :action => 'index' }, { :controller => 'admin/users', :action => 'index' }, '/admin/users']],
|
||||
['/admin/users',[ { :controller => 'users', :action => 'index' }, { :controller => 'admin/accounts', :action => 'show', :id => '1' }, '/admin/accounts/show/1']],
|
||||
['/people',[ { :controller => '/people', :action => 'index' }, {:controller=>"admin/accounts", :action=>"foo", :id=>"bar"}, '/admin/accounts/foo/bar']],
|
||||
|
||||
['/admin/posts',[ { :controller => 'admin/posts' }]],
|
||||
['/admin/posts/new',[ { :controller => 'admin/posts', :action => 'new' }]],
|
||||
|
@ -86,11 +90,11 @@ module ActionPack
|
|||
['/archive?year=january',[ { :controller => 'archive', :action => 'index', :year => 'january' }]],
|
||||
|
||||
['/people',[ { :controller => 'people', :action => 'index' }]],
|
||||
['/people',[ { :action => 'index' }, { :controller => 'people' }]],
|
||||
['/people',[ { :action => 'index' }, { :controller => 'people', :action => 'show', :id => '1' }]],
|
||||
['/people',[ { :controller => 'people', :action => 'index' }, { :controller => 'people', :action => 'show', :id => '1' }]],
|
||||
['/people',[ {}, { :controller => 'people', :action => 'index' }]],
|
||||
['/people/1',[ { :controller => 'people', :action => 'show' }, { :controller => 'people', :action => 'show', :id => '1' }]],
|
||||
['/people',[ { :action => 'index' }, { :controller => 'people', :action => 'index' }, '/people']],
|
||||
['/people',[ { :action => 'index' }, { :controller => 'people', :action => 'show', :id => '1' }, '/people/show/1']],
|
||||
['/people',[ { :controller => 'people', :action => 'index' }, { :controller => 'people', :action => 'show', :id => '1' }, '/people/show/1']],
|
||||
['/people',[ {}, { :controller => 'people', :action => 'index' }, '/people']],
|
||||
['/people/1',[ { :controller => 'people', :action => 'show' }, { :controller => 'people', :action => 'show', :id => '1' }, '/people/show/1']],
|
||||
['/people/new',[ { :use_route => 'new_person' }]],
|
||||
['/people/new',[ { :controller => 'people', :action => 'new' }]],
|
||||
['/people/1',[ { :use_route => 'person', :id => '1' }]],
|
||||
|
@ -98,11 +102,11 @@ module ActionPack
|
|||
['/people/1.xml',[ { :controller => 'people', :action => 'show', :id => '1', :format => 'xml' }]],
|
||||
['/people/1',[ { :controller => 'people', :action => 'show', :id => 1 }]],
|
||||
['/people/1',[ { :controller => 'people', :action => 'show', :id => Model.new('1') }]],
|
||||
['/people/1',[ { :action => 'show', :id => '1' }, { :controller => 'people', :action => 'index' }]],
|
||||
['/people/1',[ { :action => 'show', :id => 1 }, { :controller => 'people', :action => 'show', :id => '1' }]],
|
||||
['/people',[ { :controller => 'people', :action => 'index' }, { :controller => 'people', :action => 'show', :id => '1' }]],
|
||||
['/people/1',[ {}, { :controller => 'people', :action => 'show', :id => '1' }]],
|
||||
['/people/1',[ { :controller => 'people', :action => 'show' }, { :controller => 'people', :action => 'index', :id => '1' }]],
|
||||
['/people/1',[ { :action => 'show', :id => '1' }, { :controller => 'people', :action => 'index' }, '/people']],
|
||||
['/people/1',[ { :action => 'show', :id => 1 }, { :controller => 'people', :action => 'show', :id => '1' }, '/people/show/1']],
|
||||
['/people',[ { :controller => 'people', :action => 'index' }, { :controller => 'people', :action => 'show', :id => '1' }, '/people/show/1']],
|
||||
['/people/1',[ {}, { :controller => 'people', :action => 'show', :id => '1' }, '/people/show/1']],
|
||||
['/people/1',[ { :controller => 'people', :action => 'show' }, { :controller => 'people', :action => 'index', :id => '1' }, '/people/index/1']],
|
||||
['/people/1/edit',[ { :controller => 'people', :action => 'edit', :id => '1' }]],
|
||||
['/people/1/edit.xml',[ { :controller => 'people', :action => 'edit', :id => '1', :format => 'xml' }]],
|
||||
['/people/1/edit',[ { :use_route => 'edit_person', :id => '1' }]],
|
||||
|
@ -118,16 +122,15 @@ module ActionPack
|
|||
|
||||
['/project',[ { :controller => 'project', :action => 'index' }]],
|
||||
['/projects/1',[ { :controller => 'project', :action => 'index', :project_id => '1' }]],
|
||||
['/projects/1',[ { :controller => 'project', :action => 'index'}, {:project_id => '1' }]],
|
||||
['/projects/1',[ { :controller => 'project', :action => 'index'}, {:project_id => '1', :controller => 'project', :action => 'index' }, '/projects/1']],
|
||||
['/projects/1',[ { :use_route => 'project', :controller => 'project', :action => 'index', :project_id => '1' }]],
|
||||
['/projects/1',[ { :use_route => 'project', :controller => 'project', :action => 'index' }, { :project_id => '1' }]],
|
||||
['/projects/1',[ { :use_route => 'project', :controller => 'project', :action => 'index' }, { :controller => 'project', :action => 'index', :project_id => '1' }, '/projects/1']],
|
||||
|
||||
['/clients',[ { :controller => 'projects', :action => 'index' }]],
|
||||
['/clients?project_id=1',[ { :controller => 'projects', :action => 'index', :project_id => '1' }]],
|
||||
['/clients',[ { :controller => 'projects', :action => 'index' }, { :project_id => '1' }]],
|
||||
['/clients',[ { :action => 'index' }, { :controller => 'projects', :action => 'index', :project_id => '1' }]],
|
||||
['/clients',[ { :controller => 'projects', :action => 'index' }, { :project_id => '1', :controller => 'project', :action => 'index' }, '/projects/1']],
|
||||
|
||||
['/comment/20',[ { :id => 20 }, { :controller => 'comments', :action => 'show' }]],
|
||||
['/comment/20',[ { :id => 20 }, { :controller => 'comments', :action => 'show' }, '/comments/show']],
|
||||
['/comment/20',[ { :controller => 'comments', :id => 20, :action => 'show' }]],
|
||||
['/comments/boo',[ { :controller => 'comments', :action => 'boo' }]],
|
||||
|
||||
|
@ -144,24 +147,21 @@ module ActionPack
|
|||
['/notes',[ { :page_id => nil, :controller => 'notes' }]],
|
||||
['/notes',[ { :controller => 'notes' }]],
|
||||
['/notes/print',[ { :controller => 'notes', :action => 'print' }]],
|
||||
['/notes/print',[ {}, { :controller => 'notes', :action => 'print' }]],
|
||||
['/notes/print',[ {}, { :controller => 'notes', :action => 'print' }, '/notes/print']],
|
||||
|
||||
['/notes/index/1',[ { :controller => 'notes' }, { :controller => 'notes', :id => '1' }]],
|
||||
['/notes/index/1',[ { :controller => 'notes' }, { :controller => 'notes', :id => '1', :foo => 'bar' }]],
|
||||
['/notes/index/1',[ { :controller => 'notes' }, { :controller => 'notes', :id => '1' }]],
|
||||
['/notes/index/1',[ { :action => 'index' }, { :controller => 'notes', :id => '1' }]],
|
||||
['/notes/index/1',[ {}, { :controller => 'notes', :id => '1' }]],
|
||||
['/notes/show/1',[ {}, { :controller => 'notes', :action => 'show', :id => '1' }]],
|
||||
['/notes/index/1',[ { :controller => 'notes', :id => '1' }, { :foo => 'bar' }]],
|
||||
['/posts',[ { :controller => 'posts' }, { :controller => 'notes', :action => 'show', :id => '1' }]],
|
||||
['/notes/list',[ { :action => 'list' }, { :controller => 'notes', :action => 'show', :id => '1' }]],
|
||||
['/notes/index/1',[ { :controller => 'notes' }, { :controller => 'notes', :action => 'index', :id => '1' }, '/notes/index/1']],
|
||||
['/notes/index/1',[ { :controller => 'notes' }, { :controller => 'notes', :id => '1', :action => 'index' }, '/notes/index/1']],
|
||||
['/notes/index/1',[ { :action => 'index' }, { :controller => 'notes', :id => '1', :action => 'index' }, '/notes/index/1']],
|
||||
['/notes/index/1',[ {}, { :controller => 'notes', :id => '1', :action => 'index' }, '/notes/index/1']],
|
||||
['/notes/show/1',[ {}, { :controller => 'notes', :action => 'show', :id => '1' }, '/notes/show/1']],
|
||||
['/posts',[ { :controller => 'posts' }, { :controller => 'notes', :action => 'show', :id => '1' }, '/notes/show/1']],
|
||||
['/notes/list',[ { :action => 'list' }, { :controller => 'notes', :action => 'show', :id => '1' }, '/notes/show/1']],
|
||||
|
||||
['/posts/ping',[ { :controller => 'posts', :action => 'ping' }]],
|
||||
['/posts/show/1',[ { :controller => 'posts', :action => 'show', :id => '1' }]],
|
||||
['/posts',[ { :controller => 'posts' }]],
|
||||
['/posts',[ { :controller => 'posts', :action => 'index' }]],
|
||||
['/posts',[ { :controller => 'posts' }, { :controller => 'posts', :action => 'index' }]],
|
||||
['/posts/create',[ { :action => 'create' }, { :controller => 'posts' }]],
|
||||
['/posts/create',[ { :action => 'create' }, {:day=>nil, :month=>nil, :controller=>"posts", :action=>"show_date"}, '/blog']],
|
||||
['/posts?foo=bar',[ { :controller => 'posts', :foo => 'bar' }]],
|
||||
['/posts?foo%5B%5D=bar&foo%5B%5D=baz', [{ :controller => 'posts', :foo => ['bar', 'baz'] }]],
|
||||
['/posts?page=2', [{ :controller => 'posts', :page => 2 }]],
|
||||
|
@ -169,9 +169,20 @@ module ActionPack
|
|||
|
||||
['/news.rss', [{ :controller => 'news', :action => 'index', :format => 'rss' }]],
|
||||
].each_with_index do |(url, params), i|
|
||||
define_method("test_#{url.gsub(/\W/, '_')}_#{i}") do
|
||||
assert_equal url, url_for(@routes, *params), params.inspect
|
||||
end
|
||||
if params.length > 1
|
||||
hash, path_params, route = *params
|
||||
hash[:only_path] = true
|
||||
|
||||
define_method("test_#{url.gsub(/\W/, '_')}_#{i}") do
|
||||
get URI('http://test.host' + route.to_s)
|
||||
assert_equal path_params, controller.request.path_parameters
|
||||
assert_equal url, controller.url_for(hash), params.inspect
|
||||
end
|
||||
else
|
||||
define_method("test_#{url.gsub(/\W/, '_')}_#{i}") do
|
||||
assert_equal url, url_for(@routes, params.first), params.inspect
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue