aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Rose <brian@heimidal.net>2010-07-16 15:26:21 -0600
committerJosé Valim <jose.valim@gmail.com>2010-07-21 22:07:40 +0200
commit622092d33e8d326217ab1ed6138e2c572c95b8ba (patch)
tree5054692034aa1c2b39e3633c5f8b223d591af1b0
parentd16c5cc99b4ac5a5517b643aabb3b31bf0f0f1b6 (diff)
downloadrails-622092d33e8d326217ab1ed6138e2c572c95b8ba.tar.gz
rails-622092d33e8d326217ab1ed6138e2c572c95b8ba.tar.bz2
rails-622092d33e8d326217ab1ed6138e2c572c95b8ba.zip
Fixed a globbed route issue where slashes were being escaped, causing assert_routing to fail. [#5135 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb3
-rw-r--r--actionpack/test/controller/test_test.rb7
2 files changed, 9 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 36c52eb65a..a9b97a17eb 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -414,7 +414,8 @@ module ActionDispatch
elsif value.is_a?(Array)
value.map { |v| Rack::Mount::Utils.escape_uri(v.to_param) }.join('/')
else
- Rack::Mount::Utils.escape_uri(value.to_param)
+ return nil unless param = value.to_param
+ param.split('/').map { |v| Rack::Mount::Utils.escape_uri(v) }.join("/")
end
end
{:parameterize => parameterize}
diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb
index f9fc7a0976..950ad9266f 100644
--- a/actionpack/test/controller/test_test.rb
+++ b/actionpack/test/controller/test_test.rb
@@ -461,6 +461,13 @@ XML
def test_assert_routing_in_module
assert_routing 'admin/user', :controller => 'admin/user', :action => 'index'
end
+
+ def test_assert_routing_with_glob
+ with_routing do |set|
+ set.draw { |map| match('*path' => "pages#show") }
+ assert_routing('/company/about', { :controller => 'pages', :action => 'show', :path => 'company/about' })
+ end
+ end
def test_params_passing
get :test_params, :page => {:name => "Page name", :month => '4', :year => '2004', :day => '6'}