aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/request
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2012-12-10 14:59:06 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2012-12-10 21:23:59 +0100
commitbc254cc23558f016c3697ecd5d39e58f46908018 (patch)
tree1f61149a123f1b9a035c3974288280c86dee8ac5 /actionpack/test/dispatch/request
parent89ab303d8b78a73cb7d306a026f185986f44aa2a (diff)
downloadrails-bc254cc23558f016c3697ecd5d39e58f46908018.tar.gz
rails-bc254cc23558f016c3697ecd5d39e58f46908018.tar.bz2
rails-bc254cc23558f016c3697ecd5d39e58f46908018.zip
Prevent raising EOFError on multipart GET request.
Such request can happen on Internet Explorer. When we redirect after multipart form submission, the request type is changed to GET, but Content-Type is preserved as multipart. GET request cannot have multipart body and that caused Rails to fail. It's similar fix to Rack's one: https://github.com/chneukirchen/rack/blob/8025a4ae9477d1e6231344c2b7d795aa9b3717b6/lib/rack/request.rb#L224
Diffstat (limited to 'actionpack/test/dispatch/request')
-rw-r--r--actionpack/test/dispatch/request/multipart_params_parsing_test.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/request/multipart_params_parsing_test.rb b/actionpack/test/dispatch/request/multipart_params_parsing_test.rb
index 63c5ea26a6..399f15199c 100644
--- a/actionpack/test/dispatch/request/multipart_params_parsing_test.rb
+++ b/actionpack/test/dispatch/request/multipart_params_parsing_test.rb
@@ -123,6 +123,18 @@ class MultipartParamsParsingTest < ActionDispatch::IntegrationTest
end
end
+ # This can happen in Internet Explorer when redirecting after multipart form submit.
+ test "does not raise EOFError on GET request with multipart content-type" do
+ with_routing do |set|
+ set.draw do
+ get ':action', to: 'multipart_params_parsing_test/test'
+ end
+ headers = { "CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x" }
+ get "/parse", {}, headers
+ assert_response :ok
+ end
+ end
+
private
def fixture(name)
File.open(File.join(FIXTURE_PATH, name), 'rb') do |file|