aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorVlad Shablinsky2016-06-27 16:36:12 +0300
committerXu Cheng2016-06-29 21:04:27 +0800
commitd47df68cbd03fb621825d12a531f91938571ec04 (patch)
tree2a433a95ef516ca0d66273162777eba756dbf071 /Library
parentcb3ad215b4fc011e3405e6e577b97819c683036a (diff)
downloadbrew-d47df68cbd03fb621825d12a531f91938571ec04.tar.bz2
test_formula: add outdated_versions tests
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/test_formula.rb98
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