From 5ce65371696cd45fe7b681b237f73cc47d0f8eb2 Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Tue, 2 Feb 2021 14:42:47 +0000 Subject: [PATCH 1/2] extend/os/mac/language/java: improve readability --- Library/Homebrew/extend/os/mac/language/java.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/extend/os/mac/language/java.rb b/Library/Homebrew/extend/os/mac/language/java.rb index c7a9a01903..d7fe99ae3a 100644 --- a/Library/Homebrew/extend/os/mac/language/java.rb +++ b/Library/Homebrew/extend/os/mac/language/java.rb @@ -4,7 +4,10 @@ module Language module Java 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 From d3507d9899e94c5371e8172162cc5082b242aec8 Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Tue, 2 Feb 2021 14:47:53 +0000 Subject: [PATCH 2/2] test/language/java_spec: test both Mac and Linux --- Library/Homebrew/test/language/java_spec.rb | 34 ++++++++++----------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/Library/Homebrew/test/language/java_spec.rb b/Library/Homebrew/test/language/java_spec.rb index fb68cd25c4..24cd5aa052 100644 --- a/Library/Homebrew/test/language/java_spec.rb +++ b/Library/Homebrew/test/language/java_spec.rb @@ -11,6 +11,14 @@ describe Language::Java do end end + let(:expected_home) do + if OS.mac? + f.opt_libexec/"openjdk.jdk/Contents/Home" + else + f.opt_libexec + end + end + before do allow(Formula).to receive(:[]).and_return(f) allow(f).to receive(:any_version_installed?).and_return(true) @@ -18,48 +26,38 @@ describe Language::Java do end 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+") - 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 not specified", :needs_macos do + it "returns valid JAVA_HOME if version is not specified" do java_home = described_class.java_home - expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/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) + expect(java_home).to eql(expected_home) end end describe "::java_home_env" do it "returns java_home path if version specified" do 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 it "returns java_home path if version is not specified" do 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 describe "::overridable_java_home_env" do it "returns java_home path if version specified" do 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 it "returns java_home path if version is not specified" do 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