inspec/test/unit/resources/user_test.rb
Jerry Aldrich 3fe7091254 Wrap deprecated ServerSpec matchers in procs
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00

155 lines
5.8 KiB
Ruby

# encoding: utf-8
# author: Christoph Hartmann
# author: Dominik Richter
require 'helper'
require 'inspec/resource'
describe 'Inspec::Resources::User' do
# ubuntu 14.04 with upstart
it 'read user on ubuntu' do
resource = MockLoader.new(:ubuntu1404).load_resource('user', 'root')
_(resource.exists?).must_equal true
_(resource.group).must_equal 'root'
_(resource.groups).must_equal ['root']
_(resource.home).must_equal '/root'
_(resource.shell).must_equal '/bin/bash'
_(resource.mindays).must_equal 0
_(resource.maxdays).must_equal 99999
_(resource.warndays).must_equal 7
end
# ubuntu 14.04 test with ldap user
it 'read user on ubuntu' do
resource = MockLoader.new(:ubuntu1404).load_resource('user', 'jfolmer')
_(resource.exists?).must_equal true
_(resource.group).must_equal 'domain users'
_(resource.groups).must_equal ['domain users', 'domain admins', 'denied rodc password replication group']
_(resource.home).must_equal '/jfolmer'
_(resource.shell).must_equal '/bin/bash'
_(resource.mindays).must_equal 0
_(resource.maxdays).must_equal 99999
_(resource.warndays).must_equal 7
end
# serverspec compatibility tests (do not test matcher)
it 'returns deprecation notices' do
resource = MockLoader.new(:ubuntu1404).load_resource('user', 'root')
proc { resource.has_uid?(0).must_equal true }
.must_output nil, "[DEPRECATION] has_uid? is deprecated. \n"
proc { resource.has_home_directory?('/root').must_equal true }
.must_output nil, "[DEPRECATION] has_home_directory? is deprecated. Please use: its('home')\n"
proc { resource.has_login_shell?('/bin/bash').must_equal true }
.must_output nil, "[DEPRECATION] has_login_shell? is deprecated. Please use: its('shell')\n"
proc { resource.minimum_days_between_password_change.must_equal 0 }
.must_output nil, "[DEPRECATION] minimum_days_between_password_change is deprecated. Please use: its('mindays')\n"
proc { resource.maximum_days_between_password_change.must_equal 99999 }
.must_output nil, "[DEPRECATION] maximum_days_between_password_change is deprecated. Please use: its('maxdays')\n"
assert_output(nil, "[DEPRECATION] has_authorized_key? is deprecated. \n") do
proc { resource.has_authorized_key?('abc') }.must_raise NotImplementedError
end
end
it 'read user on centos7' do
resource = MockLoader.new(:centos7).load_resource('user', 'root')
_(resource.exists?).must_equal true
_(resource.group).must_equal 'root'
_(resource.groups).must_equal ['root']
_(resource.home).must_equal '/root'
_(resource.shell).must_equal '/bin/bash'
_(resource.mindays).must_equal 0
_(resource.maxdays).must_equal 99999
_(resource.warndays).must_equal 7
end
it 'read user on centos7' do
resource = MockLoader.new(:wrlinux).load_resource('user', 'root')
_(resource.exists?).must_equal true
_(resource.group).must_equal 'root'
_(resource.groups).must_equal ['root']
_(resource.home).must_equal '/root'
_(resource.shell).must_equal '/bin/bash'
_(resource.mindays).must_equal 0
_(resource.maxdays).must_equal 99999
_(resource.warndays).must_equal 7
end
it 'read user on hpux' do
resource = MockLoader.new(:hpux).load_resource('user', 'root')
_(resource.home).must_equal '/'
_(resource.shell).must_equal '/sbin/sh'
end
it 'read user on freebsd' do
resource = MockLoader.new(:freebsd10).load_resource('user', 'root')
_(resource.exists?).must_equal true
_(resource.group).must_equal 'root'
_(resource.groups).must_equal ['root']
_(resource.home).must_equal '/root'
_(resource.shell).must_equal '/bin/csh'
_(resource.mindays).must_be_nil
_(resource.maxdays).must_be_nil
_(resource.warndays).must_be_nil
end
it 'read user on OSX' do
resource = MockLoader.new(:osx104).load_resource('user', 'chartmann')
_(resource.exists?).must_equal true
_(resource.group).must_equal 'staff'
_(resource.groups).must_equal ['staff', 'com.apple.sharepoint.group.1', 'everyone']
_(resource.home).must_equal '/Users/chartmann'
_(resource.shell).must_equal '/bin/zsh'
_(resource.mindays).must_be_nil
_(resource.maxdays).must_be_nil
_(resource.warndays).must_be_nil
end
it 'read administrator user on Windows' do
resource = MockLoader.new(:windows).load_resource('user', 'Administrator')
_(resource.uid).wont_be_nil
_(resource.exists?).must_equal true
_(resource.group).must_be_nil
_(resource.groups).must_equal ['Administrators', 'Users']
_(resource.home).must_be_nil
_(resource.shell).must_be_nil
_(resource.mindays).must_be_nil
_(resource.maxdays).must_be_nil
_(resource.warndays).must_be_nil
_(resource.disabled?).must_equal false
end
it 'read guest user on Windows' do
resource = MockLoader.new(:windows).load_resource('user', 'Guest')
_(resource.uid).wont_be_nil
_(resource.exists?).must_equal true
_(resource.group).must_be_nil
_(resource.groups).must_equal ['Users']
_(resource.home).must_be_nil
_(resource.shell).must_be_nil
_(resource.mindays).must_be_nil
_(resource.maxdays).must_be_nil
_(resource.warndays).must_be_nil
_(resource.disabled?).must_equal true
end
it 'read disabled user on Windows' do
resource = MockLoader.new(:windows).load_resource('user', 'Guest')
_(resource.uid).wont_be_nil
_(resource.exists?).must_equal true
_(resource.disabled?).must_equal true
end
it 'read user on undefined os' do
resource = MockLoader.new(:undefined).load_resource('user', 'root')
_(resource.exists?).must_equal false
_(resource.group).must_be_nil
_(resource.groups).must_be_nil
_(resource.home).must_be_nil
_(resource.shell).must_be_nil
_(resource.mindays).must_be_nil
_(resource.maxdays).must_be_nil
_(resource.warndays).must_be_nil
end
end