summaryrefslogtreecommitdiff
path: root/test/optparse
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-11-19 11:26:54 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-11-19 11:26:54 +0000
commit644f0445e86034dde399d6db8261c82cf34b8e07 (patch)
treee5f07c9ca2f876d615549cbd3ea46f6ea370e421 /test/optparse
parent3c1f696a507fb8f7deb87b7111d44458efb8c051 (diff)
* lib/optparse.rb: shell completion support for bash.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/optparse')
-rw-r--r--test/optparse/test_bash_completion.rb42
-rw-r--r--test/optparse/test_getopts.rb4
2 files changed, 45 insertions, 1 deletions
diff --git a/test/optparse/test_bash_completion.rb b/test/optparse/test_bash_completion.rb
new file mode 100644
index 0000000..baeb6d9
--- /dev/null
+++ b/test/optparse/test_bash_completion.rb
@@ -0,0 +1,42 @@
+require 'test/unit'
+require 'optparse'
+
+class TestOptionParser < Test::Unit::TestCase
+end
+class TestOptionParser::BashCompletion < Test::Unit::TestCase
+ def setup
+ @opt = OptionParser.new
+ @opt.define("-z", "zzz") {}
+ @opt.define("--foo") {}
+ @opt.define("--bar=BAR") {}
+ @opt.define("--for=TYPE", [:hello, :help, :zot]) {}
+ end
+
+ def test_empty
+ assert_equal([], @opt.candidate(""))
+ end
+
+ def test_one_hyphen
+ assert_equal(%w[-z --foo --bar= --for=], @opt.candidate("-"))
+ end
+
+ def test_two_hyphen
+ assert_equal(%w[--foo --bar= --for=], @opt.candidate("--"))
+ end
+
+ def test_long_f
+ assert_equal(%w[--foo --for=], @opt.candidate("--f"))
+ end
+
+ def test_long_for_option
+ assert_equal(%w[--for=], @opt.candidate("--for"))
+ end
+
+ def test_long_for_option_args
+ assert_equal(%w[hello help zot], @opt.candidate("--for="))
+ end
+
+ def test_long_for_option_complete
+ assert_equal(%w[hello help], @opt.candidate("--for=h"))
+ end
+end
diff --git a/test/optparse/test_getopts.rb b/test/optparse/test_getopts.rb
index 1ba194a..ae22f68 100644
--- a/test/optparse/test_getopts.rb
+++ b/test/optparse/test_getopts.rb
@@ -1,7 +1,9 @@
require 'test/unit'
require 'optparse'
-class TestOptionParserGetopts < Test::Unit::TestCase
+class TestOptionParser < Test::Unit::TestCase
+end
+class TestOptionParser::Getopts < Test::Unit::TestCase
def setup
@opt = OptionParser.new
end