Add specs for public resources, including getting partial content
This commit is contained in:
parent
8c95e804ca
commit
331fdbe1c7
@ -16,12 +16,20 @@ describe "S3 provider" do
|
|||||||
stub_request(:put, "#{container_url_for("phil")}/food/aguacate").
|
stub_request(:put, "#{container_url_for("phil")}/food/aguacate").
|
||||||
with(body: "aye").
|
with(body: "aye").
|
||||||
to_return(status: 200, headers: { etag: '"0915etag"', date: "Fri, 04 Mar 2016 12:20:18 GMT" })
|
to_return(status: 200, headers: { etag: '"0915etag"', date: "Fri, 04 Mar 2016 12:20:18 GMT" })
|
||||||
|
stub_request(:put, "#{container_url_for("phil")}/public/shares/example.jpg").
|
||||||
|
to_return(status: 200, headers: { etag: '"0817etag"', content_type: "image/jpeg", date: "Fri, 04 Mar 2016 12:20:18 GMT" })
|
||||||
|
stub_request(:put, "#{container_url_for("phil")}/public/shares/example_partial.jpg").
|
||||||
|
to_return(status: 200, headers: { etag: '"0817etag"', content_type: "image/jpeg", date: "Fri, 04 Mar 2016 12:20:18 GMT" })
|
||||||
stub_request(:head, "#{container_url_for("phil")}/food/aguacate").
|
stub_request(:head, "#{container_url_for("phil")}/food/aguacate").
|
||||||
to_return(status: 200, headers: { last_modified: "Fri, 04 Mar 2016 12:20:18 GMT" })
|
to_return(status: 200, headers: { last_modified: "Fri, 04 Mar 2016 12:20:18 GMT" })
|
||||||
stub_request(:get, "#{container_url_for("phil")}/food/aguacate").
|
stub_request(:get, "#{container_url_for("phil")}/food/aguacate").
|
||||||
to_return(status: 200, body: "rootbody", headers: { etag: '"0817etag"', content_type: "text/plain; charset=utf-8" })
|
to_return(status: 200, body: "rootbody", headers: { etag: '"0817etag"', content_type: "text/plain; charset=utf-8" })
|
||||||
stub_request(:delete, "#{container_url_for("phil")}/food/aguacate").
|
stub_request(:delete, "#{container_url_for("phil")}/food/aguacate").
|
||||||
to_return(status: 200, headers: { etag: '"0815etag"' })
|
to_return(status: 200, headers: { etag: '"0815etag"' })
|
||||||
|
stub_request(:get, "#{container_url_for("phil")}/public/shares/example.jpg").
|
||||||
|
to_return(status: 200, body: "", headers: { etag: '"0817etag"', content_type: "image/jpeg" })
|
||||||
|
stub_request(:get, "#{container_url_for("phil")}/public/shares/example_partial.jpg").
|
||||||
|
to_return(status: 206, body: "", headers: { etag: '"0817etag"', content_type: "image/jpeg", content_range: "bytes 0-16/128" })
|
||||||
|
|
||||||
# Write new content to check the metadata in Redis
|
# Write new content to check the metadata in Redis
|
||||||
stub_request(:put, "#{container_url_for("phil")}/food/banano").
|
stub_request(:put, "#{container_url_for("phil")}/food/banano").
|
||||||
|
@ -397,6 +397,47 @@ shared_examples_for 'a REST adapter' do
|
|||||||
purge_redis
|
purge_redis
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "requests to public resources" do
|
||||||
|
before do
|
||||||
|
redis.sadd "authorizations:phil:amarillo", [":rw"]
|
||||||
|
header "Authorization", "Bearer amarillo"
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "normal request" do
|
||||||
|
before do
|
||||||
|
header "Content-Type", "image/jpeg"
|
||||||
|
|
||||||
|
put "/phil/public/shares/example.jpg", ""
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the required response headers" do
|
||||||
|
get "/phil/public/shares/example.jpg"
|
||||||
|
|
||||||
|
last_response.status.must_equal 200
|
||||||
|
last_response.headers["Content-Type"].must_equal "image/jpeg"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "partial request" do
|
||||||
|
before do
|
||||||
|
header "Content-Type", "image/jpeg"
|
||||||
|
|
||||||
|
put "/phil/public/shares/example_partial.jpg", <<-EOF
|
||||||
|
JFIFddDuckyA␍⎺␉␊␍
|
||||||
|
#%'%#//33//@@@@@@@@@@@@@@@&&0##0+.'''.+550055@@?@@@@@@@@@@@>"!1AQaq"2B
|
||||||
|
EOF
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the required response headers" do
|
||||||
|
header 'Range', 'bytes=0-16'
|
||||||
|
get "/phil/public/shares/example_partial.jpg"
|
||||||
|
|
||||||
|
last_response.status.must_equal 206
|
||||||
|
last_response.headers["Content-Type"].must_equal "image/jpeg"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "not authorized" do
|
context "not authorized" do
|
||||||
|
|
||||||
describe "without token" do
|
describe "without token" do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user