require File.expand_path('../helper', __FILE__) begin require 'rdoc' require 'rdoc/markup/to_html' class RdocTest < Test::Unit::TestCase def rdoc_app(&block) mock_app do set :views, File.dirname(__FILE__) + '/views' get '/', &block end get '/' end it 'renders inline rdoc strings' do rdoc_app { rdoc '= Hiya' } assert ok? assert_body /]*>Hiya<\/h1>/ end it 'renders .rdoc files in views path' do rdoc_app { rdoc :hello } assert ok? assert_body /]*>Hello From RDoc<\/h1>/ end it "raises error if template not found" do mock_app { get('/') { rdoc :no_such_template } } assert_raise(Errno::ENOENT) { get('/') } end it "renders with inline layouts" do mock_app do layout { 'THIS. IS. #{yield.upcase}!' } get('/') { rdoc 'Sparta', :layout_engine => :str } end get '/' assert ok? assert_like 'THIS. IS.

SPARTA

!', body end it "renders with file layouts" do rdoc_app { rdoc 'Hello World', :layout => :layout2, :layout_engine => :erb } assert ok? assert_body "ERB Layout!\n

Hello World

" end it "can be used in a nested fashion for partials and whatnot" do mock_app do template(:inner) { "hi" } template(:outer) { "<%= rdoc :inner %>" } get '/' do erb :outer end end get '/' assert ok? assert_like '

hi

', body end end rescue LoadError warn "#{$!.to_s}: skipping rdoc tests" end