2019-10-14 01:29:10 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-10-14 01:29:10 +03:00
package mdstripper
import (
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestMarkdownStripper ( t * testing . T ) {
type testItem struct {
markdown string
expectedText [ ] string
expectedLinks [ ] string
}
list := [ ] testItem {
{
`
# # This is a title
This is [ one ] ( link ) to paradise .
This * * is emphasized * * .
2021-07-08 14:38:13 +03:00
This : should coalesce .
2019-10-14 01:29:10 +03:00
` + " ` ` ` " + `
This is a code block .
This should not appear in the output at all .
` + " ` ` ` " + `
* Bullet 1
* Bullet 2
A HIDDEN ` + " ` " + `GHOST` + " ` " + ` IN THIS LINE .
` ,
[ ] string {
"This is a title" ,
"This is" ,
"to paradise." ,
"This" ,
"is emphasized" ,
"." ,
2021-07-08 14:38:13 +03:00
"This: should coalesce." ,
2019-10-14 01:29:10 +03:00
"Bullet 1" ,
"Bullet 2" ,
"A HIDDEN" ,
"IN THIS LINE." ,
} ,
[ ] string {
"link" ,
2022-01-20 20:46:10 +03:00
} ,
} ,
2019-12-31 04:53:28 +03:00
{
"Simply closes: #29 yes" ,
[ ] string {
"Simply closes: #29 yes" ,
} ,
[ ] string { } ,
} ,
{
"Simply closes: !29 yes" ,
[ ] string {
"Simply closes: !29 yes" ,
} ,
[ ] string { } ,
} ,
2019-10-14 01:29:10 +03:00
}
for _ , test := range list {
text , links := StripMarkdown ( [ ] byte ( test . markdown ) )
rawlines := strings . Split ( text , "\n" )
lines := make ( [ ] string , 0 , len ( rawlines ) )
for _ , line := range rawlines {
line := strings . TrimSpace ( line )
if line != "" {
lines = append ( lines , line )
}
}
assert . EqualValues ( t , test . expectedText , lines )
assert . EqualValues ( t , test . expectedLinks , links )
}
}