OSDN Git Service

ruby-1.9.1-rc1
[splhack/AndroidRuby.git] / lib / ruby-1.9.1-rc1 / test / optparse / test_optarg.rb
diff --git a/lib/ruby-1.9.1-rc1/test/optparse/test_optarg.rb b/lib/ruby-1.9.1-rc1/test/optparse/test_optarg.rb
new file mode 100644 (file)
index 0000000..49cb1b9
--- /dev/null
@@ -0,0 +1,44 @@
+require 'test_optparse'
+
+class TestOptionParser::OptArg < TestOptionParser
+  def setup
+    super
+    @opt.def_option("-x[VAL]") {|x| @flag = x}
+    @opt.def_option("--option[=VAL]") {|x| @flag = x}
+  end
+
+  def test_short
+    assert_equal(%w"", no_error {@opt.parse!(%w"-x")})
+    assert_equal(nil, @flag)
+    @flag = false
+    assert_equal(%w"foo", no_error {@opt.parse!(%w"-x foo")})
+    assert_equal(nil, @flag)
+    assert_equal(%w"", no_error {@opt.parse!(%w"-xfoo")})
+    assert_equal("foo", @flag)
+    assert_equal(%w"", no_error {@opt.parse!(%w"-x=")})
+    assert_equal("=", @flag)
+  end
+
+  def test_abbrev
+    assert_equal(%w"", no_error {@opt.parse!(%w"-o")})
+    assert_equal(nil, @flag)
+    @flag = false
+    assert_equal(%w"foo", no_error {@opt.parse!(%w"-o foo")})
+    assert_equal(nil, @flag)
+    assert_equal(%w"", no_error {@opt.parse!(%w"-ofoo")})
+    assert_equal("foo", @flag)
+    assert_equal(%w"", no_error {@opt.parse!(%w"-o=")})
+    assert_equal("=", @flag)
+  end
+
+  def test_long
+    assert_equal(%w"", no_error {@opt.parse!(%w"--opt")})
+    assert_equal(nil, @flag)
+    assert_equal(%w"foo", no_error {@opt.parse!(%w"--opt= foo")})
+    assert_equal("", @flag)
+    assert_equal(%w"", no_error {@opt.parse!(%w"--opt=foo")})
+    assert_equal("foo", @flag)
+    assert_equal(%w"foo", no_error {@opt.parse!(%w"--opt foo")})
+    assert_equal(nil, @flag)
+  end
+end