diff options
Diffstat (limited to 'spec/ruby/core/file/realpath_spec.rb')
| -rw-r--r-- | spec/ruby/core/file/realpath_spec.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/spec/ruby/core/file/realpath_spec.rb b/spec/ruby/core/file/realpath_spec.rb index 49aed7b88c..ccb981eff1 100644 --- a/spec/ruby/core/file/realpath_spec.rb +++ b/spec/ruby/core/file/realpath_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path('../../../spec_helper', __FILE__) +require_relative '../../spec_helper' platform_is_not :windows do describe "File.realpath" do @@ -54,18 +54,28 @@ platform_is_not :windows do File.realpath(@relative_symlink).should == @file end + it "removes the file element when going one level up" do + File.realpath('../', @file).should == @real_dir + end + it "raises an Errno::ELOOP if the symlink points to itself" do File.unlink @link File.symlink(@link, @link) - lambda { File.realpath(@link) }.should raise_error(Errno::ELOOP) + -> { File.realpath(@link) }.should.raise(Errno::ELOOP) end it "raises Errno::ENOENT if the file is absent" do - lambda { File.realpath(@fake_file) }.should raise_error(Errno::ENOENT) + -> { File.realpath(@fake_file) }.should.raise(Errno::ENOENT) end it "raises Errno::ENOENT if the symlink points to an absent file" do - lambda { File.realpath(@fake_link) }.should raise_error(Errno::ENOENT) + -> { File.realpath(@fake_link) }.should.raise(Errno::ENOENT) + end + + it "converts the argument with #to_path" do + path = mock("path") + path.should_receive(:to_path).and_return(__FILE__) + File.realpath(path).should == File.realpath(__FILE__ ) end end end |
