git.iko.soy/typeable/pandoc
on master help sign in
Added lots of tests for bare URIs.
commite9b3d5aa7a3095a5ad7a4d5ec3e5bb958a97fa50 authorJohn MacFarlane <jgm@berkeley.edu> dateTue 15 Jan 2013, 12:28 (14 years ago) parent5971721
1 file changed+91
tests/Tests/Readers/Markdown.hs+91
tests/Tests/Readers/Markdown.hs+91
@@ -21,6 +21,95 @@ infix 4 =:
2121 => String -> (String, c) -> Test
2222(=:) = test markdown
2323
24+testBareLink :: (String, Inlines) -> Test
25+testBareLink (inp, ils) =
26+ test (readMarkdown def{ readerExtensions =
27+ Set.fromList [Ext_autolink_urls] })
28+ inp (inp, doc $ para ils)
29+
30+autolink :: String -> Inlines
31+autolink s = link s "" (str s)
32+
33+bareLinkTests :: [(String, Inlines)]
34+bareLinkTests =
35+ [ ("http://google.com is a search engine.",
36+ autolink "http://google.com" <> " is a search engine.")
37+ , ("Try this query: http://google.com?search=fish&time=hour.",
38+ "Try this query: " <> autolink "http://google.com?search=fish&time=hour" <> ".")
39+ , ("HTTPS://GOOGLE.COM,",
40+ autolink "HTTPS://GOOGLE.COM" <> ",")
41+ , ("http://el.wikipedia.org/wiki/Τεχνολογία,",
42+ autolink "http://el.wikipedia.org/wiki/Τεχνολογία" <> ",")
43+ , ("doi:10.1000/182,",
44+ autolink "doi:10.1000/182" <> ",")
45+ , ("git://github.com/foo/bar.git,",
46+ autolink "git://github.com/foo/bar.git" <> ",")
47+ , ("file:///Users/joe/joe.txt, and",
48+ autolink "file:///Users/joe/joe.txt" <> ", and")
49+ , ("mailto:someone@somedomain.com.",
50+ autolink "mailto:someone@somedomain.com" <> ".")
51+ , ("Use http: this is not a link!",
52+ "Use http: this is not a link!")
53+ , ("(http://google.com).",
54+ "(" <> autolink "http://google.com" <> ").")
55+ , ("http://en.wikipedia.org/wiki/Sprite_(computer_graphics)",
56+ autolink "http://en.wikipedia.org/wiki/Sprite_(computer_graphics)")
57+ , ("http://en.wikipedia.org/wiki/Sprite_[computer_graphics]",
58+ autolink "http://en.wikipedia.org/wiki/Sprite_[computer_graphics]")
59+ , ("http://en.wikipedia.org/wiki/Sprite_{computer_graphics}",
60+ autolink "http://en.wikipedia.org/wiki/Sprite_{computer_graphics}")
61+ , ("http://example.com/Notification_Center-GitHub-20101108-140050.jpg",
62+ autolink "http://example.com/Notification_Center-GitHub-20101108-140050.jpg")
63+ , ("https://github.com/github/hubot/blob/master/scripts/cream.js#L20-20",
64+ autolink "https://github.com/github/hubot/blob/master/scripts/cream.js#L20-20")
65+ , ("http://www.rubyonrails.com",
66+ autolink "http://www.rubyonrails.com")
67+ , ("http://www.rubyonrails.com:80",
68+ autolink "http://www.rubyonrails.com:80")
69+ , ("http://www.rubyonrails.com/~minam",
70+ autolink "http://www.rubyonrails.com/~minam")
71+ , ("https://www.rubyonrails.com/~minam",
72+ autolink "https://www.rubyonrails.com/~minam")
73+ , ("http://www.rubyonrails.com/~minam/url%20with%20spaces",
74+ autolink "http://www.rubyonrails.com/~minam/url%20with%20spaces")
75+ , ("http://www.rubyonrails.com/foo.cgi?something=here",
76+ autolink "http://www.rubyonrails.com/foo.cgi?something=here")
77+ , ("http://www.rubyonrails.com/foo.cgi?something=here&and=here",
78+ autolink "http://www.rubyonrails.com/foo.cgi?something=here&and=here")
79+ , ("http://www.rubyonrails.com/contact;new",
80+ autolink "http://www.rubyonrails.com/contact;new")
81+ , ("http://www.rubyonrails.com/contact;new%20with%20spaces",
82+ autolink "http://www.rubyonrails.com/contact;new%20with%20spaces")
83+ , ("http://www.rubyonrails.com/contact;new?with=query&string=params",
84+ autolink "http://www.rubyonrails.com/contact;new?with=query&string=params")
85+ , ("http://www.rubyonrails.com/~minam/contact;new?with=query&string=params",
86+ autolink "http://www.rubyonrails.com/~minam/contact;new?with=query&string=params")
87+ , ("http://en.wikipedia.org/wiki/Wikipedia:Today%27s_featured_picture_%28animation%29/January_20%2C_2007",
88+ autolink "http://en.wikipedia.org/wiki/Wikipedia:Today%27s_featured_picture_%28animation%29/January_20%2C_2007")
89+ , ("http://www.mail-archive.com/rails@lists.rubyonrails.org/",
90+ autolink "http://www.mail-archive.com/rails@lists.rubyonrails.org/")
91+ , ("http://www.amazon.com/Testing-Equal-Sign-In-Path/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1198861734&sr=8-1",
92+ autolink "http://www.amazon.com/Testing-Equal-Sign-In-Path/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1198861734&sr=8-1")
93+ , ("http://en.wikipedia.org/wiki/Texas_hold%27em",
94+ autolink "http://en.wikipedia.org/wiki/Texas_hold%27em")
95+ , ("https://www.google.com/doku.php?id=gps:resource:scs:start",
96+ autolink "https://www.google.com/doku.php?id=gps:resource:scs:start")
97+ , ("http://www.rubyonrails.com",
98+ autolink "http://www.rubyonrails.com")
99+ , ("http://manuals.ruby-on-rails.com/read/chapter.need_a-period/103#page281",
100+ autolink "http://manuals.ruby-on-rails.com/read/chapter.need_a-period/103#page281")
101+ , ("http://foo.example.com/controller/action?parm=value&p2=v2#anchor123",
102+ autolink "http://foo.example.com/controller/action?parm=value&p2=v2#anchor123")
103+ , ("http://foo.example.com:3000/controller/action",
104+ autolink "http://foo.example.com:3000/controller/action")
105+ , ("http://foo.example.com:3000/controller/action+pack",
106+ autolink "http://foo.example.com:3000/controller/action+pack")
107+ , ("http://business.timesonline.co.uk/article/0,,9065-2473189,00.html",
108+ autolink "http://business.timesonline.co.uk/article/0,,9065-2473189,00.html")
109+ , ("http://www.mail-archive.com/ruby-talk@ruby-lang.org/",
110+ autolink "http://www.mail-archive.com/ruby-talk@ruby-lang.org/")
111+ ]
112+
24113{-
25114p_markdown_round_trip :: Block -> Bool
26115p_markdown_round_trip b = matches d' d''
@@ -64,6 +153,8 @@ tests = [ testGroup "inline code"
64153 "[hi]\n\n[hi]: /there\\.0"
65154 =?> para (link "/there.0" "" "hi")
66155 ]
156+ , testGroup "bare URIs"
157+ (map testBareLink bareLinkTests)
67158 , testGroup "smart punctuation"
68159 [ test markdownSmart "quote before ellipses"
69160 ("'...hi'"