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 74

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 67

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 88

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 95

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 103

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 110

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

#hard_break

Shortcut for Markup::HardBreak.new

[ GitHub ]

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

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 124

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 131

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 138

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 155

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 169

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

#refute_file(path)

Refutes path exists

[ GitHub ]

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

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 162

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

#setup

Abstract test-case setup

[ GitHub ]

  
# 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

#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 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

#verb(*parts)

Shortcut for Markup::Verbatim.new with parts

[ GitHub ]

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

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 199

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