aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
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