From 6efb849b32f672d9c26f36d2c823b134f49bd892 Mon Sep 17 00:00:00 2001 From: Ryan McGeary Date: Mon, 6 Feb 2012 17:47:17 -0500 Subject: Fixed force_ssl redirects to include original query params `ActionController.force_ssl` redirects http URLs to their https equivalent; however, when a URL contains a query string, the resulting redirect lacked the original query string. Conflicts: actionpack/lib/action_controller/metal/force_ssl.rb --- actionpack/test/controller/force_ssl_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'actionpack/test') diff --git a/actionpack/test/controller/force_ssl_test.rb b/actionpack/test/controller/force_ssl_test.rb index 3ea3c06ac4..b681a19fe0 100644 --- a/actionpack/test/controller/force_ssl_test.rb +++ b/actionpack/test/controller/force_ssl_test.rb @@ -50,6 +50,12 @@ class ForceSSLControllerLevelTest < ActionController::TestCase assert_equal "https://test.host/force_ssl_controller_level/banana", redirect_to_url end + def test_banana_redirects_to_https_with_extra_params + get :banana, :token => "secret" + assert_response 301 + assert_equal "https://test.host/force_ssl_controller_level/banana?token=secret", redirect_to_url + end + def test_cheeseburger_redirects_to_https get :cheeseburger assert_response 301 -- cgit v1.2.3 From 30e5503d004971a8c7ddb039f9023dca3a6bdcd7 Mon Sep 17 00:00:00 2001 From: Ryan McGeary Date: Tue, 7 Feb 2012 11:56:26 -0500 Subject: Added unit test to cover changes to RouteSet.url_for ActionDispatch::Routing::RouteSet.url_for now handles passing params through to ActionDispatch::Http::Url.url_for Conflicts: actionpack/test/controller/base_test.rb --- actionpack/test/controller/base_test.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'actionpack/test') diff --git a/actionpack/test/controller/base_test.rb b/actionpack/test/controller/base_test.rb index 70e03d24ea..791edb9069 100644 --- a/actionpack/test/controller/base_test.rb +++ b/actionpack/test/controller/base_test.rb @@ -158,6 +158,22 @@ class UrlOptionsTest < ActionController::TestCase rescue_action_in_public! end + def test_url_for_query_params_included + rs = ActionDispatch::Routing::RouteSet.new + rs.draw do + match 'home' => 'pages#home' + end + + options = { + :action => "home", + :controller => "pages", + :only_path => true, + :params => { "token" => "secret" } + } + + assert_equal '/home?token=secret', rs.url_for(options) + end + def test_url_options_override with_routing do |set| set.draw do -- cgit v1.2.3