class RDoc::TestCase
RDoc::TestCase
is an abstract TestCase
to provide common setup and teardown across all RDoc
tests. The test case uses minitest, so all the assertions of minitest may be used.
The testcase provides the following:
-
A reset code-object tree
-
A reset markup preprocessor (RDoc::Markup::PreProcess)
-
The
@RM
alias ofRDoc::Markup
(for less typing) -
@pwd
containing the current working directory -
FileUtils
, pp,Tempfile
,Dir.tmpdir
andStringIO
Public Instance Methods
Asserts path
is a directory
# File lib/rdoc/test_case.rb, line 74 def assert_directory path assert File.directory?(path), "#{path} is not a directory" end
Asserts path
is a file
# File lib/rdoc/test_case.rb, line 67 def assert_file path assert File.file?(path), "#{path} is not a file" end
Shortcut for RDoc::Markup::BlankLine.new
# File lib/rdoc/test_case.rb, line 88 def blank_line @RM::BlankLine.new end
Shortcut for RDoc::Markup::BlockQuote.new
with contents
# File lib/rdoc/test_case.rb, line 95 def block *contents @RM::BlockQuote.new(*contents) end
Creates an RDoc::Comment
with text
which was defined on top_level
. By default the comment has the 'rdoc' format.
# File lib/rdoc/test_case.rb, line 103 def comment text, top_level = @top_level RDoc::Comment.new text, top_level end
Shortcut for RDoc::Markup::Document.new
with contents
# File lib/rdoc/test_case.rb, line 110 def doc *contents @RM::Document.new(*contents) end
Shortcut for RDoc::Markup::HardBreak.new
# File lib/rdoc/test_case.rb, line 117 def hard_break @RM::HardBreak.new end
Shortcut for RDoc::Markup::Heading.new with level
and text
# File lib/rdoc/test_case.rb, line 124 def head level, text @RM::Heading.new level, text end
Shortcut for RDoc::Markup::ListItem.new
with label
and parts
# File lib/rdoc/test_case.rb, line 131 def item label = nil, *parts @RM::ListItem.new label, *parts end
Shortcut for RDoc::Markup::List.new
with type
and items
# File lib/rdoc/test_case.rb, line 138 def list type = nil, *items @RM::List.new type, *items end
Shortcut for RDoc::Markup::Paragraph.new
with contents
# File lib/rdoc/test_case.rb, line 155 def para *a @RM::Paragraph.new(*a) end
Shortcut for RDoc::Markup::Raw.new
with contents
# File lib/rdoc/test_case.rb, line 169 def raw *contents @RM::Raw.new(*contents) end
Refutes path
exists
# File lib/rdoc/test_case.rb, line 81 def refute_file path refute File.exist?(path), "#{path} exists" end
Shortcut for RDoc::Markup::Rule.new with weight
# File lib/rdoc/test_case.rb, line 162 def rule weight @RM::Rule.new weight end
Abstract test-case setup
# File lib/rdoc/test_case.rb, line 39 def setup super @top_level = nil @have_encoding = Object.const_defined? :Encoding @RM = RDoc::Markup RDoc::Markup::PreProcess.reset @pwd = Dir.pwd @store = RDoc::Store.new @rdoc = RDoc::RDoc.new @rdoc.store = @store @rdoc.options = RDoc::Options.new g = Object.new def g.class_dir() end def g.file_dir() end @rdoc.generator = g end
Creates a temporary directory changes the current directory to it for the duration of the block.
Depends upon Dir.mktmpdir
# File lib/rdoc/test_case.rb, line 179 def temp_dir skip "No Dir::mktmpdir, upgrade your ruby" unless Dir.respond_to? :mktmpdir Dir.mktmpdir do |temp_dir| Dir.chdir temp_dir do yield temp_dir end end end
Shortcut for RDoc::Markup::Verbatim.new
with parts
# File lib/rdoc/test_case.rb, line 192 def verb *parts @RM::Verbatim.new(*parts) end
run capture_io with setting $VERBOSE = true
# File lib/rdoc/test_case.rb, line 199 def verbose_capture_io capture_io do begin orig_verbose = $VERBOSE $VERBOSE = true yield ensure $VERBOSE = orig_verbose end end end