test/test_rdoc_options.rb in rdoc-3.0.1 vs test/test_rdoc_options.rb in rdoc-3.1
- old
+ new
@@ -7,12 +7,17 @@
class TestRDocOptions < MiniTest::Unit::TestCase
def setup
@options = RDoc::Options.new
+ @generators = RDoc::RDoc::GENERATORS.dup
end
+ def teardown
+ RDoc::RDoc::GENERATORS.replace @generators
+ end
+
def test_check_files
out, err = capture_io do
Dir.mktmpdir do |dir|
Dir.chdir dir do
FileUtils.touch 'unreadable'
@@ -45,10 +50,24 @@
skip "Encoding not implemented" unless Object.const_defined? :Encoding
assert_equal Encoding.default_external, @options.encoding
end
+ def test_generator_descriptions
+ # HACK autotest/isolate should take care of this
+ RDoc::RDoc::GENERATORS.clear
+ RDoc::RDoc::GENERATORS['darkfish'] = RDoc::Generator::Darkfish
+ RDoc::RDoc::GENERATORS['ri'] = RDoc::Generator::RI
+
+ expected = <<-EXPECTED.chomp
+ darkfish - HTML generator, written by Michael Granger
+ ri - creates ri data files
+ EXPECTED
+
+ assert_equal expected, @options.generator_descriptions
+ end
+
def test_parse_dash_p
out, err = capture_io do
@options.parse %w[-p]
end
@@ -176,10 +195,31 @@
assert_equal 1, out.scan(/HTML generator options:/).length
assert_equal 1, out.scan(/ri generator options:/). length
end
+ def test_parse_help_extra_generator
+ RDoc::RDoc::GENERATORS['test'] = Class.new do
+ def self.setup_options options
+ op = options.option_parser
+
+ op.separator 'test generator options:'
+ end
+ end
+
+ out, = capture_io do
+ begin
+ @options.parse %w[--help]
+ rescue SystemExit
+ end
+ end
+
+ assert_equal 1, out.scan(/HTML generator options:/).length
+ assert_equal 1, out.scan(/ri generator options:/). length
+ assert_equal 1, out.scan(/test generator options:/).length
+ end
+
def test_parse_ignore_invalid
out, err = capture_io do
@options.parse %w[--ignore-invalid --bogus]
end
@@ -276,24 +316,27 @@
ensure
$LOAD_PATH.replace orig_LOAD_PATH
end
def test_setup_generator
- test_generator = Object.new
- def test_generator.setup_options(op)
- @op = op
+ test_generator = Class.new do
+ def self.setup_options op
+ @op = op
+ end
+
+ def self.op() @op end
end
- def test_generator.op() @op end
-
RDoc::RDoc::GENERATORS['TestGenerator'] = test_generator
@options.setup_generator 'TestGenerator'
assert_equal test_generator, @options.generator
assert_equal [test_generator], @options.generator_options
assert_equal @options, test_generator.op
+ ensure
+ RDoc::RDoc::GENERATORS.delete 'TestGenerator'
end
end