提交 60b4290f 编写于 作者: P Piotr Sarnacki

Allow to use mounted helpers in ActionView::TestCase

Similarly to 65250022, this allows to use routes helpers for mounted
helpers, but this time in ActionView::TestCase
上级 afcc7cc3
## 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`
......
......@@ -229,7 +229,8 @@ def _routes
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
......
......@@ -277,6 +277,7 @@ class Base
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
......
......@@ -222,6 +222,25 @@ class ATestHelperTest < ActionView::TestCase
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 }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册