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
