summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorchiwenchen <cwchen2000@gmail.com>2021-07-13 10:06:35 +0800
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2022-01-21 01:48:33 +1300
commitdbec6b653b835efe24028744f1651efa0f6ebd5e (patch)
tree37769893795f452849d8d0aedb4cb7a6cd4d976c /test
parent3b956292297db76688e2797f756e1d191a53dcb8 (diff)
downloadrack-dbec6b653b835efe24028744f1651efa0f6ebd5e.tar.gz
Prefer `filename*` over `filename` when processing multipart data.
Diffstat (limited to 'test')
-rw-r--r--test/multipart/filename_multi6
-rw-r--r--test/spec_multipart.rb6
2 files changed, 12 insertions, 0 deletions
diff --git a/test/multipart/filename_multi b/test/multipart/filename_multi
new file mode 100644
index 00000000..9ab5e1ef
--- /dev/null
+++ b/test/multipart/filename_multi
@@ -0,0 +1,6 @@
+--AaB03x
+Content-Disposition: form-data; name="files"; filename="foo"; filename*=utf-8''bar
+Content-Type: application/octet-stream
+
+contents
+--AaB03x--
diff --git a/test/spec_multipart.rb b/test/spec_multipart.rb
index b8917943..f4de71cf 100644
--- a/test/spec_multipart.rb
+++ b/test/spec_multipart.rb
@@ -49,6 +49,12 @@ describe Rack::Multipart do
params["text"].must_equal "contents"
end
+ it "parse multipart content with different filename and filename*" do
+ env = Rack::MockRequest.env_for '/', multipart_fixture(:filename_multi)
+ params = Rack::Multipart.parse_multipart(env)
+ params["files"][:filename].must_equal "bar"
+ end
+
it "set US_ASCII encoding based on charset" do
env = Rack::MockRequest.env_for("/", multipart_fixture(:content_type_and_no_filename))
params = Rack::Multipart.parse_multipart(env)