package posting
import (
"testing"
"github.com/gochan-org/gochan/pkg/config"
"github.com/stretchr/testify/assert"
)
const (
bbcodeMsgPreRender = `[b]Bold[/b]
[i]Italics[/i]
[u]Underline[/u]
[url=https://gochan.org]URL[/url]
[code]Code[/code]`
bbcodeMsgExpected = `Bold
` +
`Italics
` +
`Underline
` +
`URL
` +
`
Code
`
linkTestPreRender = `gochan.org: https://gochan.org
gochan.org with path: https://gochan.org/a
gochan.org with bad link: https://gochan.org/a">:)`
linkTestExpected = `gochan.org: https://gochan.org
` +
`gochan.org with path: https://gochan.org/a
` +
`gochan.org with bad link: https://gochan.org/a">:)</a>`
doubleTagPreRender = `[url=https://gochan.org]Gochan[/url] [url]https://gochan.org[/url]`
doubleTagExpected = `Gochan https://gochan.org`
)
func TestBBCode(t *testing.T) {
config.SetDefaults()
var testFmtr MessageFormatter
testFmtr.Init()
rendered := testFmtr.Compile(bbcodeMsgPreRender, "")
assert.Equal(t, bbcodeMsgExpected, rendered, "Testing BBcode rendering")
}
func TestLinks(t *testing.T) {
config.SetDefaults()
var testFmtr MessageFormatter
testFmtr.Init()
rendered := urlRE.ReplaceAllStringFunc(linkTestPreRender, wrapLinksInURL)
rendered = testFmtr.Compile(rendered, "")
assert.Equal(t, linkTestExpected, rendered)
}
func TestNoDoubleTags(t *testing.T) {
config.SetDefaults()
msgfmtr = new(MessageFormatter)
msgfmtr.Init()
rendered := FormatMessage(doubleTagPreRender, "")
assert.EqualValues(t, doubleTagExpected, rendered)
}