aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch
diff options
context:
space:
mode:
authorWilson Bilkovich <wilsonb@gmail.com>2017-06-30 15:53:32 -0700
committerWilson Bilkovich <wilsonb@gmail.com>2017-06-30 15:53:32 -0700
commit250bc33233a253d58581b9ab58f4fc0b8dca5b15 (patch)
tree25525ef8350817447c90ffe73736755706be2adf /actionpack/test/dispatch
parentb38c370b0cbb6df0ba934d98311b3c7b1877429e (diff)
downloadrails-250bc33233a253d58581b9ab58f4fc0b8dca5b15.tar.gz
rails-250bc33233a253d58581b9ab58f4fc0b8dca5b15.tar.bz2
rails-250bc33233a253d58581b9ab58f4fc0b8dca5b15.zip
Properly register "custom" URL helpers as named helpers.
CustomUrlHelpers were introduced in ce7d5fb2e6, closing issue #22512. They currently register themselves in an ivar that is never accessed. This change removes the @custom_helpers special-case, and registers them the way named routes are normally handled. Without this, you can get route_defined?(:example_url) == false, while still being able to call url_helpers.example_url and example_path. Various popular gems such as 'rspec-rails' make use of route_defined?() when determining how to proxy method calls or whether to define a route.
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r--actionpack/test/dispatch/routing/custom_url_helpers_test.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/routing/custom_url_helpers_test.rb b/actionpack/test/dispatch/routing/custom_url_helpers_test.rb
index 338992dda5..cbbed66056 100644
--- a/actionpack/test/dispatch/routing/custom_url_helpers_test.rb
+++ b/actionpack/test/dispatch/routing/custom_url_helpers_test.rb
@@ -322,4 +322,10 @@ class TestCustomUrlHelpers < ActionDispatch::IntegrationTest
end
end
end
+
+ def test_defining_direct_url_registers_helper_method
+ assert_equal "http://www.example.com/basket", Routes.url_helpers.symbol_url
+ assert_equal true, Routes.named_routes.route_defined?(:symbol_url), "'symbol_url' named helper not found"
+ assert_equal true, Routes.named_routes.route_defined?(:symbol_path), "'symbol_path' named helper not found"
+ end
end