aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_ARGV.rb
blob: 838ce52817a9d506240a4a1522ff176ab7d9e315 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
require 'testing_env'
require 'extend/ARGV'

class ArgvExtensionTests < Test::Unit::TestCase
  def setup
    @argv = [].extend(HomebrewArgvExtension)
  end

  def test_argv_formulae
    @argv.unshift 'mxcl'
    assert_raises(FormulaUnavailableError) { @argv.formulae }
  end

  def test_argv_kegs
    keg = HOMEBREW_CELLAR + "mxcl/10.0"
    keg.mkpath
    @argv << 'mxcl'
    assert_equal 1, @argv.kegs.length
  ensure
    keg.rmtree
  end

  def test_argv_named
    @argv << 'mxcl' << '--debug' << '-v'
    assert_equal 1, @argv.named.length
  end

  def test_empty_argv
    assert_empty @argv.named
    assert_empty @argv.kegs
    assert_empty @argv.formulae
    assert_empty @argv
  end

  def test_switch?
    @argv << "-ns" << "-i" << "--bar"
    %w{n s i}.each { |s| assert @argv.switch?(s) }
    %w{b ns bar --bar -n}.each { |s| assert !@argv.switch?(s) }
  end

  def test_flag?
    @argv << "--foo" << "-bq" << "--bar"
    assert @argv.flag?("--foo")
    assert @argv.flag?("--bar")
    assert @argv.flag?("--baz")
    assert @argv.flag?("--qux")
    assert !@argv.flag?("--frotz")
    assert !@argv.flag?("--debug")
  end

  def test_filter_for_dependencies_clears_flags
    @argv << "--debug"
    @argv.filter_for_dependencies { assert @argv.empty? }
  end

  def test_filter_for_dependencies_ensures_argv_restored
    @argv.expects(:replace).with(@argv.clone)
    begin
      @argv.filter_for_dependencies { raise Exception }
    rescue Exception
    end
  end

  def test_filter_for_dependencies_returns_block_value
    assert_equal 1, @argv.filter_for_dependencies { 1 }
  end
end