require 'fileutils' require 'test/unit' require "#{File.expand_path(File.dirname(__FILE__))}/../lib/asciidoctor.rb" require 'mocha/setup' require 'htmlentities' require 'nokogiri' require 'pending' ENV['SUPPRESS_DEBUG'] ||= 'true' class Test::Unit::TestCase def sample_doc_path(name) name = name.to_s unless name.include?('.') ['asciidoc', 'txt'].each do |ext| if File.exist?(fixture_path("#{name}.#{ext}")) name = "#{name}.#{ext}" break end end end fixture_path(name) end def fixture_path(name) File.join(File.dirname(__FILE__), "fixtures", name ) end def example_document(name) Asciidoctor::Document.new(File.readlines(sample_doc_path(name))) end def assert_difference(expression, difference = 1, message = nil, &block) expressions = [expression] exps = expressions.map { |e| e.respond_to?(:call) ? e : lambda { eval(e, block.binding) } } before = exps.map { |e| e.call } yield expressions.zip(exps).each_with_index do |(code, e), i| error = "#{code.inspect} didn't change by #{difference}" error = "#{message}.\n#{error}" if message assert_equal(before[i] + difference, e.call, error) end end def assert_xpath(xpath, html, count = nil) doc = (html =~ /\s*