aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMike McQuaid2017-02-20 11:04:12 +0000
committerGitHub2017-02-20 11:04:12 +0000
commitfe4b2e97a1bc37a210029b19167e80a059a69720 (patch)
treef5865574f44a14070734d5b6e2d2d0c408dbb3a2 /Library/Homebrew/test
parent9f31d41fb263718bff98e194df411b8aaea72aba (diff)
parentc49b97dd9c4d65a68494a467d542a42528ea9b38 (diff)
downloadbrew-fe4b2e97a1bc37a210029b19167e80a059a69720.tar.bz2
Merge pull request #1632 from rwhogg/make-java-req-portable
java_requirement: port to Linux and refactor
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/java_requirement_test.rb50
-rw-r--r--Library/Homebrew/test/os/mac/java_requirement_test.rb31
2 files changed, 81 insertions, 0 deletions
diff --git a/Library/Homebrew/test/java_requirement_test.rb b/Library/Homebrew/test/java_requirement_test.rb
new file mode 100644
index 000000000..d0b51f92c
--- /dev/null
+++ b/Library/Homebrew/test/java_requirement_test.rb
@@ -0,0 +1,50 @@
+require "testing_env"
+require "requirements/java_requirement"
+
+class JavaRequirementTests < Homebrew::TestCase
+ def setup
+ super
+ ENV["JAVA_HOME"] = nil
+ end
+
+ def test_message
+ a = JavaRequirement.new([])
+ assert_match(/Java is required to install this formula./, a.message)
+ end
+
+ def test_inspect
+ a = JavaRequirement.new(%w[1.7+])
+ assert_equal a.inspect, '#<JavaRequirement: "java" [] version="1.7+">'
+ end
+
+ def test_display_s
+ x = JavaRequirement.new([])
+ assert_equal x.display_s, "java"
+ y = JavaRequirement.new(%w[1.8])
+ assert_equal y.display_s, "java = 1.8"
+ z = JavaRequirement.new(%w[1.8+])
+ assert_equal z.display_s, "java >= 1.8"
+ end
+
+ def test_satisfied?
+ a = JavaRequirement.new(%w[1.8])
+ File.stubs(:executable?).returns(false)
+ refute_predicate a, :satisfied?
+
+ b = JavaRequirement.new([])
+ b.stubs(:preferred_java).returns(Pathname.new("/usr/bin/java"))
+ assert_predicate b, :satisfied?
+
+ c = JavaRequirement.new(%w[1.7+])
+ c.stubs(:possible_javas).returns([Pathname.new("/usr/bin/java")])
+ Utils.stubs(:popen_read).returns('java version "1.6.0_5"')
+ refute_predicate c, :satisfied?
+ Utils.stubs(:popen_read).returns('java version "1.8.0_5"')
+ assert_predicate c, :satisfied?
+
+ d = JavaRequirement.new(%w[1.7])
+ d.stubs(:possible_javas).returns([Pathname.new("/usr/bin/java")])
+ Utils.stubs(:popen_read).returns('java version "1.8.0_5"')
+ refute_predicate d, :satisfied?
+ end
+end
diff --git a/Library/Homebrew/test/os/mac/java_requirement_test.rb b/Library/Homebrew/test/os/mac/java_requirement_test.rb
new file mode 100644
index 000000000..83c1af95c
--- /dev/null
+++ b/Library/Homebrew/test/os/mac/java_requirement_test.rb
@@ -0,0 +1,31 @@
+require "testing_env"
+require "requirements/java_requirement"
+require "fileutils"
+
+class OSMacJavaRequirementTests < Homebrew::TestCase
+ def setup
+ super
+ @java_req = JavaRequirement.new(%w[1.8])
+ @tmp_java_home = mktmpdir
+ @tmp_pathname = Pathname.new(@tmp_java_home)
+ FileUtils.mkdir @tmp_pathname/"bin"
+ FileUtils.touch @tmp_pathname/"bin/java"
+ @java_req.stubs(:preferred_java).returns(@tmp_pathname/"bin/java")
+ @java_req.satisfied?
+ end
+
+ def test_java_env_apple
+ ENV.expects(:prepend_path)
+ ENV.expects(:append_to_cflags)
+ @java_req.modify_build_environment
+ assert_equal ENV["JAVA_HOME"], @tmp_java_home
+ end
+
+ def test_java_env_oracle
+ FileUtils.mkdir @tmp_pathname/"include"
+ ENV.expects(:prepend_path)
+ ENV.expects(:append_to_cflags).twice
+ @java_req.modify_build_environment
+ assert_equal ENV["JAVA_HOME"], @tmp_java_home
+ end
+end