aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-09-01 01:32:54 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-09-01 01:32:54 -0300
commitc47c1d206e87a6602300fc81d3094e1af01dc728 (patch)
tree61b591c2ad41fc5ad8ac36e665e6f03a38bec621 /actionpack/test/dispatch
parent74b23b9e4be99f1735812b6e58e800f987c3a8a2 (diff)
parentc4a83b5454a3516b630b38cd8e8472f2166fc986 (diff)
downloadrails-c47c1d206e87a6602300fc81d3094e1af01dc728.tar.gz
rails-c47c1d206e87a6602300fc81d3094e1af01dc728.tar.bz2
rails-c47c1d206e87a6602300fc81d3094e1af01dc728.zip
Merge pull request #19788 from cmdrclueless/actionpack_http_url_ipv6
Fix broken IPv6 addresses handling
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r--actionpack/test/dispatch/routing/ipv6_redirect_test.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/routing/ipv6_redirect_test.rb b/actionpack/test/dispatch/routing/ipv6_redirect_test.rb
new file mode 100644
index 0000000000..f1b2e8cfc7
--- /dev/null
+++ b/actionpack/test/dispatch/routing/ipv6_redirect_test.rb
@@ -0,0 +1,45 @@
+require 'abstract_unit'
+
+class IPv6IntegrationTest < ActionDispatch::IntegrationTest
+ Routes = ActionDispatch::Routing::RouteSet.new
+ include Routes.url_helpers
+
+ class ::BadRouteRequestController < ActionController::Base
+ include Routes.url_helpers
+ def index
+ render :text => foo_path
+ end
+
+ def foo
+ redirect_to :action => :index
+ end
+ end
+
+ Routes.draw do
+ get "/", :to => 'bad_route_request#index', :as => :index
+ get "/foo", :to => "bad_route_request#foo", :as => :foo
+ end
+
+ def _routes
+ Routes
+ end
+
+ APP = build_app Routes
+ def app
+ APP
+ end
+
+ test "bad IPv6 redirection" do
+ # def test_simple_redirect
+ request_env = {
+ 'REMOTE_ADDR' => 'fd07:2fa:6cff:2112:225:90ff:fec7:22aa',
+ 'HTTP_HOST' => '[fd07:2fa:6cff:2112:225:90ff:fec7:22aa]:3000',
+ 'SERVER_NAME' => '[fd07:2fa:6cff:2112:225:90ff:fec7:22aa]',
+ 'SERVER_PORT' => 3000 }
+
+ get '/foo', env: request_env
+ assert_response :redirect
+ assert_equal 'http://[fd07:2fa:6cff:2112:225:90ff:fec7:22aa]:3000/', redirect_to_url
+ end
+
+end