From e5da852c365e3877ee57441b6fc6b336ab434817 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 8 Apr 2009 00:07:29 -0700 Subject: test_request: tests esoteric/rare REQUEST_URIs * Test for '*' in "OPTIONS * HTTP/1.1" for now (even though Rack doesn't like it). * Some clients can send absolute URIs, too --- test/unit/test_request.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/unit/test_request.rb b/test/unit/test_request.rb index 7a4b92b..dacbac0 100644 --- a/test/unit/test_request.rb +++ b/test/unit/test_request.rb @@ -33,6 +33,28 @@ class RequestTest < Test::Unit::TestCase @lint = Rack::Lint.new(@app) end + def test_options + client = MockRequest.new("OPTIONS * HTTP/1.1\r\n" \ + "Host: foo\r\n\r\n") + res = env = nil + assert_nothing_raised { env = @request.read(client) } + assert_equal '*', env['REQUEST_PATH'] + assert_equal '*', env['PATH_INFO'] + assert_equal '*', env['REQUEST_URI'] + + # assert_nothing_raised { res = @lint.call(env) } # fails Rack lint + end + + def test_full_url_path + client = MockRequest.new("GET http://e:3/x?y=z HTTP/1.1\r\n" \ + "Host: foo\r\n\r\n") + res = env = nil + assert_nothing_raised { env = @request.read(client) } + assert_equal '/x', env['REQUEST_PATH'] + assert_equal '/x', env['PATH_INFO'] + assert_nothing_raised { res = @lint.call(env) } + end + def test_rack_lint_get client = MockRequest.new("GET / HTTP/1.1\r\nHost: foo\r\n\r\n") res = env = nil -- cgit v1.2.3-24-ge0c7