Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

require "addressable/uri"
require "base64"
require "cgi"
require "cgi/escape"
require "openssl"
require "google/cloud/storage/errors"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@


require "addressable/uri"
require "cgi"
require "cgi/escape"
require "openssl"
require "google/cloud/storage/errors"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@

signed_uri = URI(signed_url)
_(signed_uri.path).must_equal "/bucket/"
signed_url_params = CGI::parse(signed_uri.query)
_(signed_url_params["GoogleAccessId"]).must_equal ["native_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("native-signature").delete("\n")]
signed_url_params = URI.decode_www_form(signed_uri.query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "native_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("native-signature").delete("\n")

signing_key_mock.verify
end
Expand All @@ -53,9 +53,9 @@

signed_url = bucket.signed_url file_path

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["native_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("native-signature").delete("\n")]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "native_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("native-signature").delete("\n")

signing_key_mock.verify
end
Expand All @@ -73,9 +73,9 @@
signed_url = bucket.signed_url file_path, issuer: "option_issuer",
signing_key: signing_key_mock

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["option_issuer"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("option-signature").delete("\n")]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "option_issuer"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("option-signature").delete("\n")

signing_key_mock.verify
end
Expand All @@ -94,9 +94,9 @@
signed_url = bucket.signed_url file_path, client_email: "option_client_email",
private_key: "option_private_key"

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["option_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("option-signature").delete("\n")]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "option_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("option-signature").delete("\n")

end

Expand All @@ -116,9 +116,9 @@
signed_url = bucket.signed_url file_path, issuer: "option_client_email",
signer: signer_mock

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["option_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("option-signature").delete("\n")]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "option_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("option-signature").delete("\n")

signer_mock.verify
end
Expand All @@ -135,9 +135,9 @@
signed_url = bucket.signed_url file_path, headers: { "X-Goog-Meta-FOO" => "bar,baz",
"X-Goog-ACL" => "public-read" }

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["native_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("native-signature").delete("\n")]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "native_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("native-signature").delete("\n")

signing_key_mock.verify
end
Expand Down Expand Up @@ -188,9 +188,9 @@
signed_uri = URI signed_url
_(signed_uri.path).must_equal "/bucket/hello%20world.txt"

signed_url_params = CGI::parse signed_uri.query
_(signed_url_params["GoogleAccessId"]).must_equal ["native_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("native-signature").delete("\n")]
signed_url_params = URI.decode_www_form(signed_uri.query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "native_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("native-signature").delete("\n")

signing_key_mock.verify
end
Expand All @@ -208,10 +208,10 @@
signed_url = bucket.signed_url file_path,
query: { "response-content-disposition" => "attachment; filename=\"google-cloud.png\"" }

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["native_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("native-signature").delete("\n")]
_(signed_url_params["response-content-disposition"]).must_equal ["attachment; filename=\"google-cloud.png\""]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "native_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("native-signature").delete("\n")
_(signed_url_params["response-content-disposition"]).must_equal "attachment; filename=\"google-cloud.png\""

signing_key_mock.verify
end
Expand All @@ -228,10 +228,10 @@
signed_url = bucket.signed_url file_path,
query: { disposition: :inline }

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["GoogleAccessId"]).must_equal ["native_client_email"]
_(signed_url_params["Signature"]).must_equal [Base64.strict_encode64("native-signature").delete("\n")]
_(signed_url_params["disposition"]).must_equal ["inline"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["GoogleAccessId"]).must_equal "native_client_email"
_(signed_url_params["Signature"]).must_equal Base64.strict_encode64("native-signature").delete("\n")
_(signed_url_params["disposition"]).must_equal "inline"

signing_key_mock.verify
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@

signed_uri = URI(signed_url)
_(signed_uri.path).must_equal "/bucket"
signed_url_params = CGI::parse(signed_uri.query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["native_client_email/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6e61746976652d7369676e6174757265"]
signed_url_params = URI.decode_www_form(signed_uri.query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "native_client_email/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6e61746976652d7369676e6174757265"

signing_key_mock.verify
end
Expand All @@ -56,13 +56,13 @@

signed_url = bucket.signed_url file_path, version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["native_client_email/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6e61746976652d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "native_client_email/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6e61746976652d7369676e6174757265"

signing_key_mock.verify
end
Expand All @@ -81,13 +81,13 @@
issuer: "option_issuer",
signing_key: signing_key_mock, version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["option_issuer/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6f7074696f6e2d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "option_issuer/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6f7074696f6e2d7369676e6174757265"

signing_key_mock.verify
end
Expand All @@ -105,13 +105,13 @@
signed_url = bucket.signed_url file_path, issuer: "option_issuer",
signer: signer_mock, version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["option_issuer/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6f7074696f6e2d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "option_issuer/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6f7074696f6e2d7369676e6174757265"

signer_mock.verify
end
Expand All @@ -131,13 +131,13 @@
client_email: "option_client_email",
private_key: "option_private_key", version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["option_client_email/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6f7074696f6e2d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "option_client_email/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6f7074696f6e2d7369676e6174757265"

end

Expand All @@ -157,13 +157,13 @@
headers: { "X-Goog-Meta-FOO" => "bar,baz",
"X-Goog-ACL" => "public-read" }, version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["native_client_email/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host;x-goog-acl;x-goog-meta-foo"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6e61746976652d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "native_client_email/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host;x-goog-acl;x-goog-meta-foo"
_(signed_url_params["X-Goog-Signature"]).must_equal "6e61746976652d7369676e6174757265"

signing_key_mock.verify
end
Expand Down Expand Up @@ -210,13 +210,13 @@
signed_url = bucket.signed_url file_path,
query: { "response-content-disposition" => "attachment; filename=\"google-cloud.png\"" }, version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["native_client_email/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6e61746976652d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "native_client_email/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6e61746976652d7369676e6174757265"
signing_key_mock.verify
end
end
Expand All @@ -232,13 +232,13 @@
signed_url = bucket.signed_url file_path,
query: { disposition: :inline }, version: :v4

signed_url_params = CGI::parse(URI(signed_url).query)
_(signed_url_params["X-Goog-Algorithm"]).must_equal ["GOOG4-RSA-SHA256"]
_(signed_url_params["X-Goog-Credential"]).must_equal ["native_client_email/20120101/auto/storage/goog4_request"]
_(signed_url_params["X-Goog-Date"]).must_equal ["20120101T000000Z"]
_(signed_url_params["X-Goog-Expires"]).must_equal ["604800"]
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal ["host"]
_(signed_url_params["X-Goog-Signature"]).must_equal ["6e61746976652d7369676e6174757265"]
signed_url_params = URI.decode_www_form(URI(signed_url).query).to_h
_(signed_url_params["X-Goog-Algorithm"]).must_equal "GOOG4-RSA-SHA256"
_(signed_url_params["X-Goog-Credential"]).must_equal "native_client_email/20120101/auto/storage/goog4_request"
_(signed_url_params["X-Goog-Date"]).must_equal "20120101T000000Z"
_(signed_url_params["X-Goog-Expires"]).must_equal "604800"
_(signed_url_params["X-Goog-SignedHeaders"]).must_equal "host"
_(signed_url_params["X-Goog-Signature"]).must_equal "6e61746976652d7369676e6174757265"

signing_key_mock.verify
end
Expand Down
Loading