Merge pull request #34002 from gmcgibbon/fix_deeply_nested_scoped_root

Fix optionally scoped root route unscoped access
This commit is contained in:
Rafael França 2018-09-27 16:57:35 -04:00 committed by GitHub
commit 16e6d42b22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -402,7 +402,7 @@ module ActionDispatch
# for root cases, where the latter is the correct one.
def self.normalize_path(path)
path = Journey::Router::Utils.normalize_path(path)
path.gsub!(%r{/(\(+)/?}, '\1/') unless path =~ %r{^/\(+[^)]+\)$}
path.gsub!(%r{/(\(+)/?}, '\1/') unless path =~ %r{^/(\(+[^)]+\)){1,}$}
path
end

View File

@ -1382,6 +1382,22 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
assert_equal "projects#index", @response.body
end
def test_optionally_scoped_root_unscoped_access
draw do
scope "(:locale)" do
scope "(:platform)" do
scope "(:browser)" do
root to: "projects#index"
end
end
end
end
assert_equal "/", root_path
get "/"
assert_equal "projects#index", @response.body
end
def test_scope_with_format_option
draw do
get "direct/index", as: :no_format_direct, format: false