
It seems only natural that this should be possible, or at the very least, it should not result in calling methods on nil.
81 lines
1.4 KiB
Ruby
81 lines
1.4 KiB
Ruby
require 'testing_env'
|
|
require 'formula'
|
|
|
|
class FormulaValidationTests < Test::Unit::TestCase
|
|
def formula(*args, &block)
|
|
Class.new(Formula, &block).new(*args)
|
|
end
|
|
|
|
def assert_invalid(attr, &block)
|
|
e = assert_raises(FormulaValidationError, &block)
|
|
assert_equal attr, e.attr
|
|
end
|
|
|
|
def test_cant_override_brew
|
|
assert_raises(RuntimeError) do
|
|
Class.new(Formula) { def brew; end }
|
|
end
|
|
end
|
|
|
|
def test_validates_name
|
|
assert_invalid :name do
|
|
formula "name with spaces" do
|
|
url "foo"
|
|
version "1.0"
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_validates_url
|
|
assert_invalid :url do
|
|
formula do
|
|
url ""
|
|
version "1"
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_validates_version
|
|
assert_invalid :version do
|
|
formula do
|
|
url "foo"
|
|
version "version with spaces"
|
|
end
|
|
end
|
|
|
|
assert_invalid :version do
|
|
formula do
|
|
url "foo"
|
|
version ""
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_validates_when_initialize_overridden
|
|
assert_invalid :name do
|
|
formula do
|
|
def initialize; end
|
|
end.brew {}
|
|
end
|
|
end
|
|
|
|
def test_devel_only_valid
|
|
assert_nothing_raised do
|
|
formula do
|
|
devel do
|
|
url "foo"
|
|
version "1.0"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_head_only_valid
|
|
assert_nothing_raised do
|
|
formula do
|
|
head "foo"
|
|
end
|
|
end
|
|
end
|
|
end
|