aboutsummaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
authorGibheer <gibheer@gmail.com>2013-08-13 13:20:36 +0200
committerGibheer <gibheer@gmail.com>2013-08-13 13:20:36 +0200
commit00e0c0170385cc2bd8a9ac599f5462d75292efde (patch)
tree70132191b1977e04a18383cef551ba826a65ce3c /spec/unit
parent30215c37d1da0cf611854fcc246fe115d166008b (diff)
fix paramter extraction with charset
This fixes a bug where a charset in the content type blocked the extraction of the payload. A browser may send a string like multipart/form-data; charset=UTF-8 which include? could not find the defined types. Now it gets split and then checked against the defined types.
Diffstat (limited to 'spec/unit')
-rw-r--r--spec/unit/zero/request/parameter/payload_spec.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/spec/unit/zero/request/parameter/payload_spec.rb b/spec/unit/zero/request/parameter/payload_spec.rb
index 9cf1198..6f54361 100644
--- a/spec/unit/zero/request/parameter/payload_spec.rb
+++ b/spec/unit/zero/request/parameter/payload_spec.rb
@@ -50,6 +50,16 @@ describe Zero::Request::Parameter, '#payload' do
its(:payload) { should == {'bar[]' => ['foo', 'bar']} }
end
+ context 'with encoding in the content type' do
+ let(:env) do
+ EnvGenerator.post('/foo', {
+ :input => 'foo=bar',
+ 'CONTENT_TYPE' => 'multipart/form-data; charset=UTF-8'
+ })
+ end
+ its(:payload) { should == {'foo' => 'bar'} }
+ end
+
# TODO behaves like this, but is this really good like this?
context 'with a post body and content type application/json' do
let(:env) do