1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-11-26 09:09:36 -05:00
forgejo/modules/markup/mdstripper/mdstripper_test.go
guillep2k 15809d81f7 Rewrite reference processing code in preparation for opening/closing from comment references (#8261)
* Add a markdown stripper for mentions and xrefs

* Improve comments

* Small code simplification

* Move reference code to modules/references

* Fix typo

* Make MarkdownStripper return [][]byte

* Implement preliminary keywords parsing

* Add FIXME comment

* Fix comment

* make fmt

* Fix permissions check

* Fix text assumptions

* Fix imports

* Fix lint, fmt

* Fix unused import

* Add missing export comment

* Bypass revive on implemented interface

* Move mdstripper into its own package

* Support alphanumeric patterns

* Refactor FindAllMentions

* Move mentions test to references

* Parse mentions from reference package

* Refactor code to implement renderizable references

* Fix typo

* Move patterns and tests to the references package

* Fix nil reference

* Preliminary rendering attempt of closing keywords

* Normalize names, comments, general tidy-up

* Add CSS style for action keywords

* Fix permission for admin and owner

* Fix golangci-lint

* Fix golangci-lint
2019-10-13 23:29:10 +01:00

71 lines
1.3 KiB
Go

// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
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**.
This: should coallesce.
` + "```" + `
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",
".",
"This: should coallesce.",
"Bullet 1",
"Bullet 2",
"A HIDDEN",
"IN THIS LINE.",
},
[]string{
"link",
}},
}
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)
}
}