2018-03-04 15:09:32 +00:00
|
|
|
require_relative '../../spec_helper'
|
|
|
|
require_relative 'fixtures/common'
|
2017-05-07 12:04:49 +00:00
|
|
|
|
|
|
|
describe "Dir.home" do
|
2018-12-30 00:05:56 +00:00
|
|
|
before :each do
|
|
|
|
@home = ENV['HOME']
|
|
|
|
ENV['HOME'] = "/rubyspec_home"
|
|
|
|
end
|
2017-05-07 12:04:49 +00:00
|
|
|
|
2018-12-30 00:05:56 +00:00
|
|
|
after :each do
|
|
|
|
ENV['HOME'] = @home
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
|
2018-12-30 00:05:56 +00:00
|
|
|
describe "when called without arguments" do
|
|
|
|
it "returns the current user's home directory, reading $HOME first" do
|
|
|
|
Dir.home.should == "/rubyspec_home"
|
|
|
|
end
|
|
|
|
|
|
|
|
it "returns a non-frozen string" do
|
|
|
|
Dir.home.frozen?.should == false
|
2018-12-04 00:40:49 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-12-30 00:05:56 +00:00
|
|
|
describe "when called with the current user name" do
|
|
|
|
platform_is :solaris do
|
|
|
|
it "returns the named user's home directory from the user database" do
|
|
|
|
Dir.home(ENV['USER']).should == `getent passwd #{ENV['USER']}|cut -d: -f6`.chomp
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
platform_is_not :windows, :solaris do
|
|
|
|
it "returns the named user's home directory, from the user database" do
|
|
|
|
Dir.home(ENV['USER']).should == `echo ~#{ENV['USER']}`.chomp
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "returns a non-frozen string" do
|
|
|
|
Dir.home(ENV['USER']).frozen?.should == false
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "raises an ArgumentError if the named user doesn't exist" do
|
2019-07-27 12:40:09 +02:00
|
|
|
-> { Dir.home('geuw2n288dh2k') }.should raise_error(ArgumentError)
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
end
|