# [*key_server*]
# _default_: +undef+
#
-# The keyserver from where to fetch our GPG key. It defaults to
+# The keyserver from where to fetch our GPG key. It can either be a domain
+# name or url. It defaults to
# undef which results in apt_key's default keyserver being used,
# currently +keyserver.ubuntu.com+.
#
}
if $key_server {
- if !is_domain_name($key_server) {
- fail('$key_server must be a valid domain name')
- }
+ validate_re($key_server,['\A((hkp|http|https):\/\/)?([a-z\d]{0,62}\.)+[a-z\d]+(:\d{2,4})?$'])
}
if $key_options {
end
describe 'key_server =>' do
- let :params do {
- :key_server => 'pgp.mit.edu',
- } end
+ context 'domain name' do
+ let :params do {
+ :key_server => 'pgp.mit.edu',
+ } end
- it 'contains the apt::key' do
- should contain_apt__key(title).with({
- :key => title,
- :ensure => 'present',
- :key_server => 'pgp.mit.edu',
- })
- end
- it 'contains the apt_key' do
- should contain_apt_key(title).with({
- :id => title,
- :ensure => 'present',
- :source => nil,
- :server => params[:key_server],
- :content => nil,
- :keyserver_options => nil,
- })
+ it 'contains the apt::key' do
+ should contain_apt__key(title).with({
+ :key => title,
+ :ensure => 'present',
+ :key_server => 'pgp.mit.edu',
+ })
+ end
+ it 'contains the apt_key' do
+ should contain_apt_key(title).with({
+ :id => title,
+ :ensure => 'present',
+ :source => nil,
+ :server => params[:key_server],
+ :content => nil,
+ :keyserver_options => nil,
+ })
+ end
+ it 'contains the apt_key present anchor' do
+ should contain_anchor("apt_key #{title} present")
+ end
+ end
+
+ context "url" do
+ let (:params) do{
+ :key_server => 'hkp://pgp.mit.edu',
+ } end
+ it "should contain apt::key" do
+ should contain_apt__key(title).with({
+ :key => title,
+ :ensure => 'present',
+ :key_server => 'hkp://pgp.mit.edu',
+ })
+ end
+ end
+ context "url with port number" do
+ let (:params) do{
+ :key_server => 'hkp://pgp.mit.edu:80',
+ } end
+ it "should contain apt::key" do
+ should contain_apt__key(title).with({
+ :key => title,
+ :ensure => 'present',
+ :key_server => 'hkp://pgp.mit.edu:80',
+ })
+ end
end
- it 'contains the apt_key present anchor' do
- should contain_anchor("apt_key #{title} present")
+
+ context "incorrect port number url" do
+ let (:params) do{
+ :key_server => 'hkp://pgp.mit.edu:8008080'
+ } end
+ it 'fails' do
+ expect { subject }.to raise_error(/does not match/)
+ end
+ end
+ context "incorrect protocol for url" do
+ let (:params) do{
+ :key_server => 'abc://pgp.mit.edu:80'
+ } end
+ it 'fails' do
+ expect { subject }.to raise_error(/does not match/)
+ end
+ end
+ context "missing port number url" do
+ let (:params) do{
+ :key_server => 'hkp://pgp.mit.edu:'
+ } end
+ it 'fails' do
+ expect { subject }.to raise_error(/does not match/)
+ end
+ end
+ context "malform url" do
+ let (:params) do{
+ :key_server => 'hkp://pgp.mit.edu.'
+ } end
+ it 'fails' do
+ expect { subject }.to raise_error(/does not match/)
+ end
+ end
+ context "exceed characher url" do
+ let (:params) do{
+ :key_server => 'hkp://pgpiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.mit.edu'
+ } end
+ it 'fails' do
+ expect { subject }.to raise_error(/does not match/)
+ end
end
- end
+
+ end
describe 'key_options =>' do
let :params do {
:key_server => 'two bottles of rum',
} end
it 'fails' do
- expect { subject }.to raise_error(/must be a valid domain name/)
+ expect { subject }.to raise_error(/does not match/)
end
end