43 lines
1.2 KiB
Ruby
43 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
|