From 284b69f169632115201795254345de1116636dda Mon Sep 17 00:00:00 2001 From: rick Date: Wed, 10 Dec 2008 20:06:10 -0800 Subject: [PATCH] fix spacing issues with multipart bodies: * the final boundary should be on a line below the final param's content. * the ending double dash should be on the same line as the final boundary --- lib/rest_client/payload.rb | 3 ++- spec/payload_spec.rb | 18 ++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/rest_client/payload.rb b/lib/rest_client/payload.rb index dfc2921..e896be0 100644 --- a/lib/rest_client/payload.rb +++ b/lib/rest_client/payload.rb @@ -76,9 +76,10 @@ module RestClient else create_regular_field(@stream, k,v) end - @stream.write(b + EOL) + @stream.write(EOL + b) end @stream.write('--') + @stream.write(EOL) @stream.seek(0) end diff --git a/spec/payload_spec.rb b/spec/payload_spec.rb index 22b5a5a..35564ee 100644 --- a/spec/payload_spec.rb +++ b/spec/payload_spec.rb @@ -20,29 +20,27 @@ describe RestClient::Payload do m.headers['Content-Type'].should == 'multipart/form-data; boundary="123"' end - xit "should form properly seperated multipart data" do + it "should form properly seperated multipart data" do m = RestClient::Payload::Multipart.new({:foo => "bar"}) - m.stub!(:boundary).and_return("123") m.to_s.should == <<-EOS ---123\r +--#{m.boundary}\r Content-Disposition: multipart/form-data; name="foo"\r \r bar\r ---123--\r +--#{m.boundary}--\r EOS end - xit "should form properly seperated multipart data" do + it "should form properly seperated multipart data" do f = File.new(File.dirname(__FILE__) + "/master_shake.jpg") m = RestClient::Payload::Multipart.new({:foo => f}) - m.stub!(:boundary).and_return("123") m.to_s.should == <<-EOS ---123\r -Content-Disposition: multipart/form-data; name="foo"; filename="master_shake.jpg"\r +--#{m.boundary}\r +Content-Disposition: multipart/form-data; name="foo"; filename="./spec/master_shake.jpg"\r Content-Type: image/jpeg\r \r -datadatadata\r ---123--\r +#{IO.read(f.path)}\r +--#{m.boundary}--\r EOS end end