Merge pull request #10485 from carlocab/java-mac

java: improve tests
This commit is contained in:
Mike McQuaid 2021-02-02 16:56:41 +00:00 committed by GitHub
commit de9d006513
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 19 deletions

View File

@ -4,7 +4,10 @@
module Language module Language
module Java module Java
def self.java_home(version = nil) def self.java_home(version = nil)
find_openjdk_formula(version)&.opt_libexec&.join("openjdk.jdk/Contents/Home") openjdk = find_openjdk_formula(version)
return unless openjdk
openjdk.opt_libexec/"openjdk.jdk/Contents/Home"
end end
end end
end end

View File

@ -11,6 +11,14 @@ describe Language::Java do
end end
end end
let(:expected_home) do
if OS.mac?
f.opt_libexec/"openjdk.jdk/Contents/Home"
else
f.opt_libexec
end
end
before do before do
allow(Formula).to receive(:[]).and_return(f) allow(Formula).to receive(:[]).and_return(f)
allow(f).to receive(:any_version_installed?).and_return(true) allow(f).to receive(:any_version_installed?).and_return(true)
@ -18,48 +26,38 @@ describe Language::Java do
end end
describe "::java_home" do describe "::java_home" do
it "returns valid JAVA_HOME if version is specified", :needs_macos do it "returns valid JAVA_HOME if version is specified" do
java_home = described_class.java_home("1.8+") java_home = described_class.java_home("1.8+")
expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/Home") expect(java_home).to eql(expected_home)
end end
it "returns valid JAVA_HOME if version is not specified", :needs_macos do it "returns valid JAVA_HOME if version is not specified" do
java_home = described_class.java_home java_home = described_class.java_home
expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/Home") expect(java_home).to eql(expected_home)
end
it "returns valid JAVA_HOME if version is specified", :needs_linux do
java_home = described_class.java_home("1.8+")
expect(java_home).to eql(f.opt_libexec)
end
it "returns valid JAVA_HOME if version is not specified", :needs_linux do
java_home = described_class.java_home
expect(java_home).to eql(f.opt_libexec)
end end
end end
describe "::java_home_env" do describe "::java_home_env" do
it "returns java_home path if version specified" do it "returns java_home path if version specified" do
java_home_env = described_class.java_home_env("1.8+") java_home_env = described_class.java_home_env("1.8+")
expect(java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) expect(java_home_env[:JAVA_HOME]).to eql(expected_home.to_s)
end end
it "returns java_home path if version is not specified" do it "returns java_home path if version is not specified" do
java_home_env = described_class.java_home_env java_home_env = described_class.java_home_env
expect(java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) expect(java_home_env[:JAVA_HOME]).to eql(expected_home.to_s)
end end
end end
describe "::overridable_java_home_env" do describe "::overridable_java_home_env" do
it "returns java_home path if version specified" do it "returns java_home path if version specified" do
overridable_java_home_env = described_class.overridable_java_home_env("1.8+") overridable_java_home_env = described_class.overridable_java_home_env("1.8+")
expect(overridable_java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_home}}")
end end
it "returns java_home path if version is not specified" do it "returns java_home path if version is not specified" do
overridable_java_home_env = described_class.overridable_java_home_env overridable_java_home_env = described_class.overridable_java_home_env
expect(overridable_java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_home}}")
end end
end end
end end