| 
									
										
										
										
											2010-03-08 22:27:08 -08:00
										 |  |  | require 'testing_env' | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  | require 'extend/ARGV' | 
					
						
							| 
									
										
										
										
											2010-03-08 22:27:08 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  | class ArgvExtensionTests < Test::Unit::TestCase | 
					
						
							|  |  |  |   def setup | 
					
						
							|  |  |  |     @argv = [].extend(HomebrewArgvExtension) | 
					
						
							| 
									
										
										
										
											2010-03-08 22:27:08 -08:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |   def test_argv_formulae | 
					
						
							|  |  |  |     @argv.unshift 'mxcl' | 
					
						
							|  |  |  |     assert_raises(FormulaUnavailableError) { @argv.formulae } | 
					
						
							| 
									
										
										
										
											2012-04-16 16:43:42 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |   def test_argv_kegs | 
					
						
							|  |  |  |     keg = HOMEBREW_CELLAR + "mxcl/10.0" | 
					
						
							|  |  |  |     keg.mkpath | 
					
						
							|  |  |  |     @argv << 'mxcl' | 
					
						
							|  |  |  |     assert_equal 1, @argv.kegs.length | 
					
						
							|  |  |  |   ensure | 
					
						
							|  |  |  |     keg.rmtree | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-06-20 00:51:01 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |   def test_argv_named | 
					
						
							|  |  |  |     @argv << 'mxcl' << '--debug' << '-v' | 
					
						
							|  |  |  |     assert_equal 1, @argv.named.length | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-06-20 00:51:01 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |   def test_empty_argv | 
					
						
							|  |  |  |     assert_empty @argv.named | 
					
						
							|  |  |  |     assert_empty @argv.kegs | 
					
						
							|  |  |  |     assert_empty @argv.formulae | 
					
						
							|  |  |  |     assert_empty @argv | 
					
						
							| 
									
										
										
										
											2010-03-08 22:27:08 -08:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-03-06 20:11:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def test_switch? | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |     @argv << "-ns" << "-i" << "--bar" | 
					
						
							|  |  |  |     %w{n s i}.each { |s| assert @argv.switch?(s) } | 
					
						
							|  |  |  |     %w{b ns bar --bar -n}.each { |s| assert !@argv.switch?(s) } | 
					
						
							| 
									
										
										
										
											2012-03-06 20:11:35 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 22:34:53 -05:00
										 |  |  |   def test_flag? | 
					
						
							|  |  |  |     @argv << "--foo" << "-bq" << "--bar" | 
					
						
							|  |  |  |     assert @argv.flag?("--foo") | 
					
						
							|  |  |  |     assert @argv.flag?("--bar") | 
					
						
							|  |  |  |     assert @argv.flag?("--baz") | 
					
						
							|  |  |  |     assert @argv.flag?("--qux") | 
					
						
							|  |  |  |     assert !@argv.flag?("--frotz") | 
					
						
							|  |  |  |     assert !@argv.flag?("--debug") | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-22 04:32:16 -06:00
										 |  |  |   def test_filter_for_dependencies_clears_flags | 
					
						
							| 
									
										
										
										
											2014-03-13 10:11:00 -05:00
										 |  |  |     @argv << "--HEAD" << "--devel" | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |     @argv.filter_for_dependencies { assert @argv.empty? } | 
					
						
							| 
									
										
										
										
											2013-01-22 04:32:16 -06:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_filter_for_dependencies_ensures_argv_restored | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |     @argv.expects(:replace).with(@argv.clone) | 
					
						
							| 
									
										
										
										
											2013-01-22 04:32:16 -06:00
										 |  |  |     begin | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |       @argv.filter_for_dependencies { raise Exception } | 
					
						
							| 
									
										
										
										
											2013-01-22 04:32:16 -06:00
										 |  |  |     rescue Exception | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_filter_for_dependencies_returns_block_value | 
					
						
							| 
									
										
										
										
											2013-04-07 16:35:34 -05:00
										 |  |  |     assert_equal 1, @argv.filter_for_dependencies { 1 } | 
					
						
							| 
									
										
										
										
											2013-01-22 04:32:16 -06:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2010-03-08 22:27:08 -08:00
										 |  |  | end |