Add tests documenting install receipt loading behavior

This commit is contained in:
Jack Nagel 2014-06-29 21:49:34 -05:00
parent 34db1bd1ef
commit 4d11def53c

View File

@ -1,5 +1,6 @@
require "testing_env"
require "tab"
require "formula"
class TabTests < Homebrew::TestCase
def setup
@ -85,3 +86,60 @@ class TabTests < Homebrew::TestCase
assert_equal :libcxx, tab.cxxstdlib.type
end
end
class TabLoadingTests < Homebrew::TestCase
def setup
@f = formula { url "foo-1.0" }
@f.prefix.mkpath
@path = @f.prefix.join(Tab::FILENAME)
@path.write Pathname.new(TEST_DIRECTORY).join("fixtures", "receipt.json").read
@path = @path.realpath
end
def teardown
@f.rack.rmtree
end
def test_for_keg
tab = Tab.for_keg(@f.prefix)
assert_equal @path, tab.tabfile
end
def test_for_keg_nonexistent_path
@path.unlink
tab = Tab.for_keg(@f.prefix)
assert_nil tab.tabfile
end
def test_for_formula
tab = Tab.for_formula(@f)
assert_equal @path, tab.tabfile
end
def test_for_formula_nonexistent_path
@path.unlink
tab = Tab.for_formula(@f)
assert_nil tab.tabfile
end
def test_for_formula_multiple_kegs
f2 = formula { url "foo-2.0" }
f2.prefix.mkpath
assert_equal @f.rack, f2.rack
assert_equal 2, @f.rack.subdirs.length
tab = Tab.for_formula(@f)
assert_equal @path, tab.tabfile
end
def test_for_formula_outdated_keg
f2 = formula { url "foo-2.0" }
assert_equal @f.rack, f2.rack
assert_equal 1, @f.rack.subdirs.length
tab = Tab.for_formula(f2)
assert_equal @path, tab.tabfile
end
end