brew/Library/Homebrew/test/ARGV_test.rb
Alyssa Ross 70a381a00f tests: enforce super in lifecycle hooks
This will allow us to have global setup and teardown for tests.

For example, we can automatically clear caches after each test, to avoid
annoying intermittent failures like #1879 and #1886.
2017-01-21 11:34:52 +00:00

82 lines
1.9 KiB
Ruby

require "testing_env"
require "extend/ARGV"
class ArgvExtensionTests < Homebrew::TestCase
def setup
super
@argv = [].extend(HomebrewArgvExtension)
end
def test_argv_formulae
@argv.unshift "mxcl"
assert_raises(FormulaUnavailableError) { @argv.formulae }
end
def test_argv_casks
@argv.unshift "mxcl"
assert_equal [], @argv.casks
end
def test_argv_kegs
keg = HOMEBREW_CELLAR + "mxcl/10.0"
keg.mkpath
@argv << "mxcl"
assert_equal 1, @argv.kegs.length
ensure
keg.parent.rmtree
end
def test_argv_named
@argv << "foo" << "--debug" << "-v"
assert_equal %w[foo], @argv.named
end
def test_options_only
@argv << "--foo" << "-vds" << "a" << "b" << "cdefg"
assert_equal %w[--foo -vds], @argv.options_only
end
def test_flags_only
@argv << "--foo" << "-vds" << "a" << "b" << "cdefg"
assert_equal %w[--foo], @argv.flags_only
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" << "-a-bad-arg"
%w[n s i].each { |s| assert @argv.switch?(s) }
%w[b ns bar --bar -n a bad arg].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_value
@argv << "--foo=" << "--bar=ab"
assert_equal "", @argv.value("foo")
assert_equal "ab", @argv.value("bar")
assert_nil @argv.value("baz")
end
def test_values
@argv << "--foo=" << "--bar=a" << "--baz=b,c"
assert_equal [], @argv.values("foo")
assert_equal ["a"], @argv.values("bar")
assert_equal ["b", "c"], @argv.values("baz")
assert_nil @argv.values("qux")
end
end