308a3aaeb4a4e79b47f102900ed722f5e0d1e6e5
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / aliases / absolute_path_spec.rb
1 require 'spec_helper'
2
3 if Puppet::Util::Package.versioncmp(Puppet.version, '4.5.0') >= 0
4   describe 'test::absolute_path', type: :class do
5     describe 'valid paths handling' do
6       %w{
7         C:/
8         C:\\
9         C:\\WINDOWS\\System32
10         C:/windows/system32
11         X:/foo/bar
12         X:\\foo\\bar
13         \\\\host\\windows
14         //host/windows
15         /
16         /var/tmp
17         /var/opt/../lib/puppet
18         /var/opt//lib/puppet
19         /var/ůťƒ8
20         /var/ネット
21       }.each do |value|
22         describe value.inspect do
23           let(:params) {{ value: value }}
24           it { is_expected.to compile }
25         end
26       end
27     end
28
29     describe 'invalid path handling' do
30       context 'garbage inputs' do
31         [
32           nil,
33           [ nil ],
34           [ nil, nil ],
35           { 'foo' => 'bar' },
36           { },
37           '',
38         ].each do |value|
39           describe value.inspect do
40             let(:params) {{ value: value }}
41             it { is_expected.to compile.and_raise_error(/parameter 'value' expects a match for Stdlib::Compat::Absolute_path/) }
42           end
43         end
44       end
45
46       context 'relative paths' do
47         %w{
48           relative1
49           .
50           ..
51           ./foo
52           ../foo
53           etc/puppetlabs/puppet
54           opt/puppet/bin
55           relative\\windows
56           \var\ůťƒ8
57           \var\ネット
58         }.each do |value|
59           describe value.inspect do
60             let(:params) {{ value: value }}
61             it { is_expected.to compile.and_raise_error(/parameter 'value' expects a match for Stdlib::Compat::Absolute_path/) }
62           end
63         end
64       end
65     end
66   end
67 end