test/test_hikidoc.rb in hikidoc-0.0.1 vs test/test_hikidoc.rb in hikidoc-0.0.2

- old
+ new

@@ -45,10 +45,36 @@ assert_convert(%Q|<div class="plugin">{{&lt;&lt;"End"\nfoo\nEnd}}</div>\n|, %Q!{{<<"End"\nfoo\nEnd}}!, options) end + def test_multi_line_plugin + assert_convert(<<-END_OF_EXPECTED, <<-END_OF_INPUT) +<div class="plugin">{{&lt;&lt;TEST2 + test2 +TEST2}}</div> + END_OF_EXPECTED +{{<<TEST2 + test2 +TEST2}} + END_OF_INPUT + + assert_convert(<<-END_OF_EXPECTED, <<-END_OF_INPUT) +<div class="plugin">{{&lt;&lt;TEST +&lt;&lt;&lt; +here is not pre but plugin. +&gt;&gt;&gt; +TEST}}</div> + END_OF_EXPECTED +{{<<TEST +<<< +here is not pre but plugin. +>>> +TEST}} + END_OF_INPUT + end + def test_blockquote assert_convert("<blockquote><p>hoge</p>\n</blockquote>\n", %Q|""hoge\n|) assert_convert("<blockquote><p>hoge\nfuga</p>\n</blockquote>\n", %Q|""hoge\n""fuga\n|) @@ -117,10 +143,14 @@ " foo\n bar") assert_convert("<pre>foo\nbar</pre>\n", " foo\n bar\n") assert_convert("<pre>&lt;foo&gt;</pre>\n", " <foo>") + assert_convert("<pre>{{_:a/a}}</pre>\n", + " {{_:a/a}}") + assert_convert("<pre>[[_:a/a]]</pre>\n", + " [[_:a/a]]") end def test_multi_pre assert_convert("<pre>foo</pre>\n", "<<<\nfoo\n>>>") @@ -130,10 +160,16 @@ "<<<\nfoo\n>>>\n<<<\nbar\n>>>") assert_convert("<pre>&lt;foo&gt;</pre>\n", "<<<\n<foo>\n>>>") end + def test_multi_pre_with_plugin + assert_convert("<pre>{{{}}}</pre>\n" + + "<div class=\"plugin\">{{'test'}}</div>\n", + "<<<\n{{{}}}\n>>>\n{{'test'}}") + end + def test_comment assert_convert("", "// foo") assert_convert("", "// foo\n") end @@ -187,10 +223,17 @@ "[[&]]") assert_convert(%Q|<p><a href="aa">aa</a>bb<a href="cc">cc</a></p>\n|, "[[aa]]bb[[cc]]") end + def test_inter_wiki_name + assert_convert("<p><a href=\"scheme:keyword\">scheme:keyword</a></p>\n", + "[[scheme:keyword]]") + assert_convert("<p><a href=\"scheme:keyword\">label</a></p>\n", + "[[label|scheme:keyword]]") + end + def test_wiki_name assert_convert("<p><a href=\"WikiName\">WikiName</a></p>\n", "WikiName") assert_convert("<p><a href=\"HogeRule1\">HogeRule1</a></p>\n", "HogeRule1") @@ -275,19 +318,39 @@ assert_convert("<dl>\n<dd>b</dd>\n</dl>\n", "::b") end def test_definition_with_link - assert_convert(%Q|<dl>\n<dt><a href="http://hikiwiki.org/">Hiki</a></dt>\n<dd>Website</dd>\n</dl>\n|, + assert_convert("<dl>\n<dt><a href=\"http://hikiwiki.org/\">Hiki</a></dt>\n" + + "<dd>Website</dd>\n</dl>\n", ":[[Hiki|http://hikiwiki.org/]]:Website") + assert_convert("<dl>\n<dt>a</dt>\n" + + "<dd><a href=\"http://hikiwiki.org/\">Hiki</a></dd>\n" + + "</dl>\n", + ":a:[[Hiki|http://hikiwiki.org/]]") end def test_definition_with_modifier - assert_convert(%Q|<dl>\n<dt><strong>foo</strong></dt>\n<dd>bar</dd>\n</dl>\n|, + assert_convert("<dl>\n<dt><strong>foo</strong></dt>\n" + + "<dd>bar</dd>\n</dl>\n", ":'''foo''':bar") + assert_convert("<dl>\n<dt>foo</dt>\n" + + "<dd><strong>bar</strong></dd>\n</dl>\n", + ":foo:'''bar'''") end + def test_definition_with_modifier_link + assert_convert("<dl>\n<dt>" + + "<strong><a href=\"http://hikiwiki.org/\">Hiki</a></strong>" + + "</dt>\n<dd>Website</dd>\n</dl>\n", + ":'''[[Hiki|http://hikiwiki.org/]]''':Website") + assert_convert("<dl>\n<dt>Website</dt>\n<dd>" + + "<strong><a href=\"http://hikiwiki.org/\">Hiki</a></strong>" + + "</dd>\n</dl>\n", + ":Website:'''[[Hiki|http://hikiwiki.org/]]'''") + end + def test_table assert_convert(%Q|<table border=\"1\">\n<tr><td>a</td><td>b</td></tr>\n</table>\n|, "||a||b") assert_convert(%Q|<table border=\"1\">\n<tr><td>a</td><td>b</td></tr>\n</table>\n|, "||a||b||") @@ -333,10 +396,12 @@ end def test_modifier_and_link assert_convert("<p><a href=\"http://hikiwiki.org/\"><strong>Hiki</strong></a></p>\n", "[['''Hiki'''|http://hikiwiki.org/]]") + assert_convert("<p><strong><a href=\"http://hikiwiki.org/\">Hiki</a></strong></p>\n", + "'''[[Hiki|http://hikiwiki.org/]]'''") end def test_pre_and_plugin assert_convert(%Q|<pre>{{hoge}}</pre>\n|, " {{hoge}}") @@ -359,9 +424,16 @@ assert_convert("<pre><span class=\"keyword\">class </span><span class=\"class\">A</span>\n <span class=\"keyword\">def </span><span class=\"method\">foo</span><span class=\"punct\">(</span><span class=\"ident\">bar</span><span class=\"punct\">)</span>\n <span class=\"keyword\">end</span>\n<span class=\"keyword\">end</span></pre>\n", "<<< Ruby\nclass A\n def foo(bar)\n end\nend\n>>>") assert_convert("<pre><span class=\"punct\">'</span><span class=\"string\">a&lt;&quot;&gt;b</span><span class=\"punct\">'</span></pre>\n", "<<< ruby\n'a<\">b'\n>>>") end + end + + def test_plugin_in_pre_with_header + assert_convert("<h1>Title</h1>\n<pre>{{_/a:a}}</pre>\n", + "! Title\n {{_/a:a}}") + assert_convert("<h1>Title</h1>\n<pre>{{_/a:a}}\n{{_/a:a}}</pre>\n", + "! Title\n {{_/a:a}}\n {{_/a:a}}") end private def assert_convert(expected, markup, options={}, message=nil) assert_equal(expected, HikiDoc.to_xhtml(markup, options), message)