| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  | require 'testing_env' | 
					
						
							|  |  |  | require 'formula' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  | class FormulaValidationTests < Homebrew::TestCase | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  |   def assert_invalid(attr, &block) | 
					
						
							|  |  |  |     e = assert_raises(FormulaValidationError, &block) | 
					
						
							|  |  |  |     assert_equal attr, e.attr | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_cant_override_brew | 
					
						
							| 
									
										
										
										
											2014-12-28 21:43:04 -05:00
										 |  |  |     e = assert_raises(RuntimeError) { 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 | 
					
						
							| 
									
										
										
										
											2014-12-26 16:08:12 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     assert_invalid :version do | 
					
						
							|  |  |  |       formula do | 
					
						
							|  |  |  |         url "foo" | 
					
						
							|  |  |  |         version nil | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2013-04-13 17:40:12 -05:00
										 |  |  |   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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-29 23:52:53 -05:00
										 |  |  |     assert_predicate f, :devel? | 
					
						
							| 
									
										
										
										
											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" } | 
					
						
							| 
									
										
										
										
											2014-10-29 23:52:53 -05:00
										 |  |  |     assert_predicate f, :head? | 
					
						
							| 
									
										
										
										
											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 |