Merge branch 'fix_empty_file_response'

This commit is contained in:
Greg Karékinian 2015-03-14 15:48:15 +01:00
commit bbb1bc0af0
2 changed files with 34 additions and 24 deletions

View File

@ -68,7 +68,10 @@ module RemoteStorage
when "application/json"
return object.data.to_json
else
return serializer_for(object.content_type) ? object.data : object.raw_data
data = serializer_for(object.content_type) ? object.data : object.raw_data
# Never return nil, always turn data into a string
return data.nil? ? '' : data
end
rescue ::Riak::HTTPFailedRequest
server.halt 404

View File

@ -34,33 +34,35 @@ describe "App with Riak backend" do
end
describe "GET public data" do
before do
object = data_bucket.new("jimmy:public:foo")
object.content_type = "text/plain"
object.data = "some text data"
object.store
describe "file with content" do
before do
object = data_bucket.new("jimmy:public:foo")
object.content_type = "text/plain"
object.data = "some text data"
object.store
get "/jimmy/public/foo"
end
get "/jimmy/public/foo"
end
it "returns the value on all get requests" do
last_response.status.must_equal 200
last_response.body.must_equal "some text data"
end
it "returns the value on all get requests" do
last_response.status.must_equal 200
last_response.body.must_equal "some text data"
end
it "has an ETag header set" do
last_response.status.must_equal 200
last_response.headers["ETag"].wont_be_nil
end
it "has an ETag header set" do
last_response.status.must_equal 200
last_response.headers["ETag"].wont_be_nil
end
it "has a Content-Length header set" do
last_response.status.must_equal 200
last_response.headers["Content-Length"].must_equal "14"
end
it "has a Content-Length header set" do
last_response.status.must_equal 200
last_response.headers["Content-Length"].must_equal "14"
end
it "has caching headers set" do
last_response.status.must_equal 200
last_response.headers["Expires"].must_equal "0"
it "has caching headers set" do
last_response.status.must_equal 200
last_response.headers["Expires"].must_equal "0"
end
end
describe "empty file" do
@ -75,7 +77,12 @@ describe "App with Riak backend" do
it "returns an empty body" do
last_response.status.must_equal 200
last_response.body.must_equal ""
# Rack::MockRequest turns the body into a string. We can't use
# `last_response.body` to check for nil, because:
# >> [nil].join
# => ""
last_response.body.must_equal ''
last_response.headers["Content-Length"].must_equal '0'
end
end
end