From 2a812650a8f315130224a27d6a0605962b75323f Mon Sep 17 00:00:00 2001 From: drbrain Date: Fri, 28 Dec 2007 06:13:06 +0000 Subject: [PATCH] Move RDoc tests out of lib/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 + lib/rdoc/markup/simple_markup/inline.rb | 7 +- .../rdoc/test_simple_markup.rb | 373 +++++++++--------- .../test_simple_markup_attribute_manager.rb | 63 ++- 4 files changed, 224 insertions(+), 223 deletions(-) rename lib/rdoc/markup/test/TestParse.rb => test/rdoc/test_simple_markup.rb (97%) rename lib/rdoc/markup/test/TestInline.rb => test/rdoc/test_simple_markup_attribute_manager.rb (91%) diff --git a/ChangeLog b/ChangeLog index 4493748245..e98bc7bde0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 28 15:12:05 2007 Eric Hodel + + * lib/rdoc, test/rdoc: Move RDoc tests out of lib/. + Fri Dec 28 15:10:47 2007 Nobuyoshi Nakada * encoding.c (set_base_encoding, enc_base_encoding): renamed diff --git a/lib/rdoc/markup/simple_markup/inline.rb b/lib/rdoc/markup/simple_markup/inline.rb index 120d347be6..ec1faf13aa 100644 --- a/lib/rdoc/markup/simple_markup/inline.rb +++ b/lib/rdoc/markup/simple_markup/inline.rb @@ -81,7 +81,12 @@ module SM end def to_s - "Special: type=#{type}, text=#{text.dump}" + "Special: type=#{type}, name=#{SM::Attribute.as_string type}, text=#{text.dump}" + end + + def inspect + "#" % [ + object_id, @type, SM::Attribute.as_string(type), text.dump] end end diff --git a/lib/rdoc/markup/test/TestParse.rb b/test/rdoc/test_simple_markup.rb similarity index 97% rename from lib/rdoc/markup/test/TestParse.rb rename to test/rdoc/test_simple_markup.rb index 3ec541ce7a..89d66c9eb5 100644 --- a/lib/rdoc/markup/test/TestParse.rb +++ b/test/rdoc/test_simple_markup.rb @@ -1,18 +1,14 @@ require 'test/unit' - -$:.unshift "../../.." - require 'rdoc/markup/simple_markup' -include SM - -class TestParse < Test::Unit::TestCase +class TestSimpleMarkup < Test::Unit::TestCase class MockOutput + def start_accepting @res = [] - end - + end + def end_accepting @res end @@ -52,28 +48,21 @@ class TestParse < Test::Unit::TestCase end def basic_conv(str) - sm = SimpleMarkup.new + sm = SM::SimpleMarkup.new mock = MockOutput.new sm.convert(str, mock) sm.content end - def line_types(str, expected) - p = SimpleMarkup.new - mock = MockOutput.new - p.convert(str, mock) - assert_equal(expected, p.get_line_types.map{|type| type.to_s[0,1]}.join('')) - end - def line_groups(str, expected) - p = SimpleMarkup.new + p = SM::SimpleMarkup.new mock = MockOutput.new block = p.convert(str, mock) if block != expected rows = (0...([expected.size, block.size].max)).collect{|i| - [expected[i]||"nil", block[i]||"nil"] + [expected[i]||"nil", block[i]||"nil"] } printf "\n\n%35s %35s\n", "Expected", "Got" rows.each {|e,g| printf "%35s %35s\n", e.dump, g.dump } @@ -82,120 +71,11 @@ class TestParse < Test::Unit::TestCase assert_equal(expected, block) end - def test_tabs - str = "hello\n dave" - assert_equal(str, basic_conv(str)) - str = "hello\n\tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = "hello\n \tdave" - assert_equal("hello\n dave", basic_conv(str)) - str = ".\t\t." - assert_equal(". .", basic_conv(str)) - end - - def test_whitespace - assert_equal("hello", basic_conv("hello")) - assert_equal("hello", basic_conv(" hello ")) - assert_equal("hello", basic_conv(" \t \t hello\t\t")) - - assert_equal("1\n 2\n 3", basic_conv("1\n 2\n 3")) - assert_equal("1\n 2\n 3", basic_conv(" 1\n 2\n 3")) - - assert_equal("1\n 2\n 3\n1\n 2", basic_conv("1\n 2\n 3\n1\n 2")) - assert_equal("1\n 2\n 3\n1\n 2", basic_conv(" 1\n 2\n 3\n 1\n 2")) - - assert_equal("1\n 2\n\n 3", basic_conv(" 1\n 2\n\n 3")) - end - - def test_types - str = "now is the time" - line_types(str, 'P') - - str = "now is the time\nfor all good men" - line_types(str, 'PP') - - str = "now is the time\n code\nfor all good men" - line_types(str, 'PVP') - - str = "now is the time\n code\n more code\nfor all good men" - line_types(str, 'PVVP') - - str = "now is\n---\nthe time" - line_types(str, 'PRP') - - str = %{\ - now is - * l1 - * l2 - the time} - line_types(str, 'PLLP') - - str = %{\ - now is - * l1 - l1+ - * l2 - the time} - line_types(str, 'PLPLP') - - str = %{\ - now is - * l1 - * l1.1 - * l2 - the time} - line_types(str, 'PLLLP') - - str = %{\ - now is - * l1 - * l1.1 - text - code - code - - text - * l2 - the time} - line_types(str, 'PLLPVVBPLP') - - str = %{\ - now is - 1. l1 - * l1.1 - 2. l2 - the time} - line_types(str, 'PLLLP') - - str = %{\ - now is - [cat] l1 - * l1.1 - [dog] l2 - the time} - line_types(str, 'PLLLP') - - str = %{\ - now is - [cat] l1 - continuation - [dog] l2 - the time} - line_types(str, 'PLPLP') + def line_types(str, expected) + p = SM::SimpleMarkup.new + mock = MockOutput.new + p.convert(str, mock) + assert_equal(expected, p.get_line_types.map{|type| type.to_s[0,1]}.join('')) end def test_groups @@ -347,8 +227,165 @@ class TestParse < Test::Unit::TestCase "L1: ListEnd\n", "L0: Paragraph\nthe time" ]) + end - + def test_headings + str = "= heading one" + line_groups(str, + [ "L0: Heading\nheading one" + ]) + + str = "=== heading three" + line_groups(str, + [ "L0: Heading\nheading three" + ]) + + str = "text\n === heading three" + line_groups(str, + [ "L0: Paragraph\ntext", + "L0: Verbatim\n === heading three\n" + ]) + + str = "text\n code\n === heading three" + line_groups(str, + [ "L0: Paragraph\ntext", + "L0: Verbatim\n code\n === heading three\n" + ]) + + str = "text\n code\n=== heading three" + line_groups(str, + [ "L0: Paragraph\ntext", + "L0: Verbatim\n code\n", + "L0: Heading\nheading three" + ]) + + end + + def test_list_split + str = %{\ + now is + * l1 + 1. n1 + 2. n2 + * l2 + the time} + line_groups(str, + [ "L0: Paragraph\nnow is", + "L1: ListStart\n", + "L1: ListItem\nl1", + "L1: ListEnd\n", + "L1: ListStart\n", + "L1: ListItem\nn1", + "L1: ListItem\nn2", + "L1: ListEnd\n", + "L1: ListStart\n", + "L1: ListItem\nl2", + "L1: ListEnd\n", + "L0: Paragraph\nthe time" + ]) + + end + + def test_tabs + str = "hello\n dave" + assert_equal(str, basic_conv(str)) + str = "hello\n\tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = "hello\n \tdave" + assert_equal("hello\n dave", basic_conv(str)) + str = ".\t\t." + assert_equal(". .", basic_conv(str)) + end + + def test_types + str = "now is the time" + line_types(str, 'P') + + str = "now is the time\nfor all good men" + line_types(str, 'PP') + + str = "now is the time\n code\nfor all good men" + line_types(str, 'PVP') + + str = "now is the time\n code\n more code\nfor all good men" + line_types(str, 'PVVP') + + str = "now is\n---\nthe time" + line_types(str, 'PRP') + + str = %{\ + now is + * l1 + * l2 + the time} + line_types(str, 'PLLP') + + str = %{\ + now is + * l1 + l1+ + * l2 + the time} + line_types(str, 'PLPLP') + + str = %{\ + now is + * l1 + * l1.1 + * l2 + the time} + line_types(str, 'PLLLP') + + str = %{\ + now is + * l1 + * l1.1 + text + code + code + + text + * l2 + the time} + line_types(str, 'PLLPVVBPLP') + + str = %{\ + now is + 1. l1 + * l1.1 + 2. l2 + the time} + line_types(str, 'PLLLP') + + str = %{\ + now is + [cat] l1 + * l1.1 + [dog] l2 + the time} + line_types(str, 'PLLLP') + + str = %{\ + now is + [cat] l1 + continuation + [dog] l2 + the time} + line_types(str, 'PLPLP') end def test_verbatim_merge @@ -440,64 +477,20 @@ class TestParse < Test::Unit::TestCase end - - def test_list_split - str = %{\ - now is - * l1 - 1. n1 - 2. n2 - * l2 - the time} - line_groups(str, - [ "L0: Paragraph\nnow is", - "L1: ListStart\n", - "L1: ListItem\nl1", - "L1: ListEnd\n", - "L1: ListStart\n", - "L1: ListItem\nn1", - "L1: ListItem\nn2", - "L1: ListEnd\n", - "L1: ListStart\n", - "L1: ListItem\nl2", - "L1: ListEnd\n", - "L0: Paragraph\nthe time" - ]) + def test_whitespace + assert_equal("hello", basic_conv("hello")) + assert_equal("hello", basic_conv(" hello ")) + assert_equal("hello", basic_conv(" \t \t hello\t\t")) + + assert_equal("1\n 2\n 3", basic_conv("1\n 2\n 3")) + assert_equal("1\n 2\n 3", basic_conv(" 1\n 2\n 3")) + + assert_equal("1\n 2\n 3\n1\n 2", basic_conv("1\n 2\n 3\n1\n 2")) + assert_equal("1\n 2\n 3\n1\n 2", basic_conv(" 1\n 2\n 3\n 1\n 2")) + + assert_equal("1\n 2\n\n 3", basic_conv(" 1\n 2\n\n 3")) end - - def test_headings - str = "= heading one" - line_groups(str, - [ "L0: Heading\nheading one" - ]) - - str = "=== heading three" - line_groups(str, - [ "L0: Heading\nheading three" - ]) - - str = "text\n === heading three" - line_groups(str, - [ "L0: Paragraph\ntext", - "L0: Verbatim\n === heading three\n" - ]) - - str = "text\n code\n === heading three" - line_groups(str, - [ "L0: Paragraph\ntext", - "L0: Verbatim\n code\n === heading three\n" - ]) - - str = "text\n code\n=== heading three" - line_groups(str, - [ "L0: Paragraph\ntext", - "L0: Verbatim\n code\n", - "L0: Heading\nheading three" - ]) - - end - - end + diff --git a/lib/rdoc/markup/test/TestInline.rb b/test/rdoc/test_simple_markup_attribute_manager.rb similarity index 91% rename from lib/rdoc/markup/test/TestInline.rb rename to test/rdoc/test_simple_markup_attribute_manager.rb index a067d4c24c..ebcaf8c89a 100644 --- a/lib/rdoc/markup/test/TestInline.rb +++ b/test/rdoc/test_simple_markup_attribute_manager.rb @@ -1,39 +1,38 @@ require "test/unit" - -$:.unshift "../../.." - require "rdoc/markup/simple_markup/inline" -class TestInline < Test::Unit::TestCase - +class TestSimpleMarkupAttributeManager < Test::Unit::TestCase def setup @am = SM::AttributeManager.new @bold_on = @am.changed_attribute_by_name([], [:BOLD]) @bold_off = @am.changed_attribute_by_name([:BOLD], []) - + @tt_on = @am.changed_attribute_by_name([], [:TT]) @tt_off = @am.changed_attribute_by_name([:TT], []) - + @em_on = @am.changed_attribute_by_name([], [:EM]) @em_off = @am.changed_attribute_by_name([:EM], []) - + @bold_em_on = @am.changed_attribute_by_name([], [:BOLD] | [:EM]) @bold_em_off = @am.changed_attribute_by_name([:BOLD] | [:EM], []) - + @em_then_bold = @am.changed_attribute_by_name([:EM], [:EM] | [:BOLD]) - + @em_to_bold = @am.changed_attribute_by_name([:EM], [:BOLD]) - + @am.add_word_pair("{", "}", :WOMBAT) @wombat_on = @am.changed_attribute_by_name([], [:WOMBAT]) @wombat_off = @am.changed_attribute_by_name([:WOMBAT], []) end def crossref(text) + crossref_bitmap = SM::Attribute.bitmap_for(:_SPECIAL_) | + SM::Attribute.bitmap_for(:CROSSREF) + [ @am.changed_attribute_by_name([], [:CROSSREF] | [:_SPECIAL_]), - SM::Special.new(33, text), + SM::Special.new(crossref_bitmap, text), @am.changed_attribute_by_name([:CROSSREF] | [:_SPECIAL_], []) ] end @@ -44,9 +43,9 @@ class TestInline < Test::Unit::TestCase \b([A-Z]\w+(::\w+)*) | \#\w+[!?=]? | \b\w+([_\/\.]+\w+)+[!?=]? - )/x, + )/x, :CROSSREF) - + assert_equal(["cat"], @am.flow("cat")) assert_equal(["cat ", crossref("#fred"), " dog"].flatten, @@ -101,35 +100,33 @@ class TestInline < Test::Unit::TestCase assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off], @am.flow("cat _and_ *dog*")) - assert_equal(["cat ", @em_on, "a__nd", @em_off, " ", @bold_on, "dog", @bold_off], + assert_equal(["cat ", @em_on, "a__nd", @em_off, " ", @bold_on, "dog", @bold_off], @am.flow("cat _a__nd_ *dog*")) end def test_html_like assert_equal(["cat ", @tt_on, "dog", @tt_off], @am.flow("cat dog")) - assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off], + assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off], @am.flow("cat and dog")) - - assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off], + + assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off], @am.flow("cat and dog")) - - assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off], + + assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off], @am.flow("cat and dog")) - - assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off], + + assert_equal(["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off], @am.flow("cat and dog")) - - assert_equal([@tt_on, "cat", @tt_off, " ", @em_on, "and ", @em_to_bold, "dog", @bold_off], + + assert_equal([@tt_on, "cat", @tt_off, " ", @em_on, "and ", @em_to_bold, "dog", @bold_off], @am.flow("cat and dog")) - assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off], + assert_equal(["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off], @am.flow("cat and dog")) - - assert_equal(["cat ", @bold_em_on, "and", @bold_em_off, " dog"], + + assert_equal(["cat ", @bold_em_on, "and", @bold_em_off, " dog"], @am.flow("cat and dog")) - - end def test_protect @@ -137,12 +134,12 @@ class TestInline < Test::Unit::TestCase assert_equal(["cat dog"], @am.flow("cat \\dog")) - assert_equal(["cat ", @em_on, "and", @em_off, " dog"], + assert_equal(["cat ", @em_on, "and", @em_off, " dog"], @am.flow("cat and \\dog")) - + assert_equal(["*word* or text"], @am.flow("\\*word* or \\text")) - assert_equal(["_cat_", @em_on, "dog", @em_off], + assert_equal(["_cat_", @em_on, "dog", @em_off], @am.flow("\\_cat_dog")) end @@ -151,4 +148,6 @@ class TestInline < Test::Unit::TestCase @am.flow("cat {and} dog")) # assert_equal(["cat {and} dog" ], @am.flow("cat \\{and} dog")) end + end +