diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
commit | 0dc342de848a642ecce8db697b8fecd83a63e117 (patch) | |
tree | 2b7ed4724aff1f86073e4740134bda9c4aac1a39 /trunk/test/rdoc/test_rdoc_info_formatting.rb | |
parent | ef70cf7138ab8034b5b806f466e4b484b24f0f88 (diff) |
added tag v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/test/rdoc/test_rdoc_info_formatting.rb')
-rw-r--r-- | trunk/test/rdoc/test_rdoc_info_formatting.rb | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/trunk/test/rdoc/test_rdoc_info_formatting.rb b/trunk/test/rdoc/test_rdoc_info_formatting.rb new file mode 100644 index 0000000000..6c024f7454 --- /dev/null +++ b/trunk/test/rdoc/test_rdoc_info_formatting.rb @@ -0,0 +1,175 @@ +require 'fileutils' +require 'tmpdir' +require 'test/unit' + +require 'rdoc/generator/texinfo' + +# From chapter 18 of the Pickaxe 3rd ed. and the TexInfo manual. +class TestRdocInfoFormatting < Test::Unit::TestCase + def setup + @output_dir = File.join Dir.tmpdir, "test_rdoc_info_formatting_#{$$}" + @output_file = File.join @output_dir, 'rdoc.texinfo' + + RDoc::RDoc.new.document(['--fmt=texinfo', '--quiet', + File.expand_path(__FILE__), + "--op=#{@output_dir}"]) + @text = File.read @output_file + + # File.open('rdoc.texinfo', 'w') { |f| f.puts @text } + end + + def teardown + FileUtils.rm_rf @output_dir + end + + # Make sure tags like *this* do not make HTML + def test_descriptions_are_not_html + assert_no_match Regexp.new("\<b\>this\<\/b\>"), @text, "We had some HTML; icky!" + end + + # Ensure we get a reasonable amount + # + # of space in between paragraphs. + def test_paragraphs_are_spaced + assert_match(/amount\n\n\nof space/, @text) + end + + # @ and {} should be at-sign-prefixed + def test_escaping + assert_match(/@@ and @\{@\} should be at-sign-prefixed/) + end + + # This tests that *bold* and <b>bold me</b> become @strong{bolded} + def test_bold + # Seems like a limitation of the Info format: @strong{bold} + # becomes *bold* when read in Info or M-x info. highly lame! + assert_match(/@strong\{bold\}/) + assert_match(/@strong\{bold me\}/) + end + + # Test that _italics_ and <em>italicize me</em> becomes @emph{italicized} + def test_italics + assert_match(/@emph\{italics\}/) + assert_match(/@emph\{italicize me\}/) + end + + # And that typewriter +text+ and <tt>typewriter me</tt> becomes @code{typewriter} + def test_tt + assert_match(/@code\{text\}/) + assert_match(/@code\{typewriter me\}/) + end + + # Check that + # anything indented is + # verbatim @verb{|foo bar baz|} + def test_literal_code + assert_match("@verb{| anything indented is + verbatim @@verb@{|foo bar baz|@} +|}") + end + + # = Huge heading should be a @majorheading + # == There is also @chapheading + # === Everything deeper becomes a regular @heading + # ====== Regardless of its nesting level + def test_headings + assert_match(/@majorheading\{Huge heading should be a @@majorheading\}/) + assert_match(/@chapheading\{There is also @@chapheading\}/) + assert_match(/@heading\{Everything deeper becomes a regular @@heading\}/) + assert_match(/@heading\{Regardless of its nesting level\}/) + end + + # * list item + # * list item2 + # + # with a paragraph in between + # + # - hyphen lists + # - are also allowed + # and items may flow over lines + def test_bullet_lists + assert_match("@itemize @bullet +@item +list item +@item +list item2 +@end itemize") + assert_match("@itemize @bullet +@item +hyphen lists +@item +are also allowed and items may flow over lines +@end itemize") + end + + # 2. numbered lists + # 8. are made by + # 9. a digit followed by a period + def test_numbered_lists + end + + # a. alpha lists + # b. should be parsed too + def test_alpha_lists + end + + # [cat] small domestic animal + # [+cat+] command to copy standard input + # to standard output + def test_labelled_lists + end + + # * First item. + # * Inner item. + # * Second inner item. + # * Second outer item. + def test_nested_lists + assert_match("@itemize @bullet +@item +First item. +@itemize @bullet +@item +Inner item. +@item +Second inner item. +@end itemize +@item +Second outer item. +@end itemize") + end + + def test_internal_hyperlinks + # be sure to test multi-word hyperlinks as well. + end + + def test_hyperlink_targets + end + + def test_web_links + # An example of the two-argument form: The official + # @uref{ftp://ftp.gnu.org/gnu, GNU ftp site} holds programs and texts. + + # produces: + # The official GNU ftp site (ftp://ftp.gnu.org/gnu) + # holds programs and texts. + # and the HTML output is this: + # The official <a href="ftp://ftp.gnu.org/gnu">GNU ftp site</a> + # holds programs and texts. + end + + # three or more hyphens + # ---- + # should produce a horizontal rule + def test_horizontal_rule + # gah; not sure texinfo supports horizontal rules + end + + private + + # We don't want the whole string inspected if we pass our own + # message in. + def assert_match(regex, string = @text, + message = "Didn't find #{regex.inspect} in #{string}.") + assert string[regex] #, message + end +end |