diff options
| author | Vlad Shablinsky | 2016-06-27 16:36:12 +0300 |
|---|---|---|
| committer | Xu Cheng | 2016-06-29 21:04:27 +0800 |
| commit | d47df68cbd03fb621825d12a531f91938571ec04 (patch) | |
| tree | 2a433a95ef516ca0d66273162777eba756dbf071 /Library | |
| parent | cb3ad215b4fc011e3405e6e577b97819c683036a (diff) | |
| download | brew-d47df68cbd03fb621825d12a531f91938571ec04.tar.bz2 | |
test_formula: add outdated_versions tests
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/test/test_formula.rb | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb index 7f015f653..ebbd308b8 100644 --- a/Library/Homebrew/test/test_formula.rb +++ b/Library/Homebrew/test/test_formula.rb @@ -406,3 +406,101 @@ class FormulaTests < Homebrew::TestCase assert f_true.pour_bottle? end end + +class OutdatedVersionsTests < Homebrew::TestCase + attr_reader :outdated_prefix, :same_prefix, :greater_prefix, :head_prefix + attr_reader :f + + def setup + @f = formula { url "foo"; version "1.20" } + @outdated_prefix = HOMEBREW_CELLAR/"#{f.name}/1.11" + @same_prefix = HOMEBREW_CELLAR/"#{f.name}/1.20" + @greater_prefix = HOMEBREW_CELLAR/"#{f.name}/1.21" + @head_prefix = HOMEBREW_CELLAR/"#{f.name}/HEAD" + end + + def teardown + @f.rack.rmtree + end + + def setup_tab_for_prefix(prefix, tap_string=nil) + prefix.mkpath + tab = Tab.empty + tab.tabfile = prefix.join("INSTALL_RECEIPT.json") + tab.source["tap"] = tap_string if tap_string + tab.write + tab + end + + def test_greater_different_tap_installed + setup_tab_for_prefix(greater_prefix, "user/repo") + assert_predicate f.outdated_versions, :empty? + end + + def test_greater_same_tap_installed + f.instance_variable_set(:@tap, CoreTap.instance) + setup_tab_for_prefix(greater_prefix, "homebrew/core") + assert_predicate f.outdated_versions, :empty? + end + + def test_outdated_different_tap_installed + setup_tab_for_prefix(outdated_prefix, "user/repo") + refute_predicate f.outdated_versions, :empty? + end + + def test_outdated_same_tap_installed + f.instance_variable_set(:@tap, CoreTap.instance) + setup_tab_for_prefix(outdated_prefix, "homebrew/core") + refute_predicate f.outdated_versions, :empty? + end + + def test_same_head_installed + f.instance_variable_set(:@tap, CoreTap.instance) + setup_tab_for_prefix(head_prefix, "homebrew/core") + assert_predicate f.outdated_versions, :empty? + end + + def test_different_head_installed + f.instance_variable_set(:@tap, CoreTap.instance) + setup_tab_for_prefix(head_prefix, "user/repo") + assert_predicate f.outdated_versions, :empty? + end + + def test_mixed_taps_greater_version_installed + f.instance_variable_set(:@tap, CoreTap.instance) + setup_tab_for_prefix(outdated_prefix, "homebrew/core") + setup_tab_for_prefix(greater_prefix, "user/repo") + + assert_predicate f.outdated_versions, :empty? + + setup_tab_for_prefix(greater_prefix, "homebrew/core") + + assert_predicate f.outdated_versions, :empty? + end + + def test_mixed_taps_outdated_version_installed + f.instance_variable_set(:@tap, CoreTap.instance) + + extra_outdated_prefix = HOMEBREW_CELLAR/"#{f.name}/1.0" + + setup_tab_for_prefix(outdated_prefix) + setup_tab_for_prefix(extra_outdated_prefix, "homebrew/core") + + refute_predicate f.outdated_versions, :empty? + + setup_tab_for_prefix(outdated_prefix, "user/repo") + + refute_predicate f.outdated_versions, :empty? + end + + def test_same_version_tap_installed + f.instance_variable_set(:@tap, CoreTap.instance) + setup_tab_for_prefix(same_prefix, "homebrew/core") + + assert_predicate f.outdated_versions, :empty? + + setup_tab_for_prefix(same_prefix, "user/repo") + + assert_predicate f.outdated_versions, :empty? + end +end |
