From d1ce5bafc9b33e516ec34daa37efc32b6c367c82 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Thu, 26 Sep 2013 16:59:45 -0500 Subject: Raise when given an invalid download strategy spec When DownloadStrategyDetector.detect is given a second argument, and that argument is not a symbol or an AbstractDownloadStrategy subclass, it is silently ignored, and we fall back to guessing the strategy based on the URL. This means I can do url 'http://foo.com/bar.tar.gz', :using => Class.new and things will appear to work, even though I have clearly passed an invalid value for :using. A more useful behavior is to raise an exception for unknown strategy specifications. --- Library/Homebrew/test/test_download_strategies.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Library/Homebrew/test') diff --git a/Library/Homebrew/test/test_download_strategies.rb b/Library/Homebrew/test/test_download_strategies.rb index ef330de42..3a330e797 100644 --- a/Library/Homebrew/test/test_download_strategies.rb +++ b/Library/Homebrew/test/test_download_strategies.rb @@ -51,4 +51,10 @@ class DownloadStrategyDetectorTests < Test::Unit::TestCase @d = DownloadStrategyDetector.detect(Object.new) assert_equal CurlDownloadStrategy, @d end + + def test_raises_when_passed_unrecognized_strategy + assert_raises(TypeError) do + DownloadStrategyDetector.detect("foo", Class.new) + end + end end -- cgit v1.2.3