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