diff options
Diffstat (limited to 'Library/Homebrew/test')
| -rw-r--r-- | Library/Homebrew/test/test_keg.rb | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_keg.rb b/Library/Homebrew/test/test_keg.rb new file mode 100644 index 000000000..c9e5990a0 --- /dev/null +++ b/Library/Homebrew/test/test_keg.rb @@ -0,0 +1,85 @@ +require 'testing_env' +require 'test/testball' +require 'keg' +require 'stringio' + +class LinkTests < Test::Unit::TestCase + def setup + @formula = TestBall.new + shutup do + @formula.brew { @formula.install } + end + @keg = Keg.for @formula.prefix + @keg.unlink + + @old_stdout = $stdout + $stdout = StringIO.new + + FileUtils.mkpath HOMEBREW_PREFIX/"bin" + end + + def test_linking_keg + assert_equal @keg.link, 3 + end + + def test_unlinking_keg + @keg.link + assert_equal @keg.unlink, 3 + end + + def test_link_dry_run + mode = OpenStruct.new + mode.dry_run = true + + assert_equal @keg.link(mode), 0 + assert !@keg.linked? + + assert_equal $stdout.string, <<-EOS.undent + /private/tmp/testbrew/prefix/bin/hiworld + /private/tmp/testbrew/prefix/bin/helloworld + /private/tmp/testbrew/prefix/bin/goodbye_cruel_world + EOS + end + + def test_linking_fails_when_already_linked + @keg.link + assert_raise RuntimeError, "Cannot link testball" do + @keg.link + end + end + + def test_linking_fails_when_files_exist + FileUtils.touch HOMEBREW_PREFIX/"bin/helloworld" + assert_raise RuntimeError do + @keg.link + end + end + + def test_link_overwrite + FileUtils.touch HOMEBREW_PREFIX/"bin/helloworld" + mode = OpenStruct.new + mode.overwrite = true + assert_equal @keg.link(mode), 3 + end + + def test_link_overwrite_dryrun + FileUtils.touch HOMEBREW_PREFIX/"bin/helloworld" + mode = OpenStruct.new + mode.overwrite = true + mode.dry_run = true + + assert_equal @keg.link(mode), 0 + assert !@keg.linked? + + assert_equal $stdout.string, "/private/tmp/testbrew/prefix/bin/helloworld\n" + end + + def teardown + @keg.unlink + @keg.rmtree + + $stdout = @old_stdout + + FileUtils.rmtree HOMEBREW_PREFIX/"bin" + end +end |
