mirror of
https://github.com/inspec/inspec
synced 2024-12-19 17:43:44 +00:00
374e365c02
I noticed that my profile targeting group "staff" on OSX wasn't returning *me*. I'm awesome! So that seemed wrong. And it turns out it is wrong. We were not collecting any users whose primary group was that group. (almost all regular users are in group staff and they're all missing). Signed-off-by: Ryan Davis <zenspider@chef.io>
97 lines
2.9 KiB
Ruby
97 lines
2.9 KiB
Ruby
require "helper"
|
|
require "inspec/resources/groups"
|
|
|
|
describe "Inspec::Resources::Group" do
|
|
|
|
# ubuntu 14.04
|
|
it "verify group on ubuntu" do
|
|
resource = MockLoader.new(:ubuntu1404).load_resource("group", "root")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.gid).must_equal 0
|
|
end
|
|
|
|
it "verify group on ubuntu with mixed case" do
|
|
resource = MockLoader.new(:ubuntu1404).load_resource("group", "GroupWithCaps")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.gid).must_equal 999
|
|
end
|
|
|
|
it "verify group on ubuntu with members" do
|
|
resource = MockLoader.new(:ubuntu1404).load_resource("group", "www-data")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.members).must_equal "www-data,root"
|
|
end
|
|
|
|
# ubuntu with non-existent group
|
|
it "verify group on ubuntu" do
|
|
resource = MockLoader.new(:ubuntu1404).load_resource("group", "nogroup")
|
|
_(resource.exists?).must_equal false
|
|
_(resource.gid).must_be_nil
|
|
end
|
|
|
|
# mac
|
|
it "verify group on mac" do
|
|
resource = MockLoader.new(:osx104).load_resource("group", "root")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.gid).must_equal 0
|
|
end
|
|
|
|
def unmock(&blk)
|
|
require "fetchers/mock"
|
|
require "inspec/runner"
|
|
|
|
# TODO: there is WAY too much magic going on in here
|
|
runner = Inspec::Runner.new
|
|
runner.add_target("inspec.yml" => "name: inspec-shell")
|
|
profile = runner.target_profiles.first
|
|
ctx = profile.runner_context
|
|
|
|
ctx.load blk
|
|
end
|
|
|
|
if osx?
|
|
it "actually verifies group on mac" do
|
|
resource = unmock { group "staff" }
|
|
_(resource.exists?).must_equal true
|
|
_(resource.members).must_include "root"
|
|
_(resource.members).must_include ENV["LOGNAME"]
|
|
end
|
|
end
|
|
|
|
# freebsd
|
|
it "verify group on freebsd" do
|
|
resource = MockLoader.new(:freebsd10).load_resource("group", "root")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.gid).must_equal 0
|
|
end
|
|
|
|
# windows with local group
|
|
it "verify administrator group on windows" do
|
|
resource = MockLoader.new(:windows).load_resource("group", "Administrators")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.gid).must_equal "S-1-5-32-544"
|
|
_(resource.members).must_equal ["Administrators", "Domain Admins"]
|
|
end
|
|
|
|
it "verify power users group on windows" do
|
|
resource = MockLoader.new(:windows).load_resource("group", "Power Users")
|
|
_(resource.exists?).must_equal true
|
|
_(resource.gid).must_equal "S-1-5-32-547"
|
|
_(resource.members).must_equal []
|
|
end
|
|
|
|
# windows non-existent group
|
|
it "verify non-existing group on windows" do
|
|
resource = MockLoader.new(:windows).load_resource("group", "dhcp")
|
|
_(resource.exists?).must_equal false
|
|
_(resource.gid).must_be_nil
|
|
_(resource.members).must_be_nil
|
|
end
|
|
|
|
# undefined
|
|
it "verify package handling on unsupported os" do
|
|
resource = MockLoader.new(:undefined).load_resource("group", "root")
|
|
_(resource.exists?).must_equal false
|
|
_(resource.gid).must_be_nil
|
|
end
|
|
end
|