diff options
Diffstat (limited to 'Library/Homebrew/test/ARGV_test.rb')
| -rw-r--r-- | Library/Homebrew/test/ARGV_test.rb | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/Library/Homebrew/test/ARGV_test.rb b/Library/Homebrew/test/ARGV_test.rb new file mode 100644 index 000000000..6805e0c62 --- /dev/null +++ b/Library/Homebrew/test/ARGV_test.rb @@ -0,0 +1,80 @@ +require "testing_env" +require "extend/ARGV" + +class ArgvExtensionTests < Homebrew::TestCase + def setup + @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 |
