2010-03-16 22:33:13 -07:00
|
|
|
require 'testing_env'
|
|
|
|
|
|
|
|
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
|
|
|
|
ARGV.extend(HomebrewArgvExtension)
|
|
|
|
|
|
|
|
require 'test/testball'
|
|
|
|
require 'utils'
|
|
|
|
|
2011-09-16 11:04:12 -07:00
|
|
|
class AbstractDownloadStrategy
|
|
|
|
attr_reader :url
|
|
|
|
end
|
2010-03-16 22:33:13 -07:00
|
|
|
|
|
|
|
class MostlyAbstractFormula <Formula
|
|
|
|
@url=''
|
|
|
|
@homepage = 'http://example.com/'
|
|
|
|
end
|
|
|
|
|
|
|
|
class TestBallOverrideBrew <Formula
|
|
|
|
def initialize
|
|
|
|
super "foo"
|
|
|
|
end
|
|
|
|
def brew
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
class FormulaTests < Test::Unit::TestCase
|
|
|
|
|
|
|
|
def test_prefix
|
|
|
|
nostdout do
|
|
|
|
TestBall.new.brew do |f|
|
|
|
|
assert_equal File.expand_path(f.prefix), (HOMEBREW_CELLAR+f.name+'0.1').to_s
|
|
|
|
assert_kind_of Pathname, f.prefix
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_class_naming
|
|
|
|
assert_equal 'ShellFm', Formula.class_s('shell.fm')
|
|
|
|
assert_equal 'Fooxx', Formula.class_s('foo++')
|
|
|
|
assert_equal 'SLang', Formula.class_s('s-lang')
|
|
|
|
assert_equal 'PkgConfig', Formula.class_s('pkg-config')
|
|
|
|
assert_equal 'FooBar', Formula.class_s('foo_bar')
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_cant_override_brew
|
|
|
|
assert_raises(RuntimeError) { TestBallOverrideBrew.new }
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_abstract_formula
|
|
|
|
f=MostlyAbstractFormula.new
|
|
|
|
assert_equal '__UNKNOWN__', f.name
|
|
|
|
assert_raises(RuntimeError) { f.prefix }
|
|
|
|
nostdout { assert_raises(RuntimeError) { f.brew } }
|
|
|
|
end
|
2011-09-16 11:04:12 -07:00
|
|
|
|
|
|
|
def test_mirror_support
|
|
|
|
HOMEBREW_CACHE.mkpath unless HOMEBREW_CACHE.exist?
|
|
|
|
f = TestBallWithMirror.new
|
|
|
|
tarball, downloader = f.fetch
|
|
|
|
|
|
|
|
assert_equal f.url, "file:///#{TEST_FOLDER}/bad_url/testball-0.1.tbz"
|
|
|
|
assert_equal downloader.url, "file:///#{TEST_FOLDER}/tarballs/testball-0.1.tbz"
|
|
|
|
end
|
2010-03-16 22:33:13 -07:00
|
|
|
end
|