Skip to content

Commit

Permalink
Test multipart upload with a semicolon in the name.
Browse files Browse the repository at this point in the history
Test a multipart upload in which the specified
filename includes a semicolon. Should be parsed
with the included filename, but Rack stops at the
filename.

Signed-off-by: Christian Neukirchen <chneukirchen@gmail.com>
  • Loading branch information
drodriguez authored and leahneukirchen committed Oct 18, 2009
1 parent 38f205e commit 354073d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
6 changes: 6 additions & 0 deletions test/multipart/semicolon
@@ -0,0 +1,6 @@
--AaB03x
Content-Disposition: form-data; name="files"; filename="fi;le1.txt"
Content-Type: text/plain

contents
--AaB03x--
12 changes: 12 additions & 0 deletions test/spec_rack_utils.rb
Expand Up @@ -383,6 +383,18 @@ def context env, app=@app; app.call(env); end
params["files"][:tempfile].read.should.equal ""
end

specify "should parse multipart upload with filename with semicolons" do
env = Rack::MockRequest.env_for("/", multipart_fixture(:semicolon))
params = Rack::Utils::Multipart.parse_multipart(env)
params["files"][:type].should.equal "text/plain"
params["files"][:filename].should.equal "fi;le1.txt"
params["files"][:head].should.equal "Content-Disposition: form-data; " +
"name=\"files\"; filename=\"fi;le1.txt\"\r\n" +
"Content-Type: text/plain\r\n"
params["files"][:name].should.equal "files"
params["files"][:tempfile].read.should.equal "contents"
end

specify "should not include file params if no file was selected" do
env = Rack::MockRequest.env_for("/", multipart_fixture(:none))
params = Rack::Utils::Multipart.parse_multipart(env)
Expand Down

0 comments on commit 354073d

Please sign in to comment.