mirror of
https://github.com/yuin/goldmark
synced 2025-03-04 23:04:52 +00:00
Merge pull request #22 from abhinav/no-import-testing
Remove "testing" import from public interface
This commit is contained in:
commit
4a770685c0
12 changed files with 73 additions and 36 deletions
|
|
@ -1,10 +1,12 @@
|
|||
package goldmark
|
||||
package goldmark_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
|
||||
. "github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
|
|
@ -26,9 +28,9 @@ func TestSpec(t *testing.T) {
|
|||
if err := json.Unmarshal(bs, &testCases); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
cases := []MarkdownTestCase{}
|
||||
cases := []testutil.MarkdownTestCase{}
|
||||
for _, c := range testCases {
|
||||
cases = append(cases, MarkdownTestCase{
|
||||
cases = append(cases, testutil.MarkdownTestCase{
|
||||
No: c.Example,
|
||||
Markdown: c.Markdown,
|
||||
Expected: c.HTML,
|
||||
|
|
@ -38,5 +40,5 @@ func TestSpec(t *testing.T) {
|
|||
html.WithXHTML(),
|
||||
html.WithUnsafe(),
|
||||
))
|
||||
DoTestCases(markdown, cases, t)
|
||||
testutil.DoTestCases(markdown, cases, t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestDefinitionList(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestDefinitionList(t *testing.T) {
|
|||
DefinitionList,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/definition_list.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/definition_list.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestFootnote(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestFootnote(t *testing.T) {
|
|||
Footnote,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/footnote.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/footnote.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestLinkify(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestLinkify(t *testing.T) {
|
|||
Linkify,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/linkify.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/linkify.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestStrikethrough(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestStrikethrough(t *testing.T) {
|
|||
Strikethrough,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/strikethrough.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/strikethrough.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestTable(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestTable(t *testing.T) {
|
|||
Table,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/table.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/table.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestTaskList(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestTaskList(t *testing.T) {
|
|||
TaskList,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/tasklist.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/tasklist.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package extension
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
"testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
func TestTypographer(t *testing.T) {
|
||||
|
|
@ -15,5 +17,5 @@ func TestTypographer(t *testing.T) {
|
|||
Typographer,
|
||||
),
|
||||
)
|
||||
goldmark.DoTestCaseFile(markdown, "_test/typographer.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/typographer.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package goldmark
|
||||
package goldmark_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
. "github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/renderer/html"
|
||||
)
|
||||
|
||||
|
|
@ -11,5 +13,5 @@ func TestDefinitionList(t *testing.T) {
|
|||
html.WithXHTML(),
|
||||
html.WithUnsafe(),
|
||||
))
|
||||
DoTestCaseFile(markdown, "_test/extra.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/extra.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package goldmark
|
||||
package goldmark_test
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark/parser"
|
||||
"testing"
|
||||
|
||||
. "github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/testutil"
|
||||
"github.com/yuin/goldmark/parser"
|
||||
)
|
||||
|
||||
func TestAttributeAndAutoHeadingID(t *testing.T) {
|
||||
|
|
@ -12,5 +15,5 @@ func TestAttributeAndAutoHeadingID(t *testing.T) {
|
|||
parser.WithAutoHeadingID(),
|
||||
),
|
||||
)
|
||||
DoTestCaseFile(markdown, "_test/options.txt", t)
|
||||
testutil.DoTestCaseFile(markdown, "_test/options.txt", t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,26 @@
|
|||
package goldmark
|
||||
package testutil
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"github.com/yuin/goldmark/util"
|
||||
"os"
|
||||
"runtime/debug"
|
||||
"strconv"
|
||||
"strings"
|
||||
testing "testing"
|
||||
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/util"
|
||||
)
|
||||
|
||||
// TestingT is a subset of the functionality provided by testing.T.
|
||||
type TestingT interface {
|
||||
Logf(string, ...interface{})
|
||||
Skipf(string, ...interface{})
|
||||
Errorf(string, ...interface{})
|
||||
FailNow()
|
||||
}
|
||||
|
||||
type MarkdownTestCase struct {
|
||||
No int
|
||||
Markdown string
|
||||
|
|
@ -21,7 +30,7 @@ type MarkdownTestCase struct {
|
|||
const attributeSeparator = "//- - - - - - - - -//"
|
||||
const caseSeparator = "//= = = = = = = = = = = = = = = = = = = = = = = =//"
|
||||
|
||||
func DoTestCaseFile(m Markdown, filename string, t *testing.T) {
|
||||
func DoTestCaseFile(m goldmark.Markdown, filename string, t TestingT) {
|
||||
fp, err := os.Open(filename)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
|
@ -77,13 +86,13 @@ func DoTestCaseFile(m Markdown, filename string, t *testing.T) {
|
|||
DoTestCases(m, cases, t)
|
||||
}
|
||||
|
||||
func DoTestCases(m Markdown, cases []MarkdownTestCase, t *testing.T) {
|
||||
func DoTestCases(m goldmark.Markdown, cases []MarkdownTestCase, t TestingT) {
|
||||
for _, testCase := range cases {
|
||||
DoTestCase(m, testCase, t)
|
||||
}
|
||||
}
|
||||
|
||||
func DoTestCase(m Markdown, testCase MarkdownTestCase, t *testing.T) {
|
||||
func DoTestCase(m goldmark.Markdown, testCase MarkdownTestCase, t TestingT) {
|
||||
var ok bool
|
||||
var out bytes.Buffer
|
||||
defer func() {
|
||||
7
testutil/testutil_test.go
Normal file
7
testutil/testutil_test.go
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
package testutil
|
||||
|
||||
import "testing"
|
||||
|
||||
// This will fail to compile if the TestingT interface is changed in a way
|
||||
// that doesn't conform to testing.T.
|
||||
var _ TestingT = (*testing.T)(nil)
|
||||
Loading…
Reference in a new issue