aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorJamis Buck <jamis@37signals.com>2006-06-06 19:09:56 +0000
committerJamis Buck <jamis@37signals.com>2006-06-06 19:09:56 +0000
commit4e3543b46749a83e4ccf1e9346b4dfe6d1a03233 (patch)
tree62319fd9667532ebef079a7cf8e3afabf61cc90a /actionpack/test
parente768dc694d917cb2e1f88839a8a616fae7f7719d (diff)
downloadrails-4e3543b46749a83e4ccf1e9346b4dfe6d1a03233.tar.gz
rails-4e3543b46749a83e4ccf1e9346b4dfe6d1a03233.tar.bz2
rails-4e3543b46749a83e4ccf1e9346b4dfe6d1a03233.zip
Make sure named routes are never generated relative to some containing module
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4442 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/routing_test.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/actionpack/test/controller/routing_test.rb b/actionpack/test/controller/routing_test.rb
index d33cf3c6b3..970bdc4a1a 100644
--- a/actionpack/test/controller/routing_test.rb
+++ b/actionpack/test/controller/routing_test.rb
@@ -1372,6 +1372,29 @@ class RouteSetTest < Test::Unit::TestCase
{:controller => "welcome", :action => "get", :id => "7"})
assert_equal "/about", url
end
+
+ def test_generate_extras
+ set.draw { |map| map.connect ':controller/:action/:id' }
+
+ args = { :controller => "foo", :action => "bar", :id => "7", :x => "y" }
+ assert_equal "/foo/bar/7?x=y", set.generate(args)
+ assert_equal ["/foo/bar/7", [:x]], set.generate_extras(args)
+ assert_equal [:x], set.extra_keys(args)
+ end
+
+ def test_named_routes_are_never_relative_to_modules
+ set.draw do |map|
+ map.connect "/connection/manage/:action", :controller => 'connection/manage'
+ map.connect "/connection/connection", :controller => "connection/connection"
+ map.family_connection "/connection", :controller => "connection"
+ end
+
+ url = set.generate({:controller => "connection"}, {:controller => 'connection/manage'})
+ assert_equal "/connection/connection", url
+
+ url = set.generate({:use_route => :family_connection, :controller => "connection"}, {:controller => 'connection/manage'})
+ assert_equal "/connection", url
+ end
end
class RoutingTest < Test::Unit::TestCase