| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: false | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  | require "language/java" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe Language::Java do | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |   describe "::java_home" do | 
					
						
							| 
									
										
										
										
											2020-11-19 14:03:57 +00:00
										 |  |  |     if !OS.mac? || MacOS.version < :big_sur | 
					
						
							|  |  |  |       it "returns valid JAVA_HOME if version is specified", :needs_java do | 
					
						
							|  |  |  |         java_home = described_class.java_home("1.6+") | 
					
						
							|  |  |  |         expect(java_home/"bin/java").to be_an_executable | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "returns valid JAVA_HOME if version is not specified", :needs_java do | 
					
						
							|  |  |  |       java_home = described_class.java_home | 
					
						
							|  |  |  |       expect(java_home/"bin/java").to be_an_executable | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-25 06:27:53 +05:30
										 |  |  |   describe "::java_home_env" do | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     it "returns java_home path with version if version specified", :needs_macos do | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |       java_home = described_class.java_home_env("blah") | 
					
						
							| 
									
										
										
										
											2017-06-24 02:18:52 +05:30
										 |  |  |       expect(java_home[:JAVA_HOME]).to include("--version blah") | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-06-24 02:18:52 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     it "returns java_home path without version if version is not specified", :needs_java do | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |       java_home = described_class.java_home_env | 
					
						
							| 
									
										
										
										
											2017-06-24 02:18:52 +05:30
										 |  |  |       expect(java_home[:JAVA_HOME]).not_to include("--version") | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-25 06:27:53 +05:30
										 |  |  |   describe "::overridable_java_home_env" do | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     it "returns java_home path with version if version specified", :needs_macos do | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |       java_home = described_class.overridable_java_home_env("blah") | 
					
						
							| 
									
										
										
										
											2017-06-25 06:27:53 +05:30
										 |  |  |       expect(java_home[:JAVA_HOME]).to include("--version blah") | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-06-24 02:18:52 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     it "returns java_home path without version if version is not specified", :needs_java do | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |       java_home = described_class.overridable_java_home_env | 
					
						
							| 
									
										
										
										
											2017-06-25 06:27:53 +05:30
										 |  |  |       expect(java_home[:JAVA_HOME]).not_to include("--version") | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |