fe676f0ac4
getent does not exist on 10.9 so this commit uses dscacheutil to query the homedir for the root user.
51 lines
1.6 KiB
Ruby
51 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
require 'facter/root_home'
|
|
|
|
describe Facter::Util::RootHome do
|
|
context "solaris" do
|
|
let(:root_ent) { "root:x:0:0:Super-User:/:/sbin/sh" }
|
|
let(:expected_root_home) { "/" }
|
|
|
|
it "should return /" do
|
|
Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent)
|
|
Facter::Util::RootHome.get_root_home.should == expected_root_home
|
|
end
|
|
end
|
|
context "linux" do
|
|
let(:root_ent) { "root:x:0:0:root:/root:/bin/bash" }
|
|
let(:expected_root_home) { "/root" }
|
|
|
|
it "should return /root" do
|
|
Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent)
|
|
Facter::Util::RootHome.get_root_home.should == expected_root_home
|
|
end
|
|
end
|
|
context "windows" do
|
|
before :each do
|
|
Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(nil)
|
|
end
|
|
it "should be nil on windows" do
|
|
Facter::Util::RootHome.get_root_home.should be_nil
|
|
end
|
|
end
|
|
end
|
|
|
|
describe 'root_home', :type => :fact do
|
|
before { Facter.clear }
|
|
after { Facter.clear }
|
|
|
|
context "macosx" do
|
|
before do
|
|
Facter.fact(:kernel).stubs(:value).returns("Darwin")
|
|
Facter.fact(:osfamily).stubs(:value).returns("Darwin")
|
|
end
|
|
let(:expected_root_home) { "/var/root" }
|
|
sample_dscacheutil = File.read(fixtures('dscacheutil','root'))
|
|
|
|
it "should return /var/root" do
|
|
Facter::Util::Resolution.stubs(:exec).with("dscacheutil -q user -a name root").returns(sample_dscacheutil)
|
|
Facter.fact(:root_home).value.should == expected_root_home
|
|
end
|
|
end
|
|
|
|
end
|