diff options
Diffstat (limited to 'Library/Homebrew/test/test_formula_spec_selection.rb')
| -rw-r--r-- | Library/Homebrew/test/test_formula_spec_selection.rb | 99 | 
1 files changed, 99 insertions, 0 deletions
| diff --git a/Library/Homebrew/test/test_formula_spec_selection.rb b/Library/Homebrew/test/test_formula_spec_selection.rb new file mode 100644 index 000000000..73cf97ad2 --- /dev/null +++ b/Library/Homebrew/test/test_formula_spec_selection.rb @@ -0,0 +1,99 @@ +require 'testing_env' +require 'formula' + +class FormulaSpecSelectionTests < Test::Unit::TestCase +  def formula(*args, &block) +    @_f = Class.new(Formula, &block).new(*args) +  end + +  def assert_spec_selected(spec) +    assert_equal @_f.send(spec), @_f.active_spec +  end + +  def test_selects_head_when_requested +    ARGV.stubs(:build_head?).returns(true) + +    formula do +      url 'foo-1.0' +      devel { url 'foo-1.1a' } +      head 'foo' +    end + +    assert_spec_selected :head +  end + +  def test_selects_devel_when_requested +    ARGV.stubs(:build_devel?).returns(true) + +    formula do +      url 'foo-1.0' +      devel { url 'foo-1.1a' } +      head 'foo' +    end + +    assert_spec_selected :devel +  end + +  def test_selects_bottle_when_available +    formula do +      def install_bottle?(*); true; end + +      url 'foo-1.0' +      bottle do +        { +          :snow_leopard_32 => 'deadbeef'*5, +          :snow_leopard    => 'faceb00c'*5, +          :lion            => 'baadf00d'*5, +          :mountain_lion   => '8badf00d'*5, +        }.each_pair do |cat, val| +          sha1(val => cat) +        end +      end +    end + +    assert_spec_selected :bottle +  end + +  def test_selects_stable_by_default +    formula do +      url 'foo-1.0' +      devel { url 'foo-1.1a' } +      head 'foo' +    end + +    assert_spec_selected :stable +  end + +  def test_selects_stable_when_exclusive +    formula do +      url 'foo-1.0' +    end + +    assert_spec_selected :stable +  end + +  def test_selects_devel_before_head +    formula do +      devel { url 'foo-1.1a' } +      head 'foo' +    end + +    assert_spec_selected :devel +  end + +  def test_selects_devel_when_exclusive +    formula do +      devel { url 'foo-1.1a' } +    end + +    assert_spec_selected :devel +  end + +  def test_selects_head_when_exclusive +    formula do +      head 'foo' +    end + +    assert_spec_selected :head +  end +end | 
