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