summaryrefslogtreecommitdiff
path: root/test/spec_request.rb
diff options
context:
space:
mode:
authorLenny Marks <lenny@aps.org>2014-03-27 16:34:42 -0400
committerJames Tucker <jftucker@gmail.com>2014-07-14 21:20:18 -0700
commit2f3d6655218c967cf1b20600f701349bdb418bfc (patch)
treed0b73babaf5c08a400d69662ac78b3029a9f805a /test/spec_request.rb
parent895beec0622d3cafdc5fbae20d665c6d5f6c8e7c (diff)
downloadrack-2f3d6655218c967cf1b20600f701349bdb418bfc.tar.gz
Record Tempfiles from multipart form data in env[rack.tempfiles]
To facilitate cleanup without depending on garbage collection.
Diffstat (limited to 'test/spec_request.rb')
-rw-r--r--test/spec_request.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/spec_request.rb b/test/spec_request.rb
index 10394d54..e5ec254e 100644
--- a/test/spec_request.rb
+++ b/test/spec_request.rb
@@ -748,6 +748,31 @@ EOF
req.POST["mean"][:tempfile].read.should.equal "--AaB03xha"
end
+ should "record tempfiles from multipart form data in env[rack.tempfiles]" do
+ input = <<EOF
+--AaB03x\r
+content-disposition: form-data; name="fileupload"; filename="foo.jpg"\r
+Content-Type: image/jpeg\r
+Content-Transfer-Encoding: base64\r
+\r
+/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
+--AaB03x\r
+content-disposition: form-data; name="fileupload"; filename="bar.jpg"\r
+Content-Type: image/jpeg\r
+Content-Transfer-Encoding: base64\r
+\r
+/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
+--AaB03x--\r
+EOF
+ env = Rack::MockRequest.env_for("/",
+ "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
+ "CONTENT_LENGTH" => input.size,
+ :input => input)
+ req = Rack::Request.new(env)
+ req.params
+ env['rack.tempfiles'].size.should.equal(2)
+ end
+
should "detect invalid multipart form data" do
input = <<EOF
--AaB03x\r