* lib/rdoc: Update to RDoc 4.1.0.preview.1

RDoc 4.1.0 contains a number of enhancements including a new default
  style and accessibility support.  You can see the changelog here:

  https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc

* test/rdoc:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2013-09-18 23:33:36 +00:00
parent fed428007c
commit df7dac9174
118 changed files with 5394 additions and 3600 deletions

View file

@ -23,7 +23,9 @@ class TestRDocServlet < RDoc::TestCase
@stores = {}
@cache = Hash.new { |hash, store| hash[store] = {} }
@s = RDoc::Servlet.new @server, @stores, @cache
@extra_dirs = [File.join(@tempdir, 'extra1'), File.join(@tempdir, 'extra2')]
@s = RDoc::Servlet.new @server, @stores, @cache, nil, @extra_dirs
@req = WEBrick::HTTPRequest.new :Logger => nil
@res = WEBrick::HTTPResponse.new :HTTPVersion => '1.0'
@ -145,6 +147,16 @@ class TestRDocServlet < RDoc::TestCase
end
end
def do_GET_not_found
touch_system_cache_path
@req.path = "/#{@spec.full_name}"
@s.do_GET @req, @res
assert_equal 404, @res.status
end
def test_do_GET_not_modified
touch_system_cache_path
@req.header['if-modified-since'] = [(Time.now + 10).httpdate]
@ -187,8 +199,8 @@ class TestRDocServlet < RDoc::TestCase
@s.documentation_page store, generator, 'Klass::Sub.html', @req, @res
assert_match %r%<title>class Klass::Sub - </title>%, @res.body
assert_match %r%<body id="top" class="class">%, @res.body
assert_match %r%<title>class Klass::Sub - </title>%, @res.body
assert_match %r%<body id="top" role="document" class="class">%, @res.body
end
def test_documentation_page_not_found
@ -214,7 +226,7 @@ class TestRDocServlet < RDoc::TestCase
@s.documentation_page store, generator, 'README_rdoc.html', @req, @res
assert_match %r%<title>README - </title>%, @res.body
assert_match %r%<body class="file">%, @res.body
assert_match %r%<body [^>]+ class="file">%, @res.body
end
def test_documentation_source
@ -298,8 +310,13 @@ class TestRDocServlet < RDoc::TestCase
def test_installed_docs
touch_system_cache_path
touch_extra_cache_path
expected = [
['My Extra Documentation', 'extra-1/', true, :extra,
@extra_dirs[0]],
['Extra Documentation', 'extra-2/', false, :extra,
@extra_dirs[1]],
['Ruby Documentation', 'ruby/', true, :system,
@system_dir],
['Site Documentation', 'site/', false, :site,
@ -325,10 +342,24 @@ class TestRDocServlet < RDoc::TestCase
assert_match %r%<kbd>/ruby/Missing\.html</kbd>%, @res.body
end
def test_not_found_message
generator = @s.generator_for RDoc::Store.new
@req.path = '/ruby/Missing.html'
@s.not_found generator, @req, @res, 'woo, this is a message'
assert_equal 404, @res.status
assert_match %r%<title>Not Found</title>%, @res.body
assert_match %r%woo, this is a message%, @res.body
end
def test_ri_paths
paths = @s.ri_paths
expected = [
[@extra_dirs[0], :extra],
[@extra_dirs[1], :extra],
[@system_dir, :system],
[File.join(@base, 'site'), :site],
[RDoc::RI::Paths::HOMEDIR, :home],
@ -347,6 +378,7 @@ class TestRDocServlet < RDoc::TestCase
def test_root_search
touch_system_cache_path
touch_extra_cache_path
@s.root_search @req, @res
@ -359,12 +391,16 @@ class TestRDocServlet < RDoc::TestCase
expected = {
'index' => {
'searchIndex' => %w[
My\ Extra\ Documentation
Ruby\ Documentation
],
'longSearchIndex' => %w[
My\ Extra\ Documentation
Ruby\ Documentation
],
'info' => [
['My Extra Documentation', '', @extra_dirs[0], '',
'My Extra Documentation'],
['Ruby Documentation', '', 'ruby', '',
'Documentation for the Ruby standard library'],
],
@ -419,6 +455,10 @@ class TestRDocServlet < RDoc::TestCase
end
def test_store_for_gem
ri_dir = File.join @gem_doc_dir, 'spec-1.0', 'ri'
FileUtils.mkdir_p ri_dir
FileUtils.touch File.join ri_dir, 'cache.ri'
store = @s.store_for 'spec-1.0'
assert_equal File.join(@gem_doc_dir, 'spec-1.0', 'ri'), store.path
@ -432,12 +472,24 @@ class TestRDocServlet < RDoc::TestCase
assert_equal :home, store.type
end
def test_store_for_missing
e = assert_raises RDoc::Error do
def test_store_for_missing_documentation
FileUtils.mkdir_p(File.join @gem_doc_dir, 'spec-1.0', 'ri')
e = assert_raises WEBrick::HTTPStatus::NotFound do
@s.store_for 'spec-1.0'
end
assert_equal 'Could not find documentation for "spec-1.0". Please run `gem rdoc --ri gem_name`',
e.message
end
def test_store_for_missing_gem
e = assert_raises WEBrick::HTTPStatus::NotFound do
@s.store_for 'missing'
end
assert_equal 'could not find ri documentation for missing', e.message
assert_equal 'Could not find gem "missing". Are you sure you installed it?',
e.message
end
def test_store_for_ruby
@ -454,6 +506,13 @@ class TestRDocServlet < RDoc::TestCase
assert_equal :site, store.type
end
def test_store_for_extra
store = @s.store_for 'extra-1'
assert_equal @extra_dirs.first, store.path
assert_equal :extra, store.type
end
def touch_system_cache_path
store = RDoc::Store.new @system_dir
store.title = 'Standard Library Documentation'
@ -463,5 +522,14 @@ class TestRDocServlet < RDoc::TestCase
store.save
end
def touch_extra_cache_path
store = RDoc::Store.new @extra_dirs.first
store.title = 'My Extra Documentation'
FileUtils.mkdir_p File.dirname store.cache_path
store.save
end
end