rdiscount 2.0.7.3 → 2.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,12 @@ require 'test/unit'
6
6
  require 'rdiscount'
7
7
 
8
8
  class RDiscountTest < Test::Unit::TestCase
9
+ def test_that_version_looks_valid
10
+ if not /^[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?$/ =~ RDiscount::VERSION
11
+ assert false, 'Expected RDiscount::VERSION to be a 3 or 4 component version string but found ' + RDiscount::VERSION.to_s
12
+ end
13
+ end
14
+
9
15
  def test_that_discount_does_not_blow_up_with_weird_formatting_case
10
16
  text = (<<-TEXT).gsub(/^ {4}/, '').rstrip
11
17
  1. some text
@@ -53,7 +59,19 @@ class RDiscountTest < Test::Unit::TestCase
53
59
 
54
60
  def test_should_get_the_generated_toc
55
61
  rd = RDiscount.new("# Level 1\n\n## Level 2", :generate_toc)
56
- exp = %(<ul>\n <li><a href="#Level.1">Level 1</a></li>\n <li><ul>\n <li><a href="#Level.2">Level 2</a></li>\n </ul></li>\n</ul>)
62
+ exp = %(<ul>\n <li><a href=\"#Level.1\">Level 1</a>\n <ul>\n <li><a href=\"#Level.2\">Level 2</a></li>\n </ul>\n </li>\n</ul>)
63
+ assert_equal exp, rd.toc_content.strip
64
+ end
65
+
66
+ def test_toc_should_escape_apostropes
67
+ rd = RDiscount.new("# A'B\n\n## C", :generate_toc)
68
+ exp = %(<ul>\n <li><a href=\"#A.B\">A'B</a>\n <ul>\n <li><a href=\"#C\">C</a></li>\n </ul>\n </li>\n</ul>)
69
+ assert_equal exp, rd.toc_content.strip
70
+ end
71
+
72
+ def test_toc_should_escape_question_marks
73
+ rd = RDiscount.new("# A?B\n\n## C", :generate_toc)
74
+ exp = %(<ul>\n <li><a href=\"#A.B\">A?B</a>\n <ul>\n <li><a href=\"#C\">C</a></li>\n </ul>\n </li>\n</ul>)
57
75
  assert_equal exp, rd.toc_content.strip
58
76
  end
59
77
 
@@ -103,6 +121,22 @@ EOS
103
121
  rd = RDiscount.new("[foo](id:bar)", :no_pseudo_protocols)
104
122
  assert_equal "<p>[foo](id:bar)</p>\n", rd.to_html
105
123
  end
124
+
125
+ def test_that_no_superscript_flag_works
126
+ rd = RDiscount.new("A^B", :no_superscript)
127
+ assert_equal "<p>A^B</p>\n", rd.to_html
128
+
129
+ rd = RDiscount.new("A^B")
130
+ assert_equal "<p>A<sup>B</sup></p>\n", rd.to_html
131
+ end
132
+
133
+ def test_that_no_strikethrough_flag_works
134
+ rd = RDiscount.new("~~A~~", :no_strikethrough)
135
+ assert_equal "<p>~~A~~</p>\n", rd.to_html
136
+
137
+ rd = RDiscount.new("~~A~~")
138
+ assert_equal "<p><del>A</del></p>\n", rd.to_html
139
+ end
106
140
 
107
141
  def test_that_tags_can_have_dashes_and_underscores
108
142
  if RDiscount::VERSION.start_with? "2.0.7"
@@ -128,5 +162,56 @@ EOS
128
162
  rd = RDiscount.new("[Test](http://example.com/ß)")
129
163
  assert_equal "<p><a href=\"http://example.com/%C3%9F\">Test</a></p>\n", rd.to_html
130
164
  end
165
+
166
+ def test_that_dashes_encoded_correctly
167
+ rd = RDiscount.new("A--B", :smart)
168
+ assert_equal "<p>A&ndash;B</p>\n", rd.to_html
169
+
170
+ rd = RDiscount.new("A---B", :smart)
171
+ assert_equal "<p>A&mdash;B</p>\n", rd.to_html
172
+ end
173
+
174
+ def test_that_superscripts_can_be_escaped
175
+ rd = RDiscount.new("A\\^B")
176
+ assert_equal "<p>A^B</p>\n", rd.to_html
177
+
178
+ rd = RDiscount.new("A^B")
179
+ assert_equal "<p>A<sup>B</sup></p>\n", rd.to_html
180
+ end
181
+
182
+ def test_that_style_tag_is_not_filtered_by_default
183
+ rd = RDiscount.new("Hello<style>p { margin: 5px; }</style>")
184
+ assert_equal "<p>Hello<style>p { margin: 5px; }</style></p>\n", rd.to_html
185
+ end
186
+
187
+ def test_that_tables_can_have_leading_and_trailing_pipes
188
+ rd = RDiscount.new(<<EOS)
189
+ | A | B |
190
+ |---|---|
191
+ | C | D |
192
+ EOS
193
+ assert_equal "<table>\n<thead>\n<tr>\n<th> A </th>\n<th> B </th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td> C </td>\n<td> D </td>\n</tr>\n</tbody>\n</table>\n\n", rd.to_html
194
+ end
195
+
196
+ def test_that_gfm_code_blocks_work
197
+ rd = RDiscount.new(<<EOS)
198
+ ```
199
+ line 1
131
200
 
201
+ line 2
202
+ ```
203
+ EOS
204
+ assert_equal "<pre><code>line 1\n\nline 2\n</code></pre>\n", rd.to_html
205
+ end
206
+
207
+ def test_that_pandoc_code_blocks_work
208
+ rd = RDiscount.new(<<EOS)
209
+ ~~~
210
+ line 1
211
+
212
+ line 2
213
+ ~~~
214
+ EOS
215
+ assert_equal "<pre><code>line 1\n\nline 2\n</code></pre>\n", rd.to_html
216
+ end
132
217
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdiscount
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.7.3
4
+ version: 2.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-05-07 00:00:00.000000000 Z
15
+ date: 2013-05-28 00:00:00.000000000 Z
16
16
  dependencies: []
17
17
  description:
18
18
  email: davidfstr@gmail.com
@@ -33,6 +33,7 @@ files:
33
33
  - ext/amalloc.c
34
34
  - ext/amalloc.h
35
35
  - ext/basename.c
36
+ - ext/blocktags
36
37
  - ext/config.h
37
38
  - ext/css.c
38
39
  - ext/cstring.h
@@ -42,11 +43,15 @@ files:
42
43
  - ext/extconf.rb
43
44
  - ext/flags.c
44
45
  - ext/generate.c
46
+ - ext/github_flavoured.c
45
47
  - ext/html5.c
46
48
  - ext/markdown.c
47
49
  - ext/markdown.h
48
50
  - ext/mkdio.c
49
51
  - ext/mkdio.h
52
+ - ext/mktags.c
53
+ - ext/pgm_options.c
54
+ - ext/pgm_options.h
50
55
  - ext/rdiscount.c
51
56
  - ext/resource.c
52
57
  - ext/setup.c