X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Fpuppet%2Ftype%2Fapt_key_spec.rb;h=9c2dd91a4f5faf72fc84f31e108ff0c73dbf8542;hb=a005a1067a3068ee28e555a76b07174a61c86fc5;hp=e661ba1bdbb5ea8ee1a809a36ac70dbac48846e7;hpb=7c71390cd15facf38ef7cc5718205d6811b936b6;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/unit/puppet/type/apt_key_spec.rb b/spec/unit/puppet/type/apt_key_spec.rb index e661ba1..9c2dd91 100644 --- a/spec/unit/puppet/type/apt_key_spec.rb +++ b/spec/unit/puppet/type/apt_key_spec.rb @@ -4,111 +4,111 @@ require 'puppet' describe Puppet::Type::type(:apt_key) do context 'only namevar 32bit key id' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30' + :id => 'EF8D349F' )} it 'id is set' do - resource[:id].should eq '4BD6EC30' + expect(resource[:id]).to eq 'EF8D349F' end it 'name is set to id' do - resource[:name].should eq '4BD6EC30' + expect(resource[:name]).to eq 'EF8D349F' end it 'keyserver is default' do - resource[:server].should eq :'keyserver.ubuntu.com' + expect(resource[:server]).to eq :'keyserver.ubuntu.com' end it 'source is not set' do - resource[:source].should eq nil + expect(resource[:source]).to eq nil end it 'content is not set' do - resource[:content].should eq nil + expect(resource[:content]).to eq nil end end context 'with a lowercase 32bit key id' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '4bd6ec30' + :id => 'ef8d349f' )} it 'id is set' do - resource[:id].should eq '4BD6EC30' + expect(resource[:id]).to eq 'EF8D349F' end end context 'with a 64bit key id' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => 'FFFFFFFF4BD6EC30' + :id => 'FFFFFFFFEF8D349F' )} it 'id is set' do - resource[:id].should eq 'FFFFFFFF4BD6EC30' + expect(resource[:id]).to eq 'FFFFFFFFEF8D349F' end end context 'with a 0x formatted key id' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '0x4BD6EC30' + :id => '0xEF8D349F' )} it 'id is set' do - resource[:id].should eq '4BD6EC30' + expect(resource[:id]).to eq 'EF8D349F' end end context 'with a 0x formatted lowercase key id' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '0x4bd6ec30' + :id => '0xef8d349f' )} it 'id is set' do - resource[:id].should eq '4BD6EC30' + expect(resource[:id]).to eq 'EF8D349F' end end context 'with a 0x formatted 64bit key id' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '0xFFFFFFFF4BD6EC30' + :id => '0xFFFFFFFFEF8D349F' )} it 'id is set' do - resource[:id].should eq 'FFFFFFFF4BD6EC30' + expect(resource[:id]).to eq 'FFFFFFFFEF8D349F' end end context 'with source' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => 'http://apt.puppetlabs.com/pubkey.gpg' )} it 'source is set to the URL' do - resource[:source].should eq 'http://apt.puppetlabs.com/pubkey.gpg' + expect(resource[:source]).to eq 'http://apt.puppetlabs.com/pubkey.gpg' end end - + context 'with content' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :content => 'http://apt.puppetlabs.com/pubkey.gpg' )} it 'content is set to the string' do - resource[:content].should eq 'http://apt.puppetlabs.com/pubkey.gpg' + expect(resource[:content]).to eq 'http://apt.puppetlabs.com/pubkey.gpg' end end - + context 'with keyserver' do let(:resource) { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :server => 'http://keyring.debian.org' )} it 'keyserver is set to Debian' do - resource[:server].should eq 'http://keyring.debian.org' + expect(resource[:server]).to eq 'http://keyring.debian.org' end end context 'validation' do it 'raises an error if content and source are set' do expect { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => 'http://apt.puppetlabs.com/pubkey.gpg', :content => 'Completely invalid as a GPG key' )}.to raise_error(/content and source are mutually exclusive/) @@ -116,7 +116,7 @@ describe Puppet::Type::type(:apt_key) do it 'raises an error if a weird length key is used' do expect { Puppet::Type.type(:apt_key).new( - :id => 'F4BD6EC30', + :id => 'FEF8D349F', :source => 'http://apt.puppetlabs.com/pubkey.gpg', :content => 'Completely invalid as a GPG key' )}.to raise_error(/Valid values match/) @@ -124,37 +124,65 @@ describe Puppet::Type::type(:apt_key) do it 'raises an error when an invalid URI scheme is used in source' do expect { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => 'hkp://pgp.mit.edu' )}.to raise_error(/Valid values match/) end it 'allows the http URI scheme in source' do expect { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => 'http://pgp.mit.edu' )}.to_not raise_error end + it 'allows the http URI with username and password' do + expect { Puppet::Type.type(:apt_key).new( + :id => '4BD6EC30', + :source => 'http://testme:Password2@pgp.mit.edu' + )}.to_not raise_error + end + it 'allows the https URI scheme in source' do expect { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => 'https://pgp.mit.edu' )}.to_not raise_error end + it 'allows the https URI with username and password' do + expect { Puppet::Type.type(:apt_key).new( + :id => 'EF8D349F', + :source => 'https://testme:Password2@pgp.mit.edu' + )}.to_not raise_error + end + it 'allows the ftp URI scheme in source' do expect { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => 'ftp://pgp.mit.edu' )}.to_not raise_error end it 'allows an absolute path in source' do expect { Puppet::Type.type(:apt_key).new( - :id => '4BD6EC30', + :id => 'EF8D349F', :source => '/path/to/a/file' )}.to_not raise_error end + + it 'allows 5-digit ports' do + expect { Puppet::Type.type(:apt_key).new( + :id => 'EF8D349F', + :source => 'http://pgp.mit.edu:12345/key' + )}.to_not raise_error + end + + it 'allows 5-digit ports when using key servers' do + expect { Puppet::Type.type(:apt_key).new( + :id => 'EF8D349F', + :server => 'http://pgp.mit.edu:12345' + )}.to_not raise_error + end end end