2019-10-06 21:01:23 +02:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2019-10-09 20:03:16 +02:00
|
|
|
func doonezerotest(t *testing.T, input, output string) {
|
2019-10-06 21:01:23 +02:00
|
|
|
result := markitzero(input)
|
|
|
|
if result != output {
|
|
|
|
t.Errorf("\nexpected:\n%s\noutput:\n%s", output, result)
|
|
|
|
}
|
|
|
|
}
|
2019-10-06 21:14:18 +02:00
|
|
|
|
2019-10-09 20:03:16 +02:00
|
|
|
func TestBasictest(t *testing.T) {
|
2019-10-06 21:14:18 +02:00
|
|
|
input := `link to https://example.com/ with **bold** text`
|
|
|
|
output := `link to <a class="mention u-url" href="https://example.com/">https://example.com/</a> with <b>bold</b> text`
|
2019-10-09 20:03:16 +02:00
|
|
|
doonezerotest(t, input, output)
|
2019-10-06 21:14:18 +02:00
|
|
|
}
|
|
|
|
|
2019-10-09 20:03:16 +02:00
|
|
|
func TestLinebreak1(t *testing.T) {
|
2019-10-06 21:14:18 +02:00
|
|
|
input := "hello\n> a quote\na comment"
|
|
|
|
output := "hello<blockquote>a quote</blockquote><p>a comment"
|
2019-10-09 20:03:16 +02:00
|
|
|
doonezerotest(t, input, output)
|
2019-10-06 21:14:18 +02:00
|
|
|
}
|
|
|
|
|
2019-10-09 20:03:16 +02:00
|
|
|
func TestLinebreak2(t *testing.T) {
|
2019-10-06 21:14:18 +02:00
|
|
|
input := "hello\n\n> a quote\n\na comment"
|
|
|
|
output := "hello<br><blockquote>a quote</blockquote><p>a comment"
|
2019-10-09 20:03:16 +02:00
|
|
|
doonezerotest(t, input, output)
|
2019-10-06 21:14:18 +02:00
|
|
|
}
|
|
|
|
|
2019-10-09 20:03:16 +02:00
|
|
|
func TestLinebreak3(t *testing.T) {
|
2019-10-06 21:14:18 +02:00
|
|
|
input := "hello\n\n```\nfunc(s string)\n```\n\ndoes it go?"
|
|
|
|
output := "hello<br><pre><code>func(s string)</code></pre><p>does it go?"
|
2019-10-09 20:03:16 +02:00
|
|
|
doonezerotest(t, input, output)
|
2019-10-06 21:14:18 +02:00
|
|
|
}
|
|
|
|
|
2019-10-20 23:18:48 +02:00
|
|
|
func TestCodeStyles(t *testing.T) {
|
|
|
|
input := "hello\n\n```go\nfunc(s string)\n```\n\ndoes it go?"
|
|
|
|
output := "hello<br><pre><code><span class=kw>func</span><span class=op>(</span>s <span class=tp>string</span><span class=op>)</span></code></pre><p>does it go?"
|
|
|
|
doonezerotest(t, input, output)
|
|
|
|
}
|
|
|
|
|
2019-10-09 20:03:16 +02:00
|
|
|
func TestSimplelink(t *testing.T) {
|
|
|
|
input := "This is a [link](https://example.com)."
|
|
|
|
output := `This is a <a class="mention u-url" href="https://example.com">link</a>.`
|
|
|
|
doonezerotest(t, input, output)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSimplelink2(t *testing.T) {
|
|
|
|
input := "See (http://example.com) for examples."
|
|
|
|
output := `See (<a class="mention u-url" href="http://example.com">http://example.com</a>) for examples.`
|
|
|
|
doonezerotest(t, input, output)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWikilink(t *testing.T) {
|
|
|
|
input := "I watched [Hackers](https://en.wikipedia.org/wiki/Hackers_(film))"
|
|
|
|
output := `I watched <a class="mention u-url" href="https://en.wikipedia.org/wiki/Hackers_(film)">Hackers</a>`
|
|
|
|
doonezerotest(t, input, output)
|
2019-10-06 21:14:18 +02:00
|
|
|
}
|
2019-10-22 05:43:15 +02:00
|
|
|
|
|
|
|
func TestQuotedlink(t *testing.T) {
|
|
|
|
input := `quoted "https://example.com/link" here`
|
|
|
|
output := `quoted "<a class="mention u-url" href="https://example.com/link">https://example.com/link</a>" here`
|
|
|
|
doonezerotest(t, input, output)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestHonklink(t *testing.T) {
|
|
|
|
input := `https://en.wikipedia.org/wiki/Honk!`
|
|
|
|
output := `<a class="mention u-url" href="https://en.wikipedia.org/wiki/Honk!">https://en.wikipedia.org/wiki/Honk!</a>`
|
|
|
|
doonezerotest(t, input, output)
|
|
|
|
}
|
|
|
|
|
2019-10-22 06:16:28 +02:00
|
|
|
func TestImagelink(t *testing.T) {
|
|
|
|
input := `an image <img alt="caption" src="https://example.com/wherever"> and linked [<img src="there">](example.com)`
|
|
|
|
output := `an image <img alt="caption" src="https://example.com/wherever"> and linked <a class="mention u-url" href="example.com"><img src="there"></a>`
|
|
|
|
doonezerotest(t, input, output)
|
|
|
|
}
|
|
|
|
|