brew/Library/Homebrew/test/test_ARGV.rb
Max Howell b63ec18564 Proper single character switch handling
Includes a test. So now you can do `brew cleanup -ns` and it will work.
2012-03-06 20:28:06 +00:00

49 lines
1.0 KiB
Ruby

require 'testing_env'
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
ARGV.extend(HomebrewArgvExtension)
module ExtendArgvPlusYeast
def reset
@named = nil
@downcased_unique_named = nil
@formulae = nil
@kegs = nil
ARGV.shift while ARGV.length > 0
end
end
ARGV.extend ExtendArgvPlusYeast
class ARGVTests < Test::Unit::TestCase
def test_ARGV
assert ARGV.named.empty?
(HOMEBREW_CELLAR+'mxcl/10.0').mkpath
ARGV.reset
ARGV.unshift 'mxcl'
assert_equal 1, ARGV.named.length
assert_equal 1, ARGV.kegs.length
assert_raises(FormulaUnavailableError) { ARGV.formulae }
end
def test_switch?
ARGV.reset
ARGV.unshift "-ns"
ARGV.unshift "-i"
ARGV.unshift "--bar"
assert ARGV.switch?('n')
assert ARGV.switch?('s')
assert ARGV.switch?('i')
assert !ARGV.switch?('b')
assert !ARGV.switch?('ns')
assert !ARGV.switch?('bar')
assert !ARGV.switch?('--bar')
assert !ARGV.switch?('-n')
end
end