summaryrefslogtreecommitdiff
path: root/spec/unit/puppet/parser
diff options
context:
space:
mode:
authorKen Barber <ken@bob.sh>2012-03-07 13:05:18 -0800
committerKen Barber <ken@bob.sh>2012-03-07 13:05:18 -0800
commit898ff80fa762dbbe52f50b872dd1bf3b04c254c9 (patch)
treea0c7c6ab9e25f41782ee9d0788f33a1e030b7756 /spec/unit/puppet/parser
parent63834354c2c2ed56a01c8ff3d898c62d53551de1 (diff)
parent2ce669c7f8aea6b66b2150798a5ef4d253b00a2e (diff)
Merge pull request #46 from jeffmccune/feature/2.3.x/validate_absolute_path_function
(#12357) Add validate_absolute_path() function
Diffstat (limited to 'spec/unit/puppet/parser')
-rw-r--r--spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb76
1 files changed, 76 insertions, 0 deletions
diff --git a/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb b/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb
new file mode 100644
index 0000000..2b44f50
--- /dev/null
+++ b/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb
@@ -0,0 +1,76 @@
+require 'spec_helper'
+
+describe Puppet::Parser::Functions.function(:validate_absolute_path) do
+ before :all do
+ Puppet::Parser::Functions.autoloader.loadall
+ end
+
+ let(:scope) do
+ scope = Puppet::Parser::Scope.new
+ end
+
+ # The subject of these examplres is the method itself.
+ subject do
+ scope.method :function_validate_absolute_path
+ end
+
+ context 'Using Puppet::Parser::Scope.new' do
+
+ describe 'Garbage inputs' do
+ paths = [
+ nil,
+ [ nil ],
+ { 'foo' => 'bar' },
+ { },
+ '',
+ ]
+
+ paths.each do |path|
+ it "validate_absolute_path(#{path.inspect}) should fail" do
+ expect { subject.call [path] }.to raise_error Puppet::ParseError
+ end
+ end
+ end
+ describe 'relative paths' do
+ paths = %w{
+ relative1
+ .
+ ..
+ ./foo
+ ../foo
+ etc/puppetlabs/puppet
+ opt/puppet/bin
+ }
+
+ paths.each do |path|
+ it "validate_absolute_path(#{path.inspect}) should fail" do
+ expect { subject.call [path] }.to raise_error Puppet::ParseError
+ end
+ end
+ end
+ describe 'absolute paths' do
+ paths = %w{
+ C:/
+ C:\\
+ C:\\WINDOWS\\System32
+ C:/windows/system32
+ X:/foo/bar
+ X:\\foo\\bar
+ /var/tmp
+ /var/lib/puppet
+ /var/opt/../lib/puppet
+ }
+
+ paths = paths + [
+ 'C:\\Program Files (x86)\\Puppet Labs\\Puppet Enterprise',
+ 'C:/Program Files (x86)/Puppet Labs/Puppet Enterprise',
+ ]
+
+ paths.each do |path|
+ it "validate_absolute_path(#{path.inspect}) should not fail" do
+ expect { subject.call [path] }.not_to raise_error
+ end
+ end
+ end
+ end
+end