1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Allow to use mounted helpers in ActionView::TestCase

Similarly to 6525002, this allows to use routes helpers for mounted
helpers, but this time in ActionView::TestCase
This commit is contained in:
Piotr Sarnacki 2012-06-01 17:42:33 +02:00
parent afcc7cc301
commit 60b4290f1b
4 changed files with 24 additions and 1 deletions

View file

@ -1,5 +1,7 @@
## Rails 4.0.0 (unreleased) ##
* Allow to use mounted_helpers (helpers for accessing mounted engines) in ActionView::TestCase. *Piotr Sarnacki*
* Include mounted_helpers (helpers for accessing mounted engines) in ActionDispatch::IntegrationTest by default. *Piotr Sarnacki*
* Extracted redirect logic from `ActionController::ForceSSL::ClassMethods.force_ssl` into `ActionController::ForceSSL#force_ssl_redirect`

View file

@ -229,7 +229,8 @@ module ActionView
def method_missing(selector, *args)
if @controller.respond_to?(:_routes) &&
@controller._routes.named_routes.helpers.include?(selector)
( @controller._routes.named_routes.helpers.include?(selector) ||
@controller._routes.mounted_helpers.method_defined?(selector) )
@controller.__send__(selector, *args)
else
super

View file

@ -277,6 +277,7 @@ module ActionController
include ActionController::Testing
# This stub emulates the Railtie including the URL helpers from a Rails application
include SharedTestRoutes.url_helpers
include SharedTestRoutes.mounted_helpers
self.view_paths = FIXTURE_LOAD_PATH

View file

@ -222,6 +222,25 @@ module ActionView
end
end
test "is able to use mounted routes" do
with_routing do |set|
app = Class.new do
def self.routes
@routes ||= ActionDispatch::Routing::RouteSet.new
end
routes.draw { get "bar", :to => lambda {} }
def self.call(*)
end
end
set.draw { mount app => "/foo", :as => "foo_app" }
assert_equal '/foo/bar', foo_app.bar_path
end
end
test "named routes can be used from helper included in view" do
with_routing do |set|
set.draw { resources :contents }