| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // Blackfriday Markdown Processor
- // Available at http://github.com/russross/blackfriday
- //
- // Copyright © 2011 Russ Ross <[email protected]>.
- // Distributed under the Simplified BSD License.
- // See README.md for details.
- //
- //
- // Unit tests for full document parsing and rendering
- //
- package blackfriday
- import (
- "testing"
- )
- func runMarkdown(input string) string {
- return string(MarkdownCommon([]byte(input)))
- }
- func doTests(t *testing.T, tests []string) {
- // catch and report panics
- var candidate string
- defer func() {
- if err := recover(); err != nil {
- t.Errorf("\npanic while processing [%#v]: %s\n", candidate, err)
- }
- }()
- for i := 0; i+1 < len(tests); i += 2 {
- input := tests[i]
- candidate = input
- expected := tests[i+1]
- actual := runMarkdown(candidate)
- if actual != expected {
- t.Errorf("\nInput [%#v]\nExpected[%#v]\nActual [%#v]",
- candidate, expected, actual)
- }
- // now test every substring to stress test bounds checking
- if !testing.Short() {
- for start := 0; start < len(input); start++ {
- for end := start + 1; end <= len(input); end++ {
- candidate = input[start:end]
- _ = runMarkdown(candidate)
- }
- }
- }
- }
- }
- func TestDocument(t *testing.T) {
- var tests = []string{
- // Empty document.
- "",
- "",
- " ",
- "",
- // This shouldn't panic.
- // https://github.com/russross/blackfriday/issues/172
- "[]:<",
- "<p>[]:<</p>\n",
- // This shouldn't panic.
- // https://github.com/russross/blackfriday/issues/173
- " [",
- "<p>[</p>\n",
- }
- doTests(t, tests)
- }
|