1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#!/usr/bin/ruby -w
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
require 'test/unit'
require 'feedparser'
class TextOutputTest < Test::Unit::TestCase
if File::directory?('test/source')
SRCDIR = 'test/source'
DSTDIR = 'test/text_output'
elsif File::directory?('source')
SRCDIR = 'source'
DSTDIR = 'text_output'
else
raise 'source directory not found.'
end
Dir.foreach(SRCDIR) do |f|
next if f !~ /.xml$/
testname = 'test_' + File.basename(f).gsub(/\W/, '_')
define_method(testname) do
str = File::read(SRCDIR + '/' + f)
chan = FeedParser::Feed::new(str)
chanstr = chan.to_text(false) # localtime set to false
if File::exist?(DSTDIR + '/' + f.gsub(/.xml$/, '.output'))
output = File::read(DSTDIR + '/' + f.gsub(/.xml$/, '.output'))
if output != chanstr
File::open(DSTDIR + '/' + f.gsub(/.xml$/, '.output.new'), "w") do |fd|
fd.print(chanstr)
end
assert(
false,
[
"Test failed for #{f}.",
" Check: diff -u #{DSTDIR + '/' + f.gsub(/.xml$/, '.output')}{,.new}",
" Commit: mv -f #{DSTDIR + '/' + f.gsub(/.xml$/, '.output')}{.new,}",
].join("\n")
)
end
else
File::open(DSTDIR + '/' + f.gsub(/.xml$/, '.output'), "w") do |f|
f.print(chanstr)
end
assert(false, "Missing #{DSTDIR + '/' + f.gsub(/.xml$/, '.output')}. Writing it, but check manually!")
end
end
end
end
|