| 64 |
64 |
'@<Location /redmine>@' => '<code><Location /redmine></code>'
|
| 65 |
65 |
)
|
| 66 |
66 |
end
|
| 67 |
|
|
|
67 |
|
| 68 |
68 |
def test_escaping
|
| 69 |
69 |
assert_html_output(
|
| 70 |
70 |
'this is a <script>' => 'this is a <script>'
|
| 71 |
71 |
)
|
| 72 |
72 |
end
|
|
73 |
|
|
74 |
def test_use_of_backslashes_followed_by_numbers_in_headers
|
|
75 |
assert_html_output({
|
|
76 |
'h1. 2009\02\09' => '<h1>2009\02\09</h1>'
|
|
77 |
}, false)
|
|
78 |
end
|
| 73 |
79 |
|
| 74 |
80 |
def test_double_dashes_should_not_strikethrough
|
| 75 |
81 |
assert_html_output(
|
| ... | ... | |
| 86 |
92 |
)
|
| 87 |
93 |
end
|
| 88 |
94 |
|
|
95 |
def test_blockquote
|
|
96 |
# orig raw text
|
|
97 |
raw = <<-RAW
|
|
98 |
John said:
|
|
99 |
> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sed libero.
|
|
100 |
> Nullam commodo metus accumsan nulla. Curabitur lobortis dui id dolor.
|
|
101 |
> * Donec odio lorem,
|
|
102 |
> * sagittis ac,
|
|
103 |
> * malesuada in,
|
|
104 |
> * adipiscing eu, dolor.
|
|
105 |
>
|
|
106 |
> >Nulla varius pulvinar diam. Proin id arcu id lorem scelerisque condimentum. Proin vehicula turpis vitae lacus.
|
|
107 |
> Proin a tellus. Nam vel neque.
|
|
108 |
|
|
109 |
He's right.
|
|
110 |
RAW
|
|
111 |
|
|
112 |
# expected html
|
|
113 |
expected = <<-EXPECTED
|
|
114 |
<p>John said:</p>
|
|
115 |
<blockquote>
|
|
116 |
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sed libero.<br />
|
|
117 |
Nullam commodo metus accumsan nulla. Curabitur lobortis dui id dolor.
|
|
118 |
<ul>
|
|
119 |
<li>Donec odio lorem,</li>
|
|
120 |
<li>sagittis ac,</li>
|
|
121 |
<li>malesuada in,</li>
|
|
122 |
<li>adipiscing eu, dolor.</li>
|
|
123 |
</ul>
|
|
124 |
<blockquote>
|
|
125 |
<p>Nulla varius pulvinar diam. Proin id arcu id lorem scelerisque condimentum. Proin vehicula turpis vitae lacus.</p>
|
|
126 |
</blockquote>
|
|
127 |
<p>Proin a tellus. Nam vel neque.</p>
|
|
128 |
</blockquote>
|
|
129 |
<p>He's right.</p>
|
|
130 |
EXPECTED
|
|
131 |
|
|
132 |
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
|
133 |
end
|
|
134 |
|
|
135 |
def test_table
|
|
136 |
raw = <<-RAW
|
|
137 |
This is a table with empty cells:
|
|
138 |
|
|
139 |
|cell11|cell12||
|
|
140 |
|cell21||cell23|
|
|
141 |
|cell31|cell32|cell33|
|
|
142 |
RAW
|
|
143 |
|
|
144 |
expected = <<-EXPECTED
|
|
145 |
<p>This is a table with empty cells:</p>
|
|
146 |
|
|
147 |
<table>
|
|
148 |
<tr><td>cell11</td><td>cell12</td><td></td></tr>
|
|
149 |
<tr><td>cell21</td><td></td><td>cell23</td></tr>
|
|
150 |
<tr><td>cell31</td><td>cell32</td><td>cell33</td></tr>
|
|
151 |
</table>
|
|
152 |
EXPECTED
|
|
153 |
|
|
154 |
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
|
155 |
end
|
|
156 |
|
|
157 |
def test_table_with_line_breaks
|
|
158 |
raw = <<-RAW
|
|
159 |
This is a table with line breaks:
|
|
160 |
|
|
161 |
|cell11
|
|
162 |
continued|cell12||
|
|
163 |
|-cell21-||cell23
|
|
164 |
cell23 line2
|
|
165 |
cell23 *line3*|
|
|
166 |
|cell31|cell32
|
|
167 |
cell32 line2|cell33|
|
|
168 |
|
|
169 |
RAW
|
|
170 |
|
|
171 |
expected = <<-EXPECTED
|
|
172 |
<p>This is a table with line breaks:</p>
|
|
173 |
|
|
174 |
<table>
|
|
175 |
<tr>
|
|
176 |
<td>cell11<br />continued</td>
|
|
177 |
<td>cell12</td>
|
|
178 |
<td></td>
|
|
179 |
</tr>
|
|
180 |
<tr>
|
|
181 |
<td><del>cell21</del></td>
|
|
182 |
<td></td>
|
|
183 |
<td>cell23<br/>cell23 line2<br/>cell23 <strong>line3</strong></td>
|
|
184 |
</tr>
|
|
185 |
<tr>
|
|
186 |
<td>cell31</td>
|
|
187 |
<td>cell32<br/>cell32 line2</td>
|
|
188 |
<td>cell33</td>
|
|
189 |
</tr>
|
|
190 |
</table>
|
|
191 |
EXPECTED
|
|
192 |
|
|
193 |
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
|
194 |
end
|
|
195 |
|
|
196 |
def test_textile_should_not_mangle_brackets
|
|
197 |
assert_equal '<p>[msg1][msg2]</p>', to_html('[msg1][msg2]')
|
|
198 |
end
|
|
199 |
|
| 89 |
200 |
private
|
| 90 |
201 |
|
| 91 |
|
def assert_html_output(to_test)
|
|
202 |
def assert_html_output(to_test, expect_paragraph = true)
|
| 92 |
203 |
to_test.each do |text, expected|
|
| 93 |
|
assert_equal "<p>#{expected}</p>", @formatter.new(text).to_html, "Formatting the following text failed:\n===\n#{text}\n===\n"
|
|
204 |
assert_equal(( expect_paragraph ? "<p>#{expected}</p>" : expected ), @formatter.new(text).to_html, "Formatting the following text failed:\n===\n#{text}\n===\n")
|
| 94 |
205 |
end
|
| 95 |
206 |
end
|
|
207 |
|
|
208 |
def to_html(text)
|
|
209 |
@formatter.new(text).to_html
|
|
210 |
end
|
| 96 |
211 |
end
|