diff options
Diffstat (limited to 'railties')
-rw-r--r-- | railties/test/railties/mounted_engine_routes_test.rb | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/railties/test/railties/mounted_engine_routes_test.rb b/railties/test/railties/mounted_engine_routes_test.rb index 18789ab9e3..1a0f5f2c21 100644 --- a/railties/test/railties/mounted_engine_routes_test.rb +++ b/railties/test/railties/mounted_engine_routes_test.rb @@ -70,7 +70,7 @@ module ApplicationTests end def url_for_engine_route - render :text => url_for(:controller => "posts", :action => "index", :user => "john", :only_path => true) + render :text => url_for(:controller => "posts", :action => "index", :user => "john", :only_path => true, :routes => Blog::Engine.routes) end end RUBY @@ -85,24 +85,47 @@ module ApplicationTests end end + def reset_script_name! + Rails.application.routes.default_url_options = {} + end + + def script_name(script_name) + Rails.application.routes.default_url_options = {:script_name => script_name} + end + test "routes generation in engine and application" do # test generating engine's route from engine get "/john/blog/posts" assert_equal "/john/blog/posts/1", last_response.body + # test generating engine's route from engine with default_url_options + script_name "/foo" + get "/john/blog/posts", {}, 'SCRIPT_NAME' => "/foo" + assert_equal "/foo/john/blog/posts/1", last_response.body + reset_script_name! + # test generating engine's route from application get "/engine_route" assert_equal "/anonymous/blog/posts", last_response.body get "/url_for_engine_route" assert_equal "/john/blog/posts", last_response.body + # test generating engine's route from application with default_url_options + script_name "/foo" + get "/engine_route", {}, 'SCRIPT_NAME' => "/foo" + assert_equal "/foo/anonymous/blog/posts", last_response.body + script_name "/foo" + get "/url_for_engine_route", {}, 'SCRIPT_NAME' => "/foo" + assert_equal "/foo/john/blog/posts", last_response.body + reset_script_name! + # test generating application's route from engine get "/someone/blog/generate_application_route" assert_equal "/", last_response.body - # with script_name - Rails.application.default_url_options = {:script_name => "/foo"} - get "/someone/blog/generate_application_route", {}, "SCRIPT_NAME" => "/foo" + # test generating application's route from engine with default_url_options + script_name "/foo" + get "/someone/blog/generate_application_route", {}, 'SCRIPT_NAME' => '/foo' assert_equal "/foo/", last_response.body end end |