123456789_123456789_123456789_123456789_123456789_

Class: RDoc::TestCase

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, MiniTest::Unit::TestCase
Instance Chain:
self, MiniTest::Unit::TestCase
Inherits: MiniTest::Unit::TestCase
  • Object
Defined in: lib/rdoc/test_case.rb

Overview

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 of Markup (for less typing)

  • @pwd containing the current working directory

  • FileUtils, pp, Tempfile, Dir.tmpdir and StringIO

Instance Method Summary

Instance Method Details

#assert_directory(path)

Asserts path is a directory

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 73

def assert_directory path
  assert File.directory?(path), "#{path} is not a directory"
end

#assert_file(path)

Asserts path is a file

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 66

def assert_file path
  assert File.file?(path), "#{path} is not a file"
end

#blank_line

Shortcut for Markup::BlankLine.new

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 87

def blank_line
  @RM::BlankLine.new
end

#block(*contents)

Shortcut for RDoc::Markup::BlockQuote.new with contents

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 94

def block *contents
  @RM::BlockQuote.new(*contents)
end

#comment(text, top_level = @top_level)

Creates an Comment with text which was defined on top_level. By default the comment has the 'rdoc' format.

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 102

def comment text, top_level = @top_level
  RDoc::Comment.new text, top_level
end

#doc(*contents)

Shortcut for Markup::Document.new with contents

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 109

def doc *contents
  @RM::Document.new(*contents)
end

#hard_break

Shortcut for Markup::HardBreak.new

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 116

def hard_break
  @RM::HardBreak.new
end

#head(level, text)

Shortcut for RDoc::Markup::Heading.new with level and text

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 123

def head level, text
  @RM::Heading.new level, text
end

#item(label = nil, *parts)

Shortcut for Markup::ListItem.new with label and parts

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 130

def item label = nil, *parts
  @RM::ListItem.new label, *parts
end

#list(type = nil, *items)

Shortcut for Markup::List.new with type and items

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 137

def list type = nil, *items
  @RM::List.new type, *items
end

#para(*a)

Shortcut for RDoc::Markup::Paragraph.new with contents

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 154

def para *a
  @RM::Paragraph.new(*a)
end

#raw(*contents)

Shortcut for Markup::Raw.new with contents

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 168

def raw *contents
  @RM::Raw.new(*contents)
end

#refute_file(path)

Refutes path exists

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 80

def refute_file path
  refute File.exist?(path), "#{path} exists"
end

#rule(weight)

Shortcut for RDoc::Markup::Rule.new with weight

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 161

def rule weight
  @RM::Rule.new weight
end

#setup

Abstract test-case setup

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 38

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

#temp_dir

Creates a temporary directory changes the current directory to it for the duration of the block.

Depends upon Dir.mktmpdir

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 178

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

#verb(*parts)

Shortcut for Markup::Verbatim.new with parts

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 191

def verb *parts
  @RM::Verbatim.new(*parts)
end

#verbose_capture_io

run capture_io with setting $VERBOSE = true

[ GitHub ]

  
# File 'lib/rdoc/test_case.rb', line 198

def verbose_capture_io
  capture_io do
    begin
      orig_verbose = $VERBOSE
      $VERBOSE = true
      yield
    ensure
      $VERBOSE = orig_verbose
    end
  end
end