1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rdoc/test_rdoc_parser.rb
nobu 9bee6cf51f rdoc: --extension option fix
* lib/rdoc/parser.rb (RDoc.alias_extension): a real file is irrelevant
  to aliasing.  [ruby-core:44796][Bug #6392]
* lib/rdoc/parser.rb (RDoc.zip?): non-existent file will not be a zip
  file.
* lib/rdoc/parser.rb (RDoc.can_parse_by_name): accept aliased
  extension file names.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-03 16:33:22 +00:00

90 lines
2.3 KiB
Ruby

require 'rubygems'
require 'minitest/autorun'
require 'rdoc/parser'
require 'rdoc/parser/ruby'
require 'tmpdir'
class TestRDocParser < MiniTest::Unit::TestCase
def setup
@RP = RDoc::Parser
@binary_dat = File.expand_path '../binary.dat', __FILE__
end
def test_class_binary_eh_marshal
marshal = File.join Dir.tmpdir, "test_rdoc_parser_#{$$}.marshal"
open marshal, 'wb' do |io|
io.write Marshal.dump('')
io.write 'lots of text ' * 500
end
assert @RP.binary?(marshal)
ensure
File.unlink marshal
end
def test_class_binary_japanese_text
file_name = File.expand_path '../test.ja.txt', __FILE__
refute @RP.binary?(file_name)
end
def test_class_binary_large_japanese_rdoc
file_name = File.expand_path '../test.ja.largedoc', __FILE__
assert !@RP.binary?(file_name)
end
def test_class_binary_japanese_rdoc
skip "Encoding not implemented" unless Object.const_defined? :Encoding
file_name = File.expand_path '../test.ja.rdoc', __FILE__
refute @RP.binary?(file_name)
end
def test_class_can_parse
assert_equal @RP.can_parse(__FILE__), @RP::Ruby
readme_file_name = File.expand_path '../test.txt', __FILE__
assert_equal @RP::Simple, @RP.can_parse(readme_file_name)
assert_nil @RP.can_parse(@binary_dat)
jtest_file_name = File.expand_path '../test.ja.txt', __FILE__
assert_equal @RP::Simple, @RP.can_parse(jtest_file_name)
jtest_rdoc_file_name = File.expand_path '../test.ja.rdoc', __FILE__
assert_equal @RP::Simple, @RP.can_parse(jtest_rdoc_file_name)
readme_file_name = File.expand_path '../README', __FILE__
assert_equal @RP::Simple, @RP.can_parse(readme_file_name)
jtest_largerdoc_file_name = File.expand_path '../test.ja.largedoc', __FILE__
assert_nil @RP.can_parse(jtest_largerdoc_file_name)
@RP.alias_extension("rdoc", "largedoc")
assert_equal @RP::Simple, @RP.can_parse(jtest_largerdoc_file_name)
end
##
# Selenium hides a .jar file using a .txt extension.
def test_class_can_parse_zip
hidden_zip = File.expand_path '../hidden.zip.txt', __FILE__
assert_nil @RP.can_parse(hidden_zip)
end
def test_class_for_binary
rp = @RP.dup
class << rp
alias old_can_parse can_parse
end
def rp.can_parse(*args) nil end
assert_nil @RP.for(nil, @binary_dat, nil, nil, nil)
end
end