Merge branch 'master' into code_with_multibyte

Conflicts:
	lib/gollum/markup.rb
	test/test_markup.rb
This commit is contained in:
Corey Donohoe
2012-04-10 15:49:37 -07:00
395 changed files with 359 additions and 8161 deletions
+69 -43
View File
@@ -189,7 +189,7 @@ context "Markup" do
page = @wiki.page(name)
output = page.formatted_data
assert_equal %{<p>a <img src="#{scheme}://example.com/bilbo.jpg" /> b</p>}, output
assert_equal %{<p>a <img src="#{scheme}://example.com/bilbo.jpg"> b</p>}, output
end
end
@@ -200,7 +200,7 @@ context "Markup" do
page = @wiki.page(name)
output = page.formatted_data
assert_equal %{<p>a <img src="#{scheme}://example.com/bilbo.JPG" /> b</p>}, output
assert_equal %{<p>a <img src="#{scheme}://example.com/bilbo.JPG"> b</p>}, output
end
end
@@ -212,7 +212,7 @@ context "Markup" do
@wiki.write_page("Bilbo Baggins", :markdown, "a [[/alpha.jpg]] [[a | /alpha.jpg]] b", commit_details)
page = @wiki.page("Bilbo Baggins")
assert_equal %{<p>a <img src="/wiki/alpha.jpg" /><a href="/wiki/alpha.jpg">a</a> b</p>}, page.formatted_data
assert_equal %{<p>a <img src="/wiki/alpha.jpg"><a href="/wiki/alpha.jpg">a</a> b</p>}, page.formatted_data
end
test "image with relative path on root" do
@@ -223,7 +223,7 @@ context "Markup" do
index.commit("Add alpha.jpg")
page = @wiki.page("Bilbo Baggins")
assert_equal %{<p>a <img src="/wiki/alpha.jpg" /><a href="/wiki/alpha.jpg">a</a> b</p>}, page.formatted_data
assert_equal %{<p>a <img src="/wiki/alpha.jpg"><a href="/wiki/alpha.jpg">a</a> b</p>}, page.formatted_data
end
test "image with relative path" do
@@ -235,7 +235,7 @@ context "Markup" do
page = @wiki.page("Bilbo Baggins")
output = page.formatted_data
assert_equal %{<p>a <img src="/wiki/greek/alpha.jpg" /><a href="/wiki/greek/alpha.jpg">a</a> b</p>}, output
assert_equal %{<p>a <img src="/wiki/greek/alpha.jpg"><a href="/wiki/greek/alpha.jpg">a</a> b</p>}, output
end
test "image with absolute path on a preview" do
@@ -245,7 +245,7 @@ context "Markup" do
index.commit("Add alpha.jpg")
page = @wiki.preview_page("Test", "a [[/alpha.jpg]] b", :markdown)
assert_equal %{<p>a <img src="/wiki/alpha.jpg" /> b</p>}, page.formatted_data
assert_equal %{<p>a <img src="/wiki/alpha.jpg"> b</p>}, page.formatted_data
end
test "image with relative path on a preview" do
@@ -256,12 +256,12 @@ context "Markup" do
index.commit("Add alpha.jpg")
page = @wiki.preview_page("Test", "a [[alpha.jpg]] [[greek/alpha.jpg]] b", :markdown)
assert_equal %{<p>a <img src="/wiki/alpha.jpg" /><img src="/wiki/greek/alpha.jpg" /> b</p>}, page.formatted_data
assert_equal %{<p>a <img src="/wiki/alpha.jpg"><img src="/wiki/greek/alpha.jpg"> b</p>}, page.formatted_data
end
test "image with alt" do
content = "a [[alpha.jpg|alt=Alpha Dog]] b"
output = %{<p>a <img src="/greek/alpha.jpg" alt="Alpha Dog" /> b</p>}
output = %{<p>a <img src="/greek/alpha.jpg" alt="Alpha Dog"> b</p>}
relative_image(content, output)
end
@@ -269,7 +269,7 @@ context "Markup" do
%w{em px}.each do |unit|
%w{width height}.each do |dim|
content = "a [[alpha.jpg|#{dim}=100#{unit}]] b"
output = "<p>a <img src=\"/greek/alpha.jpg\" #{dim}=\"100#{unit}\" /> b</p>"
output = "<p>a <img src=\"/greek/alpha.jpg\" #{dim}=\"100#{unit}\"> b</p>"
relative_image(content, output)
end
end
@@ -278,7 +278,7 @@ context "Markup" do
test "image with bogus dimension" do
%w{width height}.each do |dim|
content = "a [[alpha.jpg|#{dim}=100]] b"
output = "<p>a <img src=\"/greek/alpha.jpg\" /> b</p>"
output = "<p>a <img src=\"/greek/alpha.jpg\"> b</p>"
relative_image(content, output)
end
end
@@ -286,7 +286,7 @@ context "Markup" do
test "image with vertical align" do
%w{top texttop middle absmiddle bottom absbottom baseline}.each do |align|
content = "a [[alpha.jpg|align=#{align}]] b"
output = "<p>a <img src=\"/greek/alpha.jpg\" align=\"#{align}\" /> b</p>"
output = "<p>a <img src=\"/greek/alpha.jpg\" align=\"#{align}\"> b</p>"
relative_image(content, output)
end
end
@@ -294,40 +294,40 @@ context "Markup" do
test "image with horizontal align" do
%w{left center right}.each do |align|
content = "a [[alpha.jpg|align=#{align}]] b"
output = "<p>a <span class=\"align-#{align}\"><span><img src=\"/greek/alpha.jpg\" /></span></span> b</p>"
output = "<p>a <span class=\"align-#{align}\"><span><img src=\"/greek/alpha.jpg\"></span></span> b</p>"
relative_image(content, output)
end
end
test "image with float" do
content = "a\n\n[[alpha.jpg|float]]\n\nb"
output = "<p>a</p>\n\n<p><span class=\"float-left\"><span><img src=\"/greek/alpha.jpg\" /></span></span></p>\n\n<p>b</p>"
output = "<p>a</p>\n\n<p><span class=\"float-left\"><span><img src=\"/greek/alpha.jpg\"></span></span></p>\n\n<p>b</p>"
relative_image(content, output)
end
test "image with float and align" do
%w{left right}.each do |align|
content = "a\n\n[[alpha.jpg|float|align=#{align}]]\n\nb"
output = "<p>a</p>\n\n<p><span class=\"float-#{align}\"><span><img src=\"/greek/alpha.jpg\" /></span></span></p>\n\n<p>b</p>"
output = "<p>a</p>\n\n<p><span class=\"float-#{align}\"><span><img src=\"/greek/alpha.jpg\"></span></span></p>\n\n<p>b</p>"
relative_image(content, output)
end
end
test "image with frame" do
content = "a\n\n[[alpha.jpg|frame]]\n\nb"
output = "<p>a</p>\n\n<p><span class=\"frame\"><span><img src=\"/greek/alpha.jpg\" /></span></span></p>\n\n<p>b</p>"
output = "<p>a</p>\n\n<p><span class=\"frame\"><span><img src=\"/greek/alpha.jpg\"></span></span></p>\n\n<p>b</p>"
relative_image(content, output)
end
test "absolute image with frame" do
content = "a\n\n[[http://example.com/bilbo.jpg|frame]]\n\nb"
output = "<p>a</p>\n\n<p><span class=\"frame\"><span><img src=\"http://example.com/bilbo.jpg\" /></span></span></p>\n\n<p>b</p>"
output = "<p>a</p>\n\n<p><span class=\"frame\"><span><img src=\"http://example.com/bilbo.jpg\"></span></span></p>\n\n<p>b</p>"
relative_image(content, output)
end
test "image with frame and alt" do
content = "a\n\n[[alpha.jpg|frame|alt=Alpha]]\n\nb"
output = "<p>a</p>\n\n<p><span class=\"frame\"><span><img src=\"/greek/alpha.jpg\" alt=\"Alpha\" /><span>Alpha</span></span></span></p>\n\n<p>b</p>"
output = "<p>a</p>\n\n<p><span class=\"frame\"><span><img src=\"/greek/alpha.jpg\" alt=\"Alpha\"><span>Alpha</span></span></span></p>\n\n<p>b</p>"
relative_image(content, output)
end
@@ -376,7 +376,7 @@ context "Markup" do
test "code blocks" do
content = "a\n\n```ruby\nx = 1\n```\n\nb"
output = "<p>a</p>\n\n<div class=\"highlight\"><pre>" +
output = "<p>a</p>\n\n<div class=\"highlight\">\n<pre>" +
"<span class=\"n\">x</span> <span class=\"o\">=</span> " +
"<span class=\"mi\">1</span>\n</pre>\n</div>\n\n\n<p>b</p>"
@@ -391,7 +391,7 @@ context "Markup" do
test "code blocks with carriage returns" do
content = "a\r\n\r\n```ruby\r\nx = 1\r\n```\r\n\r\nb"
output = "<p>a</p>\n\n<div class=\"highlight\"><pre>" +
output = "<p>a</p>\n\n<div class=\"highlight\">\n<pre>" +
"<span class=\"n\">x</span> <span class=\"o\">=</span> " +
"<span class=\"mi\">1</span>\n</pre>\n</div>\n\n\n<p>b</p>"
@@ -424,7 +424,7 @@ context "Markup" do
test "code blocks with multibyte caracters indent" do
content = "a\n\n```ruby\ns = 'やくしまるえつこ'\n```\n\nb"
output = "<p>a</p>\n\n<div class=\"highlight\"><pre><span class=\"n\">" +
output = "<p>a</p>\n\n<div class=\"highlight\">\n<pre><span class=\"n\">" +
"s</span> <span class=\"o\">=</span> <span class=\"s1\">'やくしまるえつこ'" +
"</span>\n</pre>\n</div>\n\n\n<p>b</p>"
index = @wiki.repo.index
@@ -436,6 +436,14 @@ context "Markup" do
assert_equal output, rendered
end
test "code blocks with ascii characters" do
content = "a\n\n```\n├─foo\n```\n\nb"
output = "<p>a</p>\n\n<div class=\"highlight\"><pre>" +
"├─<span class=\"n\">foo</span>" +
"\n</pre>\n</div>\n\n<p>b</p>"
compare(content, output)
end
test "code with wiki links" do
content = <<-END
booya
@@ -467,6 +475,24 @@ np.array([[2,2],[1,3]],np.float)
#
#########################################################################
test "strips javscript protocol urls" do
content = "[Hack me](javascript:hacked=true)"
output = "<p><a>Hackme</a></p>"
compare(content, output)
end
test "removes style blocks completely" do
content = "<style>body { color: red }</style>foobar"
output = "<p>foobar</p>"
compare(content, output)
end
test "removes script blocks completely" do
content = "<script>alert('hax');</script>foobar"
output = "<p>foobar</p>"
compare(content, output)
end
test "escaped wiki link" do
content = "a '[[Foo]], b"
output = "<p>a [[Foo]], b</p>"
@@ -506,29 +532,29 @@ np.array([[2,2],[1,3]],np.float)
compare(content, output, 'org')
end
test "id with prefix ok" do
content = "h2(example#wiki-foo). xxxx"
output = %(<h2 class="example" id="wiki-foo">xxxx</h2>)
compare(content, output, :textile)
end
# test "id with prefix ok" do
# content = "h2(example#wiki-foo). xxxx"
# output = %(<h2 class="example" id="wiki-foo">xxxx</h2>)
# compare(content, output, :textile)
# end
test "id prefix added" do
content = "h2(#foo). xxxx[1]\n\nfn1.footnote"
output = "<h2 id=\"wiki-foo\">xxxx" +
"<sup class=\"footnote\" id=\"wiki-fnr1\"><a href=\"#wiki-fn1\">1</a></sup></h2>" +
"\n<p class=\"footnote\" id=\"wiki-fn1\"><a href=\"#wiki-fnr1\"><sup>1</sup></a> footnote</p>"
compare(content, output, :textile)
end
# test "id prefix added" do
# content = "h2(#foo). xxxx[1]\n\nfn1.footnote"
# output = "<h2 id=\"wiki-foo\">xxxx" +
# "<sup class=\"footnote\" id=\"wiki-fnr1\"><a href=\"#wiki-fn1\">1</a></sup></h2>" +
# "\n<p class=\"footnote\" id=\"wiki-fn1\"><a href=\"#wiki-fnr1\"><sup>1</sup></a> footnote</p>"
# compare(content, output, :textile)
# end
test "name prefix added" do
content = "abc\n\n__TOC__\n\n==Header==\n\nblah"
compare content, '', :mediawiki, [
/id="wiki-toc"/,
/href="#wiki-Header"/,
/id="wiki-Header"/,
/name="wiki-Header"/
]
end
# test "name prefix added" do
# content = "abc\n\n__TOC__\n\n==Header==\n\nblah"
# compare content, '', :mediawiki, [
# /id="wiki-toc"/,
# /href="#wiki-Header"/,
# /id="wiki-Header"/,
# /name="wiki-Header"/
# ]
# end
#########################################################################
#
@@ -538,13 +564,13 @@ np.array([[2,2],[1,3]],np.float)
test "TeX block syntax" do
content = 'a \[ a^2 \] b'
output = "<p>a <script type=\"math/tex; mode=display\">a^2</script> b</p>"
output = "<p>a<imgsrc=\"/_tex.png?type=block&data=YV4y\"alt=\"a^2\">b</p>"
compare(content, output, 'md')
end
test "TeX inline syntax" do
content = 'a \( a^2 \) b'
output = "<p>a <script type=\"math/tex\">a^2</script> b</p>"
output = "<p>a<imgsrc=\"/_tex.png?type=inline&data=YV4y\"alt=\"a^2\">b</p>"
compare(content, output, 'md')
end
+8 -4
View File
@@ -11,13 +11,17 @@ context "Wiki" do
assert_equal Gollum::Markup, Gollum::Wiki.markup_class
end
test "#markup_class= doesn't clobber alternate markups" do
test "#default_markup_class= doesn't clobber alternate markups" do
custom = Class.new(Gollum::Markup)
Gollum::Wiki.markup_class = custom
custom_md = Class.new(Gollum::Markup)
assert_equal custom, Gollum::Wiki.markup_class
Gollum::Wiki.markup_classes = Hash.new Gollum::Markup
Gollum::Wiki.markup_classes[:markdown] = custom_md
Gollum::Wiki.default_markup_class = custom
assert_equal custom, Gollum::Wiki.default_markup_class
assert_equal custom, Gollum::Wiki.markup_classes[:orgmode]
assert_equal Gollum::MarkupGFM, Gollum::Wiki.markup_classes[:markdown]
assert_equal custom_md, Gollum::Wiki.markup_classes[:markdown]
end
test "repo path" do