1 | #! /usr/bin/env ruby -S rspec
|
---|
2 | require 'spec_helper_acceptance'
|
---|
3 |
|
---|
4 | describe 'validate_augeas function', :unless => ((UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem'))) or (fact('osfamily') == 'windows')) do
|
---|
5 | describe 'prep' do
|
---|
6 | it 'installs augeas for tests'
|
---|
7 | end
|
---|
8 | describe 'success' do
|
---|
9 | context 'valid inputs with no 3rd argument' do
|
---|
10 | {
|
---|
11 | 'root:x:0:0:root:/root:/bin/bash\n' => 'Passwd.lns',
|
---|
12 | 'proc /proc proc nodev,noexec,nosuid 0 0\n' => 'Fstab.lns'
|
---|
13 | }.each do |line,lens|
|
---|
14 | it "validates a single argument for #{lens}" do
|
---|
15 | pp = <<-EOS
|
---|
16 | $line = "#{line}"
|
---|
17 | $lens = "#{lens}"
|
---|
18 | validate_augeas($line, $lens)
|
---|
19 | EOS
|
---|
20 |
|
---|
21 | apply_manifest(pp, :catch_failures => true)
|
---|
22 | end
|
---|
23 | end
|
---|
24 | end
|
---|
25 | context 'valid inputs with 3rd and 4th arguments' do
|
---|
26 | it "validates a restricted value" do
|
---|
27 | line = 'root:x:0:0:root:/root:/bin/barsh\n'
|
---|
28 | lens = 'Passwd.lns'
|
---|
29 | restriction = '$file/*[shell="/bin/barsh"]'
|
---|
30 | pp = <<-EOS
|
---|
31 | $line = "#{line}"
|
---|
32 | $lens = "#{lens}"
|
---|
33 | $restriction = ['#{restriction}']
|
---|
34 | validate_augeas($line, $lens, $restriction, "my custom failure message")
|
---|
35 | EOS
|
---|
36 |
|
---|
37 | expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/my custom failure message/)
|
---|
38 | end
|
---|
39 | end
|
---|
40 | context 'invalid inputs' do
|
---|
41 | {
|
---|
42 | 'root:x:0:0:root' => 'Passwd.lns',
|
---|
43 | '127.0.1.1' => 'Hosts.lns'
|
---|
44 | }.each do |line,lens|
|
---|
45 | it "validates a single argument for #{lens}" do
|
---|
46 | pp = <<-EOS
|
---|
47 | $line = "#{line}"
|
---|
48 | $lens = "#{lens}"
|
---|
49 | validate_augeas($line, $lens)
|
---|
50 | EOS
|
---|
51 |
|
---|
52 | apply_manifest(pp, :expect_failures => true)
|
---|
53 | end
|
---|
54 | end
|
---|
55 | end
|
---|
56 | context 'garbage inputs' do
|
---|
57 | it 'raises an error on invalid inputs'
|
---|
58 | end
|
---|
59 | end
|
---|
60 | describe 'failure' do
|
---|
61 | it 'handles improper number of arguments'
|
---|
62 | end
|
---|
63 | end
|
---|