summary refs log tree commit
path: root/test/spec_file.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/spec_file.rb')
-rw-r--r--test/spec_file.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/spec_file.rb b/test/spec_file.rb
index 2d0919a9..3106e629 100644
--- a/test/spec_file.rb
+++ b/test/spec_file.rb
@@ -68,6 +68,11 @@ describe Rack::File do
     assert_match(res, /ruby/)
   end
 
+  it "serve uri with URL encoded null byte (%00) in filenames" do
+    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi/test%00")
+    res.must_be :bad_request?
+  end
+
   it "allow safe directory traversal" do
     req = Rack::MockRequest.new(file(DOCROOT))
 
@@ -237,4 +242,10 @@ describe Rack::File do
     res['Content-Type'].must_equal nil
   end
 
+  it "return error when file not found for head request" do
+    res = Rack::MockRequest.new(file(DOCROOT)).head("/cgi/missing")
+    res.must_be :not_found?
+    res.body.must_be :empty?
+  end
+
 end