diff options
Diffstat (limited to 'Library/Homebrew/test')
| -rw-r--r-- | Library/Homebrew/test/test_download_strategies.rb | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/Library/Homebrew/test/test_download_strategies.rb b/Library/Homebrew/test/test_download_strategies.rb index 3a330e797..cdcb92dc9 100644 --- a/Library/Homebrew/test/test_download_strategies.rb +++ b/Library/Homebrew/test/test_download_strategies.rb @@ -2,7 +2,7 @@ require 'testing_env' require 'download_strategy' require 'bottles' # XXX: hoist these regexps into constants in Pathname? -class SoftwareSpecDouble +class ResourceDouble attr_reader :url, :specs def initialize(url="http://foo.com/bar.tar.gz", specs={}) @@ -14,8 +14,8 @@ end class AbstractDownloadStrategyTests < Test::Unit::TestCase def setup @name = "foo" - @package = SoftwareSpecDouble.new - @strategy = AbstractDownloadStrategy.new(@name, @package) + @resource = ResourceDouble.new + @strategy = AbstractDownloadStrategy.new(@name, @resource) @args = %w{foo bar baz} end @@ -37,6 +37,32 @@ class AbstractDownloadStrategyTests < Test::Unit::TestCase end end +class DownloadStrategyCheckoutNameTests < Test::Unit::TestCase + def setup + @resource = ResourceDouble.new("http://foo.com/bar") + @strategy = AbstractDownloadStrategy + end + + def escaped(tag) + "#{ERB::Util.url_encode(@resource.url)}--#{tag}" + end + + def test_explicit_name + downloader = @strategy.new("baz", @resource) + assert_equal "baz--foo", downloader.checkout_name("foo") + end + + def test_empty_name + downloader = @strategy.new("", @resource) + assert_equal escaped("foo"), downloader.checkout_name("foo") + end + + def test_unknown_name + downloader = @strategy.new("__UNKNOWN__", @resource) + assert_equal escaped("foo"), downloader.checkout_name("foo") + end +end + class DownloadStrategyDetectorTests < Test::Unit::TestCase def setup @d = DownloadStrategyDetector.new |
