about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-04-08 00:07:29 -0700
committerEric Wong <normalperson@yhbt.net>2009-04-08 00:25:09 -0700
commite5da852c365e3877ee57441b6fc6b336ab434817 (patch)
treefcf8ddba236cc867c922d76f9dec8460b531bbb2
parent8041d309129049b1a9e7fa3e64122a5be3f0667d (diff)
downloadunicorn-e5da852c365e3877ee57441b6fc6b336ab434817.tar.gz
* Test for '*' in "OPTIONS * HTTP/1.1" for now (even though
  Rack doesn't like it).

* Some clients can send absolute URIs, too
-rw-r--r--test/unit/test_request.rb22
1 files changed, 22 insertions, 0 deletions
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