2
require "rdoc/markup/inline"
4
class TestRDocMarkupAttributeManager < Test::Unit::TestCase
7
@am = RDoc::Markup::AttributeManager.new
9
@bold_on = @am.changed_attribute_by_name([], [:BOLD])
10
@bold_off = @am.changed_attribute_by_name([:BOLD], [])
12
@tt_on = @am.changed_attribute_by_name([], [:TT])
13
@tt_off = @am.changed_attribute_by_name([:TT], [])
15
@em_on = @am.changed_attribute_by_name([], [:EM])
16
@em_off = @am.changed_attribute_by_name([:EM], [])
18
@bold_em_on = @am.changed_attribute_by_name([], [:BOLD] | [:EM])
19
@bold_em_off = @am.changed_attribute_by_name([:BOLD] | [:EM], [])
21
@em_then_bold = @am.changed_attribute_by_name([:EM], [:EM] | [:BOLD])
23
@em_to_bold = @am.changed_attribute_by_name([:EM], [:BOLD])
25
@am.add_word_pair("{", "}", :WOMBAT)
26
@wombat_on = @am.changed_attribute_by_name([], [:WOMBAT])
27
@wombat_off = @am.changed_attribute_by_name([:WOMBAT], [])
31
crossref_bitmap = RDoc::Markup::Attribute.bitmap_for(:_SPECIAL_) |
32
RDoc::Markup::Attribute.bitmap_for(:CROSSREF)
34
[ @am.changed_attribute_by_name([], [:CROSSREF, :_SPECIAL_]),
35
RDoc::Markup::Special.new(crossref_bitmap, text),
36
@am.changed_attribute_by_name([:CROSSREF, :_SPECIAL_], [])
41
assert_equal(["cat ", @wombat_on, "and", @wombat_off, " dog" ],
42
@am.flow("cat {and} dog"))
43
#assert_equal(["cat {and} dog" ], @am.flow("cat \\{and} dog"))
47
assert_equal(["cat"], @am.flow("cat"))
49
assert_equal(["cat ", @bold_on, "and", @bold_off, " dog"],
50
@am.flow("cat *and* dog"))
52
assert_equal(["cat ", @bold_on, "AND", @bold_off, " dog"],
53
@am.flow("cat *AND* dog"))
55
assert_equal(["cat ", @em_on, "And", @em_off, " dog"],
56
@am.flow("cat _And_ dog"))
58
assert_equal(["cat *and dog*"], @am.flow("cat *and dog*"))
60
assert_equal(["*cat and* dog"], @am.flow("*cat and* dog"))
62
assert_equal(["cat *and ", @bold_on, "dog", @bold_off],
63
@am.flow("cat *and *dog*"))
65
assert_equal(["cat ", @em_on, "and", @em_off, " dog"],
66
@am.flow("cat _and_ dog"))
68
assert_equal(["cat_and_dog"],
69
@am.flow("cat_and_dog"))
71
assert_equal(["cat ", @tt_on, "and", @tt_off, " dog"],
72
@am.flow("cat +and+ dog"))
74
assert_equal(["cat ", @bold_on, "a_b_c", @bold_off, " dog"],
75
@am.flow("cat *a_b_c* dog"))
77
assert_equal(["cat __ dog"],
78
@am.flow("cat __ dog"))
80
assert_equal(["cat ", @em_on, "_", @em_off, " dog"],
81
@am.flow("cat ___ dog"))
86
assert_equal [@bold_on, 'bold', @bold_off],
89
assert_equal [@bold_on, 'Bold:', @bold_off],
92
assert_equal [@bold_on, '\\bold', @bold_off],
97
assert_equal(["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
98
@am.flow("cat _and_ *dog*"))
100
assert_equal(["cat ", @em_on, "a__nd", @em_off, " ", @bold_on, "dog", @bold_off],
101
@am.flow("cat _a__nd_ *dog*"))
104
def test_html_like_em_bold
105
assert_equal ["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
106
@am.flow("cat <i>and </i><b>dog</b>")
109
def test_html_like_em_bold_SGML
110
assert_equal ["cat ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
111
@am.flow("cat <i>and <b></i>dog</b>")
114
def test_html_like_em_bold_nested_1
115
assert_equal(["cat ", @bold_em_on, "and", @bold_em_off, " dog"],
116
@am.flow("cat <i><b>and</b></i> dog"))
119
def test_html_like_em_bold_nested_2
120
assert_equal ["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
121
@am.flow("cat <i>and <b>dog</b></i>")
124
def test_html_like_em_bold_nested_mixed_case
125
assert_equal ["cat ", @em_on, "and ", @em_then_bold, "dog", @bold_em_off],
126
@am.flow("cat <i>and <B>dog</B></I>")
129
def test_html_like_em_bold_mixed_case
130
assert_equal ["cat ", @em_on, "and", @em_off, " ", @bold_on, "dog", @bold_off],
131
@am.flow("cat <i>and</i> <B>dog</b>")
134
def test_html_like_teletype
135
assert_equal ["cat ", @tt_on, "dog", @tt_off],
136
@am.flow("cat <tt>dog</Tt>")
139
def test_html_like_teletype_em_bold_SGML
140
assert_equal [@tt_on, "cat", @tt_off, " ", @em_on, "and ", @em_to_bold, "dog", @bold_off],
141
@am.flow("<tt>cat</tt> <i>and <b></i>dog</b>")
145
assert_equal(['cat \\ dog'], @am.flow('cat \\ dog'))
147
assert_equal(["cat <tt>dog</Tt>"], @am.flow("cat \\<tt>dog</Tt>"))
149
assert_equal(["cat ", @em_on, "and", @em_off, " <B>dog</b>"],
150
@am.flow("cat <i>and</i> \\<B>dog</b>"))
152
assert_equal(["*word* or <b>text</b>"], @am.flow("\\*word* or \\<b>text</b>"))
154
assert_equal(["_cat_", @em_on, "dog", @em_off],
155
@am.flow("\\_cat_<i>dog</i>"))
159
# class names, variable names, file names, or instance variables
163
| \b\w+([_\/\.]+\w+)+[!?=]?
167
assert_equal(["cat"], @am.flow("cat"))
169
assert_equal(["cat ", crossref("#fred"), " dog"].flatten,
170
@am.flow("cat #fred dog"))
172
assert_equal([crossref("#fred"), " dog"].flatten,
173
@am.flow("#fred dog"))
175
assert_equal(["cat ", crossref("#fred")].flatten, @am.flow("cat #fred"))