diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2013-03-03 19:18:01 +0000 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2013-03-03 19:18:01 +0000 |
commit | 86cf7a2d166430fac1611aa7593b52b46eeb9f70 (patch) | |
tree | 998de220aab255a787bfbcf21341e71f5b6e6edb /actionpack/test/dispatch | |
parent | 48c21e3255fa2f4b1875ca8616a5ad7706a7a4cb (diff) | |
download | rails-86cf7a2d166430fac1611aa7593b52b46eeb9f70.tar.gz rails-86cf7a2d166430fac1611aa7593b52b46eeb9f70.tar.bz2 rails-86cf7a2d166430fac1611aa7593b52b46eeb9f70.zip |
Use custom visitor class for optimized url helpers
Rather than trying to use gsub to remove the optional route segments,
which will fail with nested optional segments, use a custom visitor
class that returns a empty string for group nodes.
Closes #9524
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 89f406a3d0..2bf7056ff7 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -3198,6 +3198,7 @@ class TestOptimizedNamedRoutes < ActionDispatch::IntegrationTest app.draw do ok = lambda { |env| [200, { 'Content-Type' => 'text/plain' }, []] } get '/foo' => ok, as: :foo + get '/post(/:action(/:id))' => ok, as: :posts end end @@ -3215,6 +3216,11 @@ class TestOptimizedNamedRoutes < ActionDispatch::IntegrationTest test 'named route called on included module' do assert_equal '/foo', foo_path end + + test 'nested optional segments are removed' do + assert_equal '/post', Routes.url_helpers.posts_path + assert_equal '/post', posts_path + end end class TestNamedRouteUrlHelpers < ActionDispatch::IntegrationTest |