blob: 92ae145329672127a62d6fc35970fb897d850207 [file] [log] [blame]
diff --git a/spec/base.rb b/spec/base.rb
index 965a6e2..60fb86f 100644
--- a/spec/base.rb
+++ b/spec/base.rb
@@ -2,8 +2,6 @@ def is_ruby_19?
RUBY_VERSION == '1.9.1' or RUBY_VERSION == '1.9.2'
end
-Encoding.default_internal = Encoding.default_external = "ASCII-8BIT" if is_ruby_19?
-
require 'rubygems'
require 'spec'
@@ -14,3 +12,4 @@ rescue LoadError
end
require File.dirname(__FILE__) + '/../lib/restclient'
+require File.join(File.dirname(__FILE__), 'helpers', 'file_content_helper')
diff --git a/spec/helpers/file_content_helper.rb b/spec/helpers/file_content_helper.rb
new file mode 100644
index 0000000..86dd263
--- /dev/null
+++ b/spec/helpers/file_content_helper.rb
@@ -0,0 +1,3 @@
+def file_content_helper(path)
+ IO.respond_to?(:binread) ? IO.binread(path) : IO.read(path)
+end
diff --git a/spec/payload_spec.rb b/spec/payload_spec.rb
index 89ded79..c57b300 100644
--- a/spec/payload_spec.rb
+++ b/spec/payload_spec.rb
@@ -102,26 +102,28 @@ baz\r
it "should form properly separated multipart data" do
f = File.new(File.dirname(__FILE__) + "/master_shake.jpg")
+ file_contents = file_content_helper(f.path)
m = RestClient::Payload::Multipart.new({:foo => f})
m.to_s.should == <<-EOS
--#{m.boundary}\r
Content-Disposition: form-data; name="foo"; filename="master_shake.jpg"\r
Content-Type: image/jpeg\r
\r
-#{IO.read(f.path)}\r
+#{file_contents}\r
--#{m.boundary}--\r
EOS
end
it "should ignore the name attribute when it's not set" do
f = File.new(File.dirname(__FILE__) + "/master_shake.jpg")
+ file_contents = file_content_helper(f.path)
m = RestClient::Payload::Multipart.new({nil => f})
m.to_s.should == <<-EOS
--#{m.boundary}\r
Content-Disposition: form-data; filename="master_shake.jpg"\r
Content-Type: image/jpeg\r
\r
-#{IO.read(f.path)}\r
+#{file_contents}\r
--#{m.boundary}--\r
EOS
end
@@ -130,13 +132,14 @@ Content-Type: image/jpeg\r
f = File.new(File.dirname(__FILE__) + "/master_shake.jpg")
f.instance_eval "def content_type; 'text/plain'; end"
f.instance_eval "def original_filename; 'foo.txt'; end"
+ file_contents = file_content_helper(f.path)
m = RestClient::Payload::Multipart.new({:foo => f})
m.to_s.should == <<-EOS
--#{m.boundary}\r
Content-Disposition: form-data; name="foo"; filename="foo.txt"\r
Content-Type: text/plain\r
\r
-#{IO.read(f.path)}\r
+#{file_contents}\r
--#{m.boundary}--\r
EOS
end
@@ -154,13 +157,14 @@ foo\r
f = File.new(File.dirname(__FILE__) + "/master_shake.jpg")
f.instance_eval "def content_type; 'text/plain'; end"
f.instance_eval "def original_filename; 'foo.txt'; end"
+ file_contents = file_content_helper(f.path)
m = RestClient::Payload::Multipart.new({:foo => {:bar => f}})
m.to_s.should == <<-EOS
--#{m.boundary}\r
Content-Disposition: form-data; name="foo[bar]"; filename="foo.txt"\r
Content-Type: text/plain\r
\r
-#{IO.read(f.path)}\r
+#{file_contents}\r
--#{m.boundary}--\r
EOS
end
diff --git a/spec/response_spec.rb b/spec/response_spec.rb
index 840698e..d3964a8 100644
--- a/spec/response_spec.rb
+++ b/spec/response_spec.rb
@@ -90,12 +90,6 @@ describe RestClient::Response do
RestClient::Request.execute(:url => 'http://some/resource', :method => :get, :user => 'foo', :password => 'bar', :headers => {:accept => :json}).body.should == 'Foo'
end
- it "follows a redirection and keep the cookies" do
- stub_request(:get, 'http://some/resource').to_return(:body => '', :status => 301, :headers => {'Set-Cookie' => CGI::Cookie.new('Foo', 'Bar'), 'Location' => 'http://new/resource', })
- stub_request(:get, 'http://new/resource').with(:headers => {'Cookie' => 'Foo=Bar'}).to_return(:body => 'Qux')
- RestClient::Request.execute(:url => 'http://some/resource', :method => :get).body.should == 'Qux'
- end
-
it "doesn't follow a 301 when the request is a post" do
net_http_res = mock('net http response', :code => 301)
response = RestClient::Response.create('abc', net_http_res, {:method => :post})