test/test_ronn.rb in ronn-ng-0.7.4 vs test/test_ronn.rb in ronn-ng-0.8.0.SNAPSHOT

- old
+ new

@@ -2,107 +2,121 @@ class RonnTest < Test::Unit::TestCase testdir = File.dirname(__FILE__) # setup PATH so that we execute the right ronn command - bindir = File.dirname(testdir) + "/bin" + bindir = File.dirname(testdir) + '/bin' ENV['PATH'] = "#{bindir}:#{ENV['PATH']}" # make sure the load path is setup correctly libdir = File.expand_path("#{testdir}/../lib") - $:.unshift(libdir) unless $:.any? { |path| File.expand_path(path) == libdir } - ENV['RUBYLIB'] = $:.join(':') + $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.any? { |path| File.expand_path(path) == libdir } + ENV['RUBYLIB'] = $LOAD_PATH.join(':') require 'ronn' - test "takes ronn text on stdin and produces roff on stdout" do + test 'takes ronn text on stdin and produces roff on stdout' do output = `echo '# hello(1) -- hello world' | ronn --date=2009-11-23` lines = output.split("\n") - assert_equal 7, lines.size - assert_equal %[.\\" generated with Ronn-NG/v#{Ronn::version}], lines.shift - assert_equal %[.\\" http://github.com/apjanke/ronn-ng/tree/#{Ronn::revision}], lines.shift - assert_equal %[.], lines.shift - assert_equal %[.TH "HELLO" "1" "November 2009" "" ""], lines.shift - assert_equal %[.], lines.shift - assert_equal %[.SH "NAME"], lines.shift - assert_equal %[\\fBhello\\fR \\- hello world], lines.shift + assert_equal 5, lines.size + assert_equal %(.\\" generated with Ronn-NG/v#{Ronn.version}), lines.shift + assert_equal %(.\\" http://github.com/apjanke/ronn-ng/tree/#{Ronn.revision}), lines.shift + assert_equal %(.TH "HELLO" "1" "November 2009" "" ""), lines.shift + assert_equal %(.SH "NAME"), lines.shift + assert_equal %(\\fBhello\\fR \\- hello world), lines.shift assert_equal 0, lines.size end def canonicalize(text) - text. - gsub(/^ +/, ''). - gsub(/\n/m, ''). - gsub(/ +/, ' '). - gsub(/"/, "'") + text + .gsub(/^ +/, '') + .gsub(/\n/m, '') + .gsub(/ +/, ' ') + .tr('"', "'") end - test "produces html instead of roff with the --html argument" do + def flunk_with_diff(dest, wrong, output) + File.open(wrong, 'wb') { |f| f.write(output) } + if ENV['RONN_QUIET_TEST'] == '1' + flunk 'Output did not match expected.' + else + diff = `diff -u #{dest} #{wrong} 2>/dev/null` + flunk diff + end + end + + test 'produces html instead of roff with the --html argument' do output = `echo '# hello(1) -- hello world' | ronn --html` output = canonicalize(output) assert_match(/<h2 id='NAME'>NAME<\/h2>/, output) - advertising = "<meta name='generator' content='Ronn-NG/v" + Ronn::version + - " (http://github.com/apjanke/ronn-ng/tree/" + Ronn::revision + ")'>" + advertising = "<meta name='generator' content='Ronn-NG/v" + Ronn.version + + ' (http://github.com/apjanke/ronn-ng/tree/' + Ronn.revision + ")'>" assert_match(/#{Regexp.escape(advertising)}/, output) end - test "produces html fragment with the --fragment argument" do + test 'produces html fragment with the --fragment argument' do output = `echo '# hello(1) -- hello world' | ronn --fragment` assert_equal [ "<div class='mp'>", "<h2 id='NAME'>NAME</h2>", "<p class='man-name'><code>hello</code>", " - <span class='man-whatis'>hello world</span>", - "</p></div>" + '</p></div>' ].join, canonicalize(output) end - test "abides by the RONN_MANUAL environment variable" do + test 'abides by the RONN_MANUAL environment variable' do output = `echo '# hello(1) -- hello world' | RONN_MANUAL='Some Manual' ronn --html` assert_match(/Some Manual/, output) end - test "abides by the RONN_DATE environment variable" do + test 'abides by the RONN_DATE environment variable' do output = `echo '# hello(1) -- hello world' | RONN_DATE=1979-01-01 ronn --html` assert_match(/January 1979/, output) end - test "abides by the RONN_ORGANIZATION environment variable" do + test 'abides by the RONN_ORGANIZATION environment variable' do output = `echo '# hello(1) -- hello world' | RONN_ORGANIZATION='GitHub' ronn --html` assert_match(/GitHub/, output) end # ronn -> HTML file based tests Dir[testdir + '/*.ronn'].each do |source| dest = source.sub(/ronn$/, 'html') next unless File.exist?(dest) + wrong = dest + '.wrong' test File.basename(source, '.ronn') + ' HTML' do output = `ronn --pipe --html --fragment #{source}` - expected = File.read(dest) rescue '' + expected = begin + File.read(dest) + rescue IOError + '' + end if expected != output - File.open(wrong, 'wb') { |f| f.write(output) } - diff = `diff -u #{dest} #{wrong} 2>/dev/null` - flunk diff + flunk_with_diff(dest, wrong, output) elsif File.exist?(wrong) File.unlink(wrong) end end end # ronn -> roff file based tests Dir[testdir + '/*.ronn'].each do |source| dest = source.sub(/ronn$/, 'roff') next unless File.exist?(dest) + wrong = dest + '.wrong' test File.basename(source, '.ronn') + ' roff' do - output = `ronn --pipe --roff --date=1979-01-01 #{source}`. - split("\n", 4).last # remove ronn version comments - expected = File.read(dest) rescue '' + output = `ronn --pipe --roff --date=1979-01-01 #{source}` + .split("\n", 3).last # remove ronn version comments + expected = begin + File.read(dest) + rescue IOError + '' + end if expected != output - File.open(wrong, 'wb') { |f| f.write(output) } - diff = `diff -u #{dest} #{wrong} 2>/dev/null` - flunk diff + flunk_with_diff(dest, wrong, output) elsif File.exist?(wrong) File.unlink(wrong) end end end