55 lines
1.2 KiB
Ruby
55 lines
1.2 KiB
Ruby
![]() |
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'
|
||
|
|
||
|
|
||
|
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
|
||
|
|
||
|
end
|