2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require_relative  " shared_examples/requires_cask_token "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								require_relative  " shared_examples/invalid_option "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 19:26:56 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								describe  Hbc :: CLI :: Install ,  :cask  do  
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  it_behaves_like  " a command that requires a Cask token " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it_behaves_like  " a command that handles invalid options " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 18:57:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  it  " displays the installation progress "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 02:28:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    output  =  Regexp . new  << ~ EOS 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-19 19:56:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      == >  Downloading  file : . * caffeine . zip 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 18:57:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      == >  Verifying  checksum  for  Cask  local - caffeine 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      == >  Installing  Cask  local - caffeine 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-19 19:56:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      == >  Moving  App  'Caffeine.app'  to  '.*Caffeine.app' . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      . * local - caffeine  was  successfully  installed! 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 18:57:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    EOS 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      described_class . run ( " local-caffeine " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 18:57:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } . to  output ( output ) . to_stdout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  it  " allows staging and activation of multiple Casks at once "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    described_class . run ( " local-transmission " ,  " local-caffeine " ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-07 15:58:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect ( Hbc :: CaskLoader . load ( cask_path ( " local-transmission " ) ) ) . to  be_installed 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-03 09:06:23 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect ( Hbc :: Config . global . appdir . join ( " Transmission.app " ) ) . to  be_a_directory 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-07 15:58:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect ( Hbc :: CaskLoader . load ( cask_path ( " local-caffeine " ) ) ) . to  be_installed 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-03 09:06:23 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect ( Hbc :: Config . global . appdir . join ( " Caffeine.app " ) ) . to  be_a_directory 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " skips double install (without nuking existing installation) "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    described_class . run ( " local-transmission " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    described_class . run ( " local-transmission " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-07 15:58:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect ( Hbc :: CaskLoader . load ( cask_path ( " local-transmission " ) ) ) . to  be_installed 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " prints a warning message on double install "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    described_class . run ( " local-transmission " ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 12:29:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      described_class . run ( " local-transmission " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-11 02:00:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } . to  output ( / Warning: Cask 'local-transmission' is already installed. / ) . to_stderr 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " allows double install with --force "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    described_class . run ( " local-transmission " ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 12:29:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        described_class . run ( " local-transmission " ,  " --force " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 12:29:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } . to  output ( / It seems there is already an App at.*overwriting \ . / ) . to_stderr 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } . to  output ( / local-transmission was successfully installed! / ) . to_stdout 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " skips dependencies with --skip-cask-deps "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    described_class . run ( " with-depends-on-cask-multiple " ,  " --skip-cask-deps " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-07 15:58:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect ( Hbc :: CaskLoader . load ( cask_path ( " with-depends-on-cask-multiple " ) ) ) . to  be_installed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( Hbc :: CaskLoader . load ( cask_path ( " local-caffeine " ) ) ) . not_to  be_installed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( Hbc :: CaskLoader . load ( cask_path ( " local-transmission " ) ) ) . not_to  be_installed 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " properly handles Casks that are not present "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 12:29:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      described_class . run ( " notacask " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-11 08:37:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } . to  raise_error ( Hbc :: CaskUnavailableError ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " returns a suggestion for a misspelled Cask "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 12:29:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      described_class . run ( " localcaffeine " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-11 08:37:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } . to  raise_error ( Hbc :: CaskUnavailableError ,  / Cask 'localcaffeine' is unavailable: No Cask with this name exists \ . Did you mean “local-caffeine”? / ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  " returns multiple suggestions for a Cask fragment "  do 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-08 12:29:33 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expect  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-03 10:49:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      described_class . run ( " local " ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-11 08:37:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } . to  raise_error ( Hbc :: CaskUnavailableError ,  / Cask 'local' is unavailable: No Cask with this name exists \ . Did you mean one of these \ ? \ nlocal-caffeine \ nlocal-transmission / ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 22:11:42 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end