diff options
Diffstat (limited to 'test/rdoc/test_rdoc_options.rb')
-rw-r--r-- | test/rdoc/test_rdoc_options.rb | 108 |
1 files changed, 93 insertions, 15 deletions
diff --git a/test/rdoc/test_rdoc_options.rb b/test/rdoc/test_rdoc_options.rb index 7c264c5e86..5e8b1ae3d8 100644 --- a/test/rdoc/test_rdoc_options.rb +++ b/test/rdoc/test_rdoc_options.rb @@ -55,11 +55,10 @@ class TestRDocOptions < RDoc::TestCase refute @options.dry_run end - def test_encode_with - coder = {} - class << coder; alias add []=; end + def test_to_yaml + RDoc.load_yaml - @options.encode_with coder + coder = YAML.load(@options.to_yaml) encoding = 'UTF-8' @@ -69,7 +68,6 @@ class TestRDocOptions < RDoc::TestCase 'exclude' => %w[~\z \.orig\z \.rej\z \.bak\z \.gemspec\z], 'hyperlink_all' => false, 'line_numbers' => false, - 'locale' => nil, 'locale_dir' => 'locale', 'locale_name' => nil, 'main_page' => nil, @@ -84,15 +82,17 @@ class TestRDocOptions < RDoc::TestCase 'title' => nil, 'visibility' => :protected, 'webcvs' => nil, + 'skip_tests' => true, } assert_equal expected, coder end - def test_encode_with_trim_paths + def test_to_yaml_trim_paths + RDoc.load_yaml + subdir = nil - coder = {} - class << coder; alias add []=; end + coder = nil temp_dir do |dir| FileUtils.mkdir 'project' @@ -113,7 +113,7 @@ class TestRDocOptions < RDoc::TestCase --include / ] - @options.encode_with coder + coder = YAML.load(@options.to_yaml) end end @@ -145,7 +145,9 @@ class TestRDocOptions < RDoc::TestCase @options.encoding = Encoding::IBM437 - options = YAML.safe_load(YAML.dump(@options), permitted_classes: [RDoc::Options, Symbol]) + options = @options.to_yaml + options = YAML.safe_load(options, permitted_classes: [Symbol]) + options = RDoc::Options.new(options) assert_equal Encoding::IBM437, options.encoding end @@ -154,14 +156,15 @@ class TestRDocOptions < RDoc::TestCase RDoc.load_yaml yaml = <<-YAML ---- !ruby/object:RDoc::Options +--- static_path: - /etc rdoc_include: - /etc YAML - options = YAML.safe_load(yaml, permitted_classes: [RDoc::Options, Symbol]) + options = YAML.safe_load(yaml, permitted_classes: [Symbol]) + options = RDoc::Options.new(options) assert_empty options.rdoc_include assert_empty options.static_path @@ -205,6 +208,13 @@ rdoc_include: assert @options.force_update end + def test_parse_coverage_C + @options.parse %w[-C] + + assert @options.coverage_report + assert @options.force_update + end + def test_parse_coverage_no @options.parse %w[--no-dcov] @@ -217,6 +227,19 @@ rdoc_include: assert_equal 1, @options.coverage_report end + def test_parse_coverage_C_level_1 + @options.parse %w[-C1] + + assert_equal 1, @options.coverage_report + end + + def test_parse_coverage_C_level_0 + @options.parse %w[-C0] + + assert_equal 0, @options.coverage_report + assert @options.force_update + end + def test_parse_dash_p out, err = capture_output do @options.parse %w[-p] @@ -243,6 +266,7 @@ rdoc_include: def test_parse_default @options.parse [] + @options.finish assert_equal RDoc::Generator::Darkfish, @options.generator assert_equal 'darkfish', @options.template @@ -502,6 +526,7 @@ rdoc_include: out, err = capture_output do @options.parse %W[--page-dir #{Dir.tmpdir}] + @options.finish end assert_empty out @@ -530,6 +555,7 @@ rdoc_include: out, err = capture_output do @options.parse %W[--page-dir #{abs_page_dir} --root #{abs_root}] + @options.finish end assert_empty out @@ -558,6 +584,8 @@ rdoc_include: assert_empty err assert_equal Pathname(Dir.tmpdir), @options.root + + @options.finish assert_includes @options.rdoc_include, @options.root.to_s end @@ -602,6 +630,7 @@ rdoc_include: assert_empty out assert_equal "could not find template NONEXISTENT\n", err + @options.finish assert_equal 'darkfish', @options.template assert_match %r%rdoc/generator/template/darkfish$%, @options.template_dir end @@ -668,6 +697,7 @@ rdoc_include: Dir.chdir tmpdir do e = assert_raise SystemExit do @options.parse %w[--write-options] + @options.finish end assert_equal 0, e.status @@ -689,6 +719,28 @@ rdoc_include: assert_empty err end + def test_parse_locale_name_default + temp_dir do + @options.parse %w[] + assert_equal 'locale', @options.instance_variable_get(:@locale_dir) + assert_nil @options.instance_variable_get(:@locale_name) + assert_nil @options.locale + @options.finish + assert_nil @options.locale + end + end + + def test_parse_locale_name + temp_dir do + @options.parse %w[--locale fr] + assert_equal 'locale', @options.instance_variable_get(:@locale_dir) + assert_equal 'fr', @options.instance_variable_get(:@locale_name) + assert_nil @options.locale + @options.finish + assert_equal 'fr', @options.locale.name + end + end + def test_setup_generator test_generator = Class.new do def self.setup_options op @@ -764,7 +816,9 @@ rdoc_include: assert File.exist? '.rdoc_options' - assert_equal @options, YAML.safe_load(File.read('.rdoc_options'), permitted_classes: [RDoc::Options, Symbol]) + options = File.read('.rdoc_options') + options = YAML.safe_load(options, permitted_classes: [Symbol]) + assert_equal @options, RDoc::Options.new(options) end end @@ -834,20 +888,44 @@ rdoc_include: def test_load_options_partial_override temp_dir do File.open '.rdoc_options', 'w' do |io| - io.write "markup: Markdown" + io.puts "markup: Markdown" + io.puts "encoding: iso-8859-1" + io.puts "static_path: [static]" + io.puts "rdoc_include: [.]" + io.puts "page_dir: pages" end options = RDoc::Options.load_options assert_equal 'Markdown', options.markup + assert_equal Encoding::ISO_8859_1, options.encoding + assert_equal ["static"], options.static_path + assert_equal ["."], options.rdoc_include + assert_equal "pages", options.page_dir end end - def load_options_no_file + def test_load_options_no_file temp_dir do options = RDoc::Options.load_options assert_kind_of RDoc::Options, options end end + + def test_skip_test_default_value + @options.parse %w[] + assert_equal true, @options.skip_tests + end + + def test_no_skip_test_value + @options.parse %w[--no-skipping-tests] + assert_equal false, @options.skip_tests + end + + class DummyCoder < Hash + alias add :[]= + def tag=(tag) + end + end end |