diff options
Diffstat (limited to 'Library/Homebrew/test/test_formula_validation.rb')
| -rw-r--r-- | Library/Homebrew/test/test_formula_validation.rb | 69 | 
1 files changed, 69 insertions, 0 deletions
| diff --git a/Library/Homebrew/test/test_formula_validation.rb b/Library/Homebrew/test/test_formula_validation.rb new file mode 100644 index 000000000..be4c38c64 --- /dev/null +++ b/Library/Homebrew/test/test_formula_validation.rb @@ -0,0 +1,69 @@ +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_head_only_valid +    assert_nothing_raised do +      formula do +        head "foo" +      end +    end +  end +end | 
