3 # rubocop:disable RSpec/MultipleExpectations
4 acl_type = Puppet::Type.type(:posix_acl)
7 context 'when not setting parameters' do
8 it 'fails without permissions' do
10 acl_type.new name: '/tmp/foo'
14 context 'when setting parameters' do
15 it 'works with a correct permission parameter' do
16 resource = acl_type.new name: '/tmp/foo', permission: ['user:root:rwx']
17 expect(resource[:name]).to eq('/tmp/foo')
18 expect(resource[:permission]).to eq(['user:root:rwx'])
20 it 'converts a permission string to an array' do
21 resource = acl_type.new name: '/tmp/foo', permission: 'user:root:rwx'
22 expect(resource[:name]).to eq('/tmp/foo')
23 expect(resource[:permission]).to eq(['user:root:rwx'])
25 it 'converts the u: shorcut to user:' do
26 resource = acl_type.new name: '/tmp/foo', permission: ['u:root:rwx']
27 expect(resource[:name]).to eq('/tmp/foo')
28 expect(resource[:permission]).to eq(['user:root:rwx'])
30 it 'converts the g: shorcut to group:' do
31 resource = acl_type.new name: '/tmp/foo', permission: ['g:root:rwx']
32 expect(resource[:name]).to eq('/tmp/foo')
33 expect(resource[:permission]).to eq(['group:root:rwx'])
35 it 'converts the m: shorcut to mask:' do
36 resource = acl_type.new name: '/tmp/foo', permission: ['m::rwx']
37 expect(resource[:name]).to eq('/tmp/foo')
38 expect(resource[:permission]).to eq(['mask::rwx'])
40 it 'converts the o: shorcut to other:' do
41 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx']
42 expect(resource[:name]).to eq('/tmp/foo')
43 expect(resource[:permission]).to eq(['other::rwx'])
45 it 'has the "set" action by default' do
46 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx']
47 expect(resource[:name]).to eq('/tmp/foo')
48 expect(resource[:action]).to eq(:set)
50 it 'accepts an action "set"' do
51 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], action: :set
52 expect(resource[:name]).to eq('/tmp/foo')
53 expect(resource[:action]).to eq(:set)
55 it 'accepts an action "purge"' do
56 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], action: :purge
57 expect(resource[:name]).to eq('/tmp/foo')
58 expect(resource[:action]).to eq(:purge)
60 it 'accepts an action "unset"' do
61 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], action: :unset
62 expect(resource[:name]).to eq('/tmp/foo')
63 expect(resource[:action]).to eq(:unset)
65 it 'accepts an action "exact"' do
66 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], action: :exact
67 expect(resource[:name]).to eq('/tmp/foo')
68 expect(resource[:action]).to eq(:exact)
70 it 'has path as namevar' do
71 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx']
72 expect(resource[:name]).to eq('/tmp/foo')
73 expect(resource[:path]).to eq(resource[:name])
75 it 'accepts a path parameter' do
76 resource = acl_type.new path: '/tmp/foo', permission: ['o::rwx'], action: :exact
77 expect(resource[:path]).to eq('/tmp/foo')
78 expect(resource[:name]).to eq(resource[:path])
80 it 'is not recursive by default' do
81 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx']
82 expect(resource[:name]).to eq('/tmp/foo')
83 expect(resource[:recursive]).to eq(:false)
85 it 'accepts a recursive "true"' do
86 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], recursive: true
87 expect(resource[:name]).to eq('/tmp/foo')
88 expect(resource[:recursive]).to eq(:true)
90 it 'accepts a recurse "false"' do
91 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], recursive: false
92 expect(resource[:name]).to eq('/tmp/foo')
93 expect(resource[:recursive]).to eq(:false)
95 it 'gets recursemode lazy by default' do
96 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx']
97 expect(resource[:name]).to eq('/tmp/foo')
98 expect(resource[:recursemode]).to eq(:lazy)
100 it 'accepts a recursemode deep' do
101 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], recursemode: 'deep'
102 expect(resource[:name]).to eq('/tmp/foo')
103 expect(resource[:recursemode]).to eq(:deep)
105 it 'accepts a recursemode lazy' do
106 resource = acl_type.new name: '/tmp/foo', permission: ['o::rwx'], recursemode: :lazy
107 expect(resource[:name]).to eq('/tmp/foo')
108 expect(resource[:recursemode]).to eq(:lazy)
110 it 'fails with a wrong action' do
112 acl_type.new name: '/tmp/foo', permission: ['o::rwx'], action: :xset
115 it 'fails with a wrong recurselimit' do
117 acl_type.new name: '/tmp/foo', permission: ['o::rwx'], recurselimit: :a
120 it 'fails with a wrong first argument' do
122 acl_type.new name: '/tmp/foo', permission: ['wrong::rwx']
125 it 'fails with a wrong last argument' do
127 acl_type.new name: '/tmp/foo', permission: ['user::-_-']
132 context 'when removing default parameters' do
133 basic_perms = ['user:foo:rwx', 'group:foo:rwx']
134 advanced_perms = ['user:foo:rwx', 'group:foo:rwx', 'default:user:foo:---']
135 advanced_perms_results = ['user:foo:rwx', 'group:foo:rwx']
141 mysql_perms_results = [
145 it 'does not do anything with no defaults' do
146 expect(acl_type.pick_default_perms(basic_perms)).to match_array(basic_perms)
148 it 'removes defaults' do
149 expect(acl_type.pick_default_perms(advanced_perms)).to match_array(advanced_perms_results)
151 it 'removes defaults with d:' do
152 expect(acl_type.pick_default_perms(mysql_perms)).to match_array(mysql_perms_results)
156 # rubocop:enable RSpec/MultipleExpectations