Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 5895

Show
Ignore:
Timestamp:
01/12/07 07:01:39 (2 years ago)
Author:
bitsweat
Message:

Set request.envREQUEST_URI? when absent.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/lib/action_controller/request.rb

    r5698 r5895  
    146146    end 
    147147 
    148     # Returns the request URI correctly, taking into account the idiosyncracies 
    149     # of the various servers
     148    # Return the request URI, accounting for server idiosyncracies. 
     149    # WEBrick includes the full URL. IIS leaves REQUEST_URI blank
    150150    def request_uri 
    151151      if uri = @env['REQUEST_URI'] 
    152         (%r{^\w+\://[^/]+(/.*|$)$} =~ uri) ? $1 : uri # Remove domain, which webrick puts into the request_uri. 
    153       else  # REQUEST_URI is blank under IIS - get this from PATH_INFO and SCRIPT_NAME 
     152        # Remove domain, which webrick puts into the request_uri. 
     153        (%r{^\w+\://[^/]+(/.*|$)$} =~ uri) ? $1 : uri 
     154      else 
     155        # Construct IIS missing REQUEST_URI from SCRIPT_NAME and PATH_INFO. 
    154156        script_filename = @env['SCRIPT_NAME'].to_s.match(%r{[^/]+$}) 
    155157        uri = @env['PATH_INFO'] 
     
    158160          uri << '?' << env_qs 
    159161        end 
    160         uri 
     162        @env['REQUEST_URI'] = uri 
    161163      end 
    162164    end 
  • trunk/actionpack/test/controller/request_test.rb

    r5664 r5895  
    175175    assert_equal "/path/of/some/uri", @request.path 
    176176 
     177    @request.set_REQUEST_URI nil 
    177178    @request.relative_url_root = nil 
    178179    @request.env['PATH_INFO'] = "/path/of/some/uri?mapped=1" 
     
    181182    assert_equal "/of/some/uri", @request.path 
    182183 
     184    @request.set_REQUEST_URI nil 
    183185    @request.relative_url_root = nil 
    184186    @request.env['PATH_INFO'] = "/path/of/some/uri" 
     
    187189    assert_equal "/path/of/some/uri", @request.path 
    188190 
     191    @request.set_REQUEST_URI nil 
    189192    @request.relative_url_root = nil 
    190193    @request.env['PATH_INFO'] = "/" 
     
    192195    assert_equal "/", @request.path 
    193196 
     197    @request.set_REQUEST_URI nil 
    194198    @request.relative_url_root = nil 
    195199    @request.env['PATH_INFO'] = "/?m=b" 
    196200    assert_equal "/?m=b", @request.request_uri 
    197201    assert_equal "/", @request.path 
    198      
     202 
     203    @request.set_REQUEST_URI nil 
    199204    @request.relative_url_root = nil 
    200205    @request.env['PATH_INFO'] = "/" 
    201206    @request.env['SCRIPT_NAME'] = "/dispatch.cgi" 
    202207    assert_equal "/", @request.request_uri 
    203     assert_equal "/", @request.path     
    204  
     208    assert_equal "/", @request.path 
     209 
     210    @request.set_REQUEST_URI nil 
    205211    @request.relative_url_root = nil 
    206212    @request.env['PATH_INFO'] = "/hieraki/" 
    207213    @request.env['SCRIPT_NAME'] = "/hieraki/dispatch.cgi" 
    208214    assert_equal "/hieraki/", @request.request_uri 
    209     assert_equal "/", @request.path     
    210                                                
     215    assert_equal "/", @request.path 
     216 
    211217    @request.set_REQUEST_URI '/hieraki/dispatch.cgi' 
    212218    @request.relative_url_root = '/hieraki' 
    213     assert_equal "/dispatch.cgi", @request.path     
     219    assert_equal "/dispatch.cgi", @request.path 
    214220    @request.relative_url_root = nil 
    215221 
    216222    @request.set_REQUEST_URI '/hieraki/dispatch.cgi' 
    217223    @request.relative_url_root = '/foo' 
    218     assert_equal "/hieraki/dispatch.cgi", @request.path     
     224    assert_equal "/hieraki/dispatch.cgi", @request.path 
    219225    @request.relative_url_root = nil 
    220226 
     
    227233    assert_equal "/some/path", @request.path 
    228234  end 
    229    
     235 
    230236 
    231237  def test_host_with_port