44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
|
require 'net/http'
|
|||
|
|
|||
|
describe 'AmazonV2RequestSigner' do
|
|||
|
let(:request_signer) do
|
|||
|
# These are actual keys, but they’re safe to put here because
|
|||
|
# - they never had any rights attached, and
|
|||
|
# - the keys were revoked before copying them here
|
|||
|
|
|||
|
Cellar::AmazonV2RequestSigner.new(
|
|||
|
'AKIAJFTRSGRH3RXX6D5Q',
|
|||
|
'3/y/3Tf5zkfcrTaLFxyKB/oU2/7ay7/Dz8UdEHC7',
|
|||
|
'rogets'
|
|||
|
)
|
|||
|
end
|
|||
|
|
|||
|
before { Timecop.freeze(Time.gm(2016, 10, 2)) }
|
|||
|
after { Timecop.return }
|
|||
|
|
|||
|
describe 'signature generation' do
|
|||
|
context 'for presigned URLs' do
|
|||
|
subject do
|
|||
|
request_signer.signature(
|
|||
|
method: 'GET',
|
|||
|
key: 'fichier',
|
|||
|
expires: 5.minutes.from_now.to_i
|
|||
|
)
|
|||
|
end
|
|||
|
|
|||
|
it { is_expected.to eq('nzCsB6cip8oofkuOdvvJs6FafkA=') }
|
|||
|
end
|
|||
|
|
|||
|
context 'for server-side requests' do
|
|||
|
subject do
|
|||
|
Net::HTTP::Delete.new('https://rogets.cellar.services.clever-cloud.com/fichier')
|
|||
|
end
|
|||
|
|
|||
|
before { request_signer.sign(subject, 'fichier') }
|
|||
|
|
|||
|
it { expect(subject['date']).to eq(Time.now.httpdate) }
|
|||
|
it { expect(subject['authorization']).to eq('AWS AKIAJFTRSGRH3RXX6D5Q:nkvviwZYb1V9HDrKyJZmY3Z8sSA=') }
|
|||
|
end
|
|||
|
end
|
|||
|
end
|