| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  | require 'testing_env' | 
					
						
							|  |  |  | require 'formula' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FormulaValidationTests < Test::Unit::TestCase | 
					
						
							|  |  |  |   def assert_invalid(attr, &block) | 
					
						
							|  |  |  |     e = assert_raises(FormulaValidationError, &block) | 
					
						
							|  |  |  |     assert_equal attr, e.attr | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_cant_override_brew | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:14 -05:00
										 |  |  |     e = assert_raises(RuntimeError) { Class.new(Formula) { def brew; end } } | 
					
						
							| 
									
										
										
										
											2013-07-22 11:41:47 -05:00
										 |  |  |     assert_match %r{You cannot override Formula#brew}, e.message | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_validates_name | 
					
						
							|  |  |  |     assert_invalid :name do | 
					
						
							|  |  |  |       formula "name with spaces" do | 
					
						
							|  |  |  |         url "foo" | 
					
						
							|  |  |  |         version "1.0" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_validates_url | 
					
						
							|  |  |  |     assert_invalid :url do | 
					
						
							|  |  |  |       formula do | 
					
						
							|  |  |  |         url "" | 
					
						
							|  |  |  |         version "1" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_validates_version | 
					
						
							|  |  |  |     assert_invalid :version do | 
					
						
							|  |  |  |       formula do | 
					
						
							|  |  |  |         url "foo" | 
					
						
							|  |  |  |         version "version with spaces" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     assert_invalid :version do | 
					
						
							|  |  |  |       formula do | 
					
						
							|  |  |  |         url "foo" | 
					
						
							|  |  |  |         version "" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_validates_when_initialize_overridden | 
					
						
							|  |  |  |     assert_invalid :name do | 
					
						
							|  |  |  |       formula do | 
					
						
							| 
									
										
										
										
											2014-04-06 15:52:04 -05:00
										 |  |  |         def initialize(*); end | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  |       end.brew {} | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:13 -05:00
										 |  |  |   def test_devel_only_valid | 
					
						
							| 
									
										
										
										
											2013-10-14 21:46:21 -05:00
										 |  |  |     f = formula do | 
					
						
							|  |  |  |       devel do | 
					
						
							|  |  |  |         url "foo" | 
					
						
							|  |  |  |         version "1.0" | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:13 -05:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2013-10-14 21:46:21 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     assert_equal "foo", f.url | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:13 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  |   def test_head_only_valid | 
					
						
							| 
									
										
										
										
											2013-10-14 21:46:21 -05:00
										 |  |  |     f = formula { head "foo" } | 
					
						
							|  |  |  |     assert_equal "foo", f.url | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:14 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def test_empty_formula_invalid | 
					
						
							| 
									
										
										
										
											2013-04-27 14:50:34 -05:00
										 |  |  |     assert_raises(FormulaSpecificationError) { formula {} } | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:14 -05:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  | end |