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) }