Skip to content

add additional aliasis #792

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
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
54 changes: 54 additions & 0 deletions spec/aliases/base32_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::base32', type: :class do
describe 'valid handling' do
%w(
ASDASDDASD3453453
ASDASDDASD3453453=
ASDASDDASD3453453==
ASDASDDASD3453453===
ASDASDDASD3453453====
ASDASDDASD3453453=====
ASDASDDASD3453453======
asdasddasd3453453
asdasddasd3453453=
asdasddasd3453453==
asdasddasd3453453===
asdasddasd3453453====
asdasddasd3453453=====
asdasddasd3453453======
).each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile }
end
end
end
describe 'invalid path handling' do
context 'garbage inputs' do
[
[nil],
[nil, nil],
{ 'foo' => 'bar' },
{},
'',
'asdasd!@#$',
'=asdasd9879876876+/',
'asda=sd9879876876+/',
'asdaxsd9879876876+/===',
'asdads asdasd',
'asdasddasd3453453=======',
'asdaSddasd',
'asdasddasd1',
'asdasddasd9'
].each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile.and_raise_error(%r{parameter 'value' expects a match for Stdlib::Base32}) }
end
end
end
end
end
end
40 changes: 40 additions & 0 deletions spec/aliases/base64_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::base64', type: :class do
describe 'valid handling' do
%w(
asdasdASDSADA342386832/746+=
asdasdASDSADA34238683274/6+
asdasdASDSADA3423868327/46+==
).each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile }
end
end
end

describe 'invalid path handling' do
context 'garbage inputs' do
[
[nil],
[nil, nil],
{ 'foo' => 'bar' },
{},
'',
'asdasd!@#$',
'=asdasd9879876876+/',
'asda=sd9879876876+/',
'asdaxsd9879876876+/===',
'asdads asdasd'
].each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile.and_raise_error(%r{parameter 'value' expects a match for Stdlib::Base64}) }
end
end
end
end
end
end
36 changes: 36 additions & 0 deletions spec/aliases/fqdn_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::fqdn', type: :class do
describe 'valid handling' do
%w(
example
example.com
www.example.com
).each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile }
end
end
end

describe 'invalid path handling' do
context 'garbage inputs' do
[
[nil],
[nil, nil],
{ 'foo' => 'bar' },
{},
'',
'www www.example.com'
].each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile.and_raise_error(%r{parameter 'value' expects a match for Stdlib::Fqdn}) }
end
end
end
end
end
end
43 changes: 43 additions & 0 deletions spec/aliases/host_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::host', type: :class do
describe 'valid handling' do
%w(
example
example.com
www.example.com
2001:0db8:85a3:0000:0000:8a2e:0370:7334
fa76:8765:34ac:0823:ab76:eee9:0987:1111
2001:0db8::1
224.0.0.0
255.255.255.255
0.0.0.0
192.88.99.0
).each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile }
end
end
end

describe 'invalid path handling' do
context 'garbage inputs' do
[
[nil],
[nil, nil],
{ 'foo' => 'bar' },
{},
'',
'www www.example.com'
].each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile.and_raise_error(%r{parameter 'value' expects a match for Stdlib::Host}) }
end
end
end
end
end
end
44 changes: 44 additions & 0 deletions spec/aliases/puppetcontent.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::puppetcontent', type: :class do
describe 'valid handling' do
%w{
usr2/username/bin
var/tmp
var///tmp
tea/file.erb
}.each do |value|
describe value.inspect do
let(:params) {{ value: value }}
it { is_expected.to compile }
end
end
end

describe 'invalid path handling' do
context 'garbage inputs' do
[
nil,
[ nil ],
[ nil, nil ],
{ 'foo' => 'bar' },
{ },
'',
"C:/whatever",
"\\var\\tmp",
"\\Users/hc/wksp/stdlib",
"*/Users//nope"
"/Users//nope"
"/Users/nope"
].each do |value|
describe value.inspect do
let(:params) {{ value: value }}
it { is_expected.to compile.and_raise_error(/parameter 'value' expects a match for Stdlib::Puppetcontent/) }
end
end
end

