4
require 'minitest/autorun'
7
class TestRDocRDoc < MiniTest::Unit::TestCase
10
@rdoc = RDoc::RDoc.new
11
@tempfile = Tempfile.new 'test_rdoc_rdoc'
16
@tempfile.close rescue nil # HACK for 1.8.6
20
file = File.expand_path __FILE__
21
assert_equal [file], @rdoc.gather_files([file, file])
24
def test_normalized_file_list
25
files = @rdoc.normalized_file_list [__FILE__]
27
files = files.map { |file| File.expand_path file }
29
assert_equal [File.expand_path(__FILE__)], files
32
def test_normalized_file_list_not_modified
35
@rdoc.last_modified[__FILE__] = File.stat(__FILE__).mtime
37
files = @rdoc.normalized_file_list [__FILE__]
42
def test_read_file_contents
43
@tempfile.write "hi everybody"
46
assert_equal "hi everybody", @rdoc.read_file_contents(@tempfile.path)
49
def test_read_file_contents_encoding
50
skip "Encoding not implemented" unless defined? ::Encoding
52
@tempfile.write "# coding: utf-8\nhi everybody"
55
contents = @rdoc.read_file_contents @tempfile.path
56
assert_equal "# coding: utf-8\nhi everybody", contents
57
assert_equal Encoding::UTF_8, contents.encoding
60
def test_read_file_contents_encoding_fancy
61
skip "Encoding not implemented" unless defined? ::Encoding
63
@tempfile.write "# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody"
66
contents = @rdoc.read_file_contents @tempfile.path
67
assert_equal("# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody",
69
assert_equal Encoding::UTF_8, contents.encoding
72
def test_read_file_contents_encoding_with_signature
73
skip "Encoding not implemented" unless defined? ::Encoding
75
@tempfile.write "\xEF\xBB\xBF""hi everybody"
78
bug3360 = '[ruby-dev:41452]'
79
contents = @rdoc.read_file_contents @tempfile.path
80
assert_equal "hi everybody", contents, bug3360
81
assert_equal Encoding::UTF_8, contents.encoding, bug3360
84
def test_remove_unparsable
94
assert_empty @rdoc.remove_unparseable file_list
97
def test_setup_output_dir
98
skip "No Dir::mktmpdir, upgrade your ruby" unless Dir.respond_to? :mktmpdir
101
path = File.join(d, 'testdir')
103
last = @rdoc.setup_output_dir path, false
107
assert File.directory? path
111
def test_setup_output_dir_exists
112
skip "No Dir::mktmpdir, upgrade your ruby" unless Dir.respond_to? :mktmpdir
115
open @rdoc.output_flag_file(path), 'w' do |io|
117
io.puts "./lib/rdoc.rb\t#{Time.at 86400}"
120
last = @rdoc.setup_output_dir path, false
122
assert_equal 1, last.size
123
assert_equal Time.at(86400), last['./lib/rdoc.rb']
127
def test_setup_output_dir_exists_empty_created_rid
128
skip "No Dir::mktmpdir, upgrade your ruby" unless Dir.respond_to? :mktmpdir
131
open @rdoc.output_flag_file(path), 'w' do end
133
e = assert_raises RDoc::Error do
134
@rdoc.setup_output_dir path, false
137
assert_match %r%Directory #{Regexp.escape path} already exists%, e.message
141
def test_setup_output_dir_exists_file
142
path = @tempfile.path
144
e = assert_raises RDoc::Error do
145
@rdoc.setup_output_dir path, false
148
assert_match(%r%#{Regexp.escape path} exists and is not a directory%,
152
def test_setup_output_dir_exists_not_rdoc
153
skip "No Dir::mktmpdir, upgrade your ruby" unless Dir.respond_to? :mktmpdir
155
Dir.mktmpdir do |dir|
156
e = assert_raises RDoc::Error do
157
@rdoc.setup_output_dir dir, false
160
assert_match %r%Directory #{Regexp.escape dir} already exists%, e.message