diff options
| author | Jack Nagel | 2013-09-17 21:25:38 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-09-17 21:29:50 -0500 |
| commit | 73ddbb6df53a5657e61e7074c62b5bae77c5de78 (patch) | |
| tree | bccb5eb5226f0feeebbb3c8ca834678fd19c5a51 /Library/Homebrew/test | |
| parent | 274c0df3cfaae3dcf012d6b4eee111e0f33755f1 (diff) | |
| download | homebrew-73ddbb6df53a5657e61e7074c62b5bae77c5de78.tar.bz2 | |
SoftwareSpec tests are now Resource tests
Diffstat (limited to 'Library/Homebrew/test')
| -rw-r--r-- | Library/Homebrew/test/test_resource.rb | 122 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_software_spec.rb | 120 |
2 files changed, 122 insertions, 120 deletions
diff --git a/Library/Homebrew/test/test_resource.rb b/Library/Homebrew/test/test_resource.rb new file mode 100644 index 000000000..7916c3e0d --- /dev/null +++ b/Library/Homebrew/test/test_resource.rb @@ -0,0 +1,122 @@ +require 'testing_env' +require 'resource' + +class ResourceTests < Test::Unit::TestCase + include VersionAssertions + + def setup + @resource = Resource.new('test') + end + + def test_url + @resource.url('foo') + assert_equal 'foo', @resource.url + end + + def test_url_with_specs + @resource.url('foo', :branch => 'master') + assert_equal 'foo', @resource.url + assert_equal({ :branch => 'master' }, @resource.specs) + end + + def test_url_with_custom_download_strategy_class + strategy = Class.new(AbstractDownloadStrategy) + @resource.url('foo', :using => strategy) + assert_equal 'foo', @resource.url + assert_equal strategy, @resource.download_strategy + end + + def test_url_with_specs_and_download_strategy + strategy = Class.new(AbstractDownloadStrategy) + @resource.url('foo', :using => strategy, :branch => 'master') + assert_equal 'foo', @resource.url + assert_equal({ :branch => 'master' }, @resource.specs) + assert_equal strategy, @resource.download_strategy + end + + def test_url_with_custom_download_strategy_symbol + @resource.url('foo', :using => :git) + assert_equal 'foo', @resource.url + assert_equal GitDownloadStrategy, @resource.download_strategy + end + + def test_version + @resource.version('1.0') + assert_version_equal '1.0', @resource.version + assert !@resource.version.detected_from_url? + end + + def test_version_from_url + @resource.url('http://foo.com/bar-1.0.tar.gz') + assert_version_equal '1.0', @resource.version + assert @resource.version.detected_from_url? + end + + def test_version_with_scheme + scheme = Class.new(Version) + @resource.version('1.0' => scheme) + assert_version_equal '1.0', @resource.version + assert_instance_of scheme, @resource.version + end + + def test_version_from_tag + @resource.url('http://foo.com/bar-1.0.tar.gz', :tag => 'v1.0.2') + assert_version_equal '1.0.2', @resource.version + assert @resource.version.detected_from_url? + end + + def test_rejects_non_string_versions + assert_raises(TypeError) { @resource.version(1) } + assert_raises(TypeError) { @resource.version(2.0) } + assert_raises(TypeError) { @resource.version(Object.new) } + end + + def test_mirrors + assert_empty @resource.mirrors + @resource.mirror('foo') + @resource.mirror('bar') + assert_equal 'foo', @resource.mirrors.shift + assert_equal 'bar', @resource.mirrors.shift + end + + def test_checksum_setters + assert_nil @resource.checksum + @resource.sha1('baadidea'*5) + assert_equal Checksum.new(:sha1, 'baadidea'*5), @resource.checksum + @resource.sha256('baadidea'*8) + assert_equal Checksum.new(:sha256, 'baadidea'*8), @resource.checksum + end + + def test_download_strategy + strategy = Object.new + DownloadStrategyDetector. + expects(:detect).with("foo", nil).returns(strategy) + @resource.url("foo") + assert_equal strategy, @resource.download_strategy + end + + def test_verify_download_integrity_missing + fn = Pathname.new('test') + checksum = @resource.sha1('baadidea'*5) + + fn.expects(:verify_checksum). + with(checksum).raises(ChecksumMissingError) + fn.expects(:sha1) + + shutup { @resource.verify_download_integrity(fn) } + end + + def test_verify_download_integrity_mismatch + fn = Object.new + checksum = @resource.sha1('baadidea'*5) + + fn.expects(:verify_checksum).with(checksum). + raises(ChecksumMismatchError.new(checksum, Object.new)) + + shutup do + assert_raises(ChecksumMismatchError) do + @resource.verify_download_integrity(fn) + end + end + end +end diff --git a/Library/Homebrew/test/test_software_spec.rb b/Library/Homebrew/test/test_software_spec.rb index 9cc491a07..7d67d90d3 100644 --- a/Library/Homebrew/test/test_software_spec.rb +++ b/Library/Homebrew/test/test_software_spec.rb @@ -2,126 +2,6 @@ require 'testing_env' require 'software_spec' require 'bottles' -class SoftwareSpecTests < Test::Unit::TestCase - include VersionAssertions - - def setup - @spec = SoftwareSpec.new - end - - def test_url - @spec.url('foo') - assert_equal 'foo', @spec.url - end - - def test_url_with_specs - @spec.url('foo', :branch => 'master') - assert_equal 'foo', @spec.url - assert_equal({ :branch => 'master' }, @spec.specs) - end - - def test_url_with_custom_download_strategy_class - strategy = Class.new(AbstractDownloadStrategy) - @spec.url('foo', :using => strategy) - assert_equal 'foo', @spec.url - assert_equal strategy, @spec.download_strategy - end - - def test_url_with_specs_and_download_strategy - strategy = Class.new(AbstractDownloadStrategy) - @spec.url('foo', :using => strategy, :branch => 'master') - assert_equal 'foo', @spec.url - assert_equal({ :branch => 'master' }, @spec.specs) - assert_equal strategy, @spec.download_strategy - end - - def test_url_with_custom_download_strategy_symbol - @spec.url('foo', :using => :git) - assert_equal 'foo', @spec.url - assert_equal GitDownloadStrategy, @spec.download_strategy - end - - def test_version - @spec.version('1.0') - assert_version_equal '1.0', @spec.version - assert !@spec.version.detected_from_url? - end - - def test_version_from_url - @spec.url('http://foo.com/bar-1.0.tar.gz') - assert_version_equal '1.0', @spec.version - assert @spec.version.detected_from_url? - end - - def test_version_with_scheme - scheme = Class.new(Version) - @spec.version('1.0' => scheme) - assert_version_equal '1.0', @spec.version - assert_instance_of scheme, @spec.version - end - - def test_version_from_tag - @spec.url('http://foo.com/bar-1.0.tar.gz', :tag => 'v1.0.2') - assert_version_equal '1.0.2', @spec.version - assert @spec.version.detected_from_url? - end - - def test_rejects_non_string_versions - assert_raises(TypeError) { @spec.version(1) } - assert_raises(TypeError) { @spec.version(2.0) } - assert_raises(TypeError) { @spec.version(Object.new) } - end - - def test_mirrors - assert_empty @spec.mirrors - @spec.mirror('foo') - @spec.mirror('bar') - assert_equal 'foo', @spec.mirrors.shift - assert_equal 'bar', @spec.mirrors.shift - end - - def test_checksum_setters - assert_nil @spec.checksum - @spec.sha1('baadidea'*5) - assert_equal Checksum.new(:sha1, 'baadidea'*5), @spec.checksum - @spec.sha256('baadidea'*8) - assert_equal Checksum.new(:sha256, 'baadidea'*8), @spec.checksum - end - - def test_download_strategy - strategy = Object.new - DownloadStrategyDetector. - expects(:detect).with("foo", nil).returns(strategy) - @spec.url("foo") - assert_equal strategy, @spec.download_strategy - end - - def test_verify_download_integrity_missing - fn = Object.new - checksum = @spec.sha1('baadidea'*5) - - fn.expects(:verify_checksum). - with(checksum).raises(ChecksumMissingError) - fn.expects(:sha1) - - shutup { @spec.verify_download_integrity(fn) } - end - - def test_verify_download_integrity_mismatch - fn = Object.new - checksum = @spec.sha1('baadidea'*5) - - fn.expects(:verify_checksum).with(checksum). - raises(ChecksumMismatchError.new(checksum, Object.new)) - - shutup do - assert_raises(ChecksumMismatchError) do - @spec.verify_download_integrity(fn) - end - end - end -end - class HeadSoftwareSpecTests < Test::Unit::TestCase include VersionAssertions |