end
end
end
55 changes: 55 additions & 0 deletions spec/aliases/puppetsource_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::puppetsource', type: :class do
describe 'valid handling' do
%w(
https://hello.com
https://notcreative.org
https://canstillaccepthttps.co.uk
http://anhttp.com
http://runningoutofideas.gov
file:///hello/bla
file:///foo/bar.log
/usr2/username/bin:/usr/local/bin:/usr/bin:.
C:/
C:\\
C:\\WINDOWS\\System32
C:/windows/system32
X:/foo/bar
X:\\foo\\bar
\\\\host\\windows
//host/windows
/var/tmp
/var/opt/../lib/puppet
).each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile }
end
end
end

describe 'invalid path handling' do
context 'garbage inputs' do
[
nil,
[nil],
[nil, nil],
{ 'foo' => 'bar' },
{},
'',
'*/Users//nope',
'\\Users/hc/wksp/stdlib',
'C:noslashes',
'\\var\\tmp'
].each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile.and_raise_error(%r{parameter 'value' expects a match for Stdlib::Puppetsource}) }
end
end
end
end
end
end
42 changes: 42 additions & 0 deletions spec/aliases/puppeturi_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
require 'spec_helper'

if Puppet.version.to_f >= 4.5
describe 'test::puppeturi', type: :class do
describe 'valid handling' do
%w(
puppet:///modules/hello/bla
puppet:///modules/foo/bar.log
).each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile }
end
end
end

describe 'invalid path handling' do
context 'garbage inputs' do
[
nil,
[nil],
[nil, nil],
{ 'foo' => 'bar' },
{},
'',
'puppe:///modules/notquiteright.org',
'puppets:///modules/nah',
'puppet://modules/nah',
'puppet:/modules/nah',
'puppet:///hello/bla',
'/file/test',
'https//notrightbutclose.org'
].each do |value|
describe value.inspect do
let(:params) { { value: value } }
it { is_expected.to compile.and_raise_error(%r{parameter 'value' expects a match for Stdlib::Puppeturi}) }
end
end
end
end
end
end
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/base32.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::HTTPUrl type alias
class test::base32 (
Stdlib::Base32 $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/base64.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::HTTPUrl type alias
class test::base64 (
Stdlib::Base64 $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/fileuri.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::HTTPUrl type alias
class test::fileuri (
Stdlib::Fileuri $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/fqdn.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::HTTPUrl type alias
class test::fqdn (
Stdlib::Fqdn $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/host.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::Host type alias
class test::host (
Stdlib::Host $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/puppetcontent.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::Puppeturi type alias
class test::puppetcontent (
Stdlib::Puppetcontent $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/puppetsource.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::Puppeturi type alias
class test::puppetsource (
Stdlib::Puppetsource $value,
) {
notice('Success')
}
6 changes: 6 additions & 0 deletions spec/fixtures/test/manifests/puppeturi.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Class to test the Stdlib::Puppeturi type alias
class test::puppeturi (
Stdlib::Puppeturi $value,
) {
notice('Success')
}
2 changes: 2 additions & 0 deletions types/base32.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Type to match base32 String
type Stdlib::Base32 = Pattern[/^[a-z2-7]+={,6}$/, /^[A-Z2-7]+={,6}$/]
2 changes: 2 additions & 0 deletions types/base64.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Type to match base64 String
type Stdlib::Base64 = Pattern[/^[a-zA-Z0-9\/\+]+={,2}$/]
2 changes: 2 additions & 0 deletions types/fileuri.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#Type to match URIs
type Stdlib::Fileuri = Pattern[/^file:\/\/\/([^\/\0]+(\/)?)+/]
1 change: 1 addition & 0 deletions types/fqdn.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
type Stdlib::Fqdn = Pattern[/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/]
1 change: 1 addition & 0 deletions types/host.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
type Stdlib::Host = Variant[Stdlib::Fqdn, Stdlib::Compat::Ip_address]
1 change: 1 addition & 0 deletions types/port.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
type Stdlib::Port = Integer[0, 65535]
1 change: 1 addition & 0 deletions types/privilegedport.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
type Stdlib::Privilegedport = Integer[1, 1023]
2 changes: 2 additions & 0 deletions types/puppetcontent.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# this regex rejects any path component that is a / or a NUL
type Stdlib::Puppetcontent = Pattern[/^([^\/\0]+(\/)?)+$/]
2 changes: 2 additions & 0 deletions types/puppetsource.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Validate the source parameter on file opjects
type Stdlib::Puppetsource = Variant[Stdlib::Absolutepath, Stdlib::HTTPUrl, Stdlib::Fileuri, Stdlib::Puppeturi]
Loading