| 
									
										
										
										
											2013-04-08 00:55:44 -05:00
										 |  |  | require 'testing_env' | 
					
						
							| 
									
										
										
										
											2013-09-14 10:16:52 -05:00
										 |  |  | require 'software_spec' | 
					
						
							| 
									
										
										
										
											2013-04-08 00:55:44 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-17 21:25:40 -05:00
										 |  |  | class SoftwareSpecTests < Test::Unit::TestCase | 
					
						
							| 
									
										
										
										
											2013-11-26 23:31:27 -06:00
										 |  |  |   include VersionAssertions | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-17 21:25:40 -05:00
										 |  |  |   def setup | 
					
						
							|  |  |  |     @spec = SoftwareSpec.new | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_resource | 
					
						
							|  |  |  |     @spec.resource('foo') { url 'foo-1.0' } | 
					
						
							|  |  |  |     assert @spec.resource?('foo') | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_raises_when_duplicate_resources_are_defined | 
					
						
							|  |  |  |     @spec.resource('foo') { url 'foo-1.0' } | 
					
						
							|  |  |  |     assert_raises(DuplicateResourceError) do | 
					
						
							|  |  |  |       @spec.resource('foo') { url 'foo-1.0' } | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_raises_when_accessing_missing_resources | 
					
						
							|  |  |  |     assert_raises(ResourceMissingError) { @spec.resource('foo') } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-27 14:50:22 -06:00
										 |  |  |   def test_set_owner | 
					
						
							|  |  |  |     owner = stub(:name => 'some_name') | 
					
						
							|  |  |  |     @spec.owner = owner | 
					
						
							|  |  |  |     assert_equal owner, @spec.owner | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-17 21:25:40 -05:00
										 |  |  |   def test_resource_owner | 
					
						
							|  |  |  |     @spec.resource('foo') { url 'foo-1.0' } | 
					
						
							| 
									
										
										
										
											2013-09-23 21:39:19 -05:00
										 |  |  |     @spec.owner = stub(:name => 'some_name') | 
					
						
							|  |  |  |     assert_equal 'some_name', @spec.name | 
					
						
							|  |  |  |     @spec.resources.each_value { |r| assert_equal @spec, r.owner } | 
					
						
							| 
									
										
										
										
											2013-09-17 21:25:40 -05:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-09-21 19:27:24 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-26 23:31:27 -06:00
										 |  |  |   def test_resource_without_version_receives_owners_version | 
					
						
							|  |  |  |     @spec.url('foo-42') | 
					
						
							|  |  |  |     @spec.resource('bar') { url 'bar' } | 
					
						
							|  |  |  |     @spec.owner = stub(:name => 'some_name') | 
					
						
							|  |  |  |     assert_version_equal '42', @spec.resource('bar').version | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-21 19:27:24 -05:00
										 |  |  |   def test_option | 
					
						
							|  |  |  |     @spec.option('foo') | 
					
						
							|  |  |  |     assert @spec.build.has_option? 'foo' | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_option_raises_when_begins_with_dashes | 
					
						
							|  |  |  |     assert_raises(RuntimeError) { @spec.option('--foo') } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_option_raises_when_name_empty | 
					
						
							|  |  |  |     assert_raises(RuntimeError) { @spec.option('') } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_option_accepts_symbols | 
					
						
							|  |  |  |     @spec.option(:foo) | 
					
						
							|  |  |  |     assert @spec.build.has_option? 'foo' | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-09-21 19:27:24 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def test_depends_on | 
					
						
							|  |  |  |     @spec.depends_on('foo') | 
					
						
							|  |  |  |     assert_equal 'foo', @spec.deps.first.name | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_dependency_option_integration | 
					
						
							|  |  |  |     @spec.depends_on 'foo' => :optional | 
					
						
							|  |  |  |     @spec.depends_on 'bar' => :recommended | 
					
						
							|  |  |  |     assert @spec.build.has_option?('with-foo') | 
					
						
							|  |  |  |     assert @spec.build.has_option?('without-bar') | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_explicit_options_override_default_dep_option_description | 
					
						
							|  |  |  |     @spec.option('with-foo', 'blah') | 
					
						
							|  |  |  |     @spec.depends_on('foo' => :optional) | 
					
						
							|  |  |  |     assert_equal 'blah', @spec.build.first.description | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2014-03-13 19:51:23 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def test_patch | 
					
						
							|  |  |  |     @spec.patch :p1, :DATA | 
					
						
							|  |  |  |     assert_equal 1, @spec.patches.length | 
					
						
							|  |  |  |     assert_equal :p1, @spec.patches.first.strip | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-09-17 21:25:40 -05:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-08 00:55:44 -05:00
										 |  |  | class HeadSoftwareSpecTests < Test::Unit::TestCase | 
					
						
							|  |  |  |   include VersionAssertions | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def setup | 
					
						
							|  |  |  |     @spec = HeadSoftwareSpec.new | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_version | 
					
						
							|  |  |  |     assert_version_equal 'HEAD', @spec.version | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_verify_download_integrity | 
					
						
							|  |  |  |     assert_nil @spec.verify_download_integrity(Object.new) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-10 14:56:02 -05:00
										 |  |  | class BottleSpecificationTests < Test::Unit::TestCase | 
					
						
							| 
									
										
										
										
											2013-04-08 00:55:44 -05:00
										 |  |  |   def setup | 
					
						
							| 
									
										
										
										
											2014-03-10 14:56:02 -05:00
										 |  |  |     @spec = BottleSpecification.new | 
					
						
							| 
									
										
										
										
											2013-04-08 00:55:44 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_checksum_setters | 
					
						
							|  |  |  |     checksums = { | 
					
						
							|  |  |  |       :snow_leopard_32 => 'deadbeef'*5, | 
					
						
							|  |  |  |       :snow_leopard    => 'faceb00c'*5, | 
					
						
							|  |  |  |       :lion            => 'baadf00d'*5, | 
					
						
							|  |  |  |       :mountain_lion   => '8badf00d'*5, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     checksums.each_pair do |cat, sha1| | 
					
						
							|  |  |  |       @spec.sha1(sha1 => cat) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     checksums.each_pair do |cat, sha1| | 
					
						
							| 
									
										
										
										
											2014-04-01 16:03:07 -05:00
										 |  |  |       hsh, _ = @spec.collector.fetch_bottle_for(cat) | 
					
						
							| 
									
										
										
										
											2013-10-21 21:25:42 -07:00
										 |  |  |       assert_equal Checksum.new(:sha1, sha1), hsh | 
					
						
							| 
									
										
										
										
											2013-04-08 00:55:44 -05:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_other_setters | 
					
						
							|  |  |  |     double = Object.new | 
					
						
							|  |  |  |     %w{root_url prefix cellar revision}.each do |method| | 
					
						
							|  |  |  |       @spec.send(method, double) | 
					
						
							|  |  |  |       assert_equal double, @spec.send(method) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |