Update stdlib
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / aliases / unixpath_spec.rb
1 require 'spec_helper'
2
3 if Puppet::Util::Package.versioncmp(Puppet.version, '4.5.0') >= 0
4   describe 'test::unixpath', type: :class do
5     describe 'valid handling' do
6       %w{
7         /usr2/username/bin:/usr/local/bin:/usr/bin:.
8         /var/tmp
9         /Users/helencampbell/workspace/puppetlabs-stdlib
10         /var/ůťƒ8
11         /var/ネット
12         /var//tmp
13         /var/../tmp
14       }.each do |value|
15         describe value.inspect do
16           let(:params) {{ value: value }}
17           it { is_expected.to compile }
18         end
19       end
20     end
21
22     describe 'invalid path handling' do
23       context 'garbage inputs' do
24         [
25           nil,
26           [ nil ],
27           [ nil, nil ],
28           { 'foo' => 'bar' },
29           { },
30           '',
31           "C:/whatever",
32           "\\var\\tmp",
33           "\\Users/hc/wksp/stdlib",
34           "*/Users//nope",
35           "var\ůťƒ8",
36           "var\ネット"
37         ].each do |value|
38           describe value.inspect do
39             let(:params) {{ value: value }}
40             it { is_expected.to compile.and_raise_error(/parameter 'value' expects a match for Stdlib::Unixpath/) }
41           end
42         end
43       end
44
45     end
46   end
47 end