// Copyright 2016 The Gogs 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 markup_test
import (
"bytes"
"strings"
"testing"
"github.com/russross/blackfriday"
"github.com/stretchr/testify/assert"
"gogs.io/gogs/internal/conf"
. "gogs.io/gogs/internal/markup"
)
func Test_IsMarkdownFile(t *testing.T) {
// TODO: Refactor to accept a list of extensions
conf.Markdown.FileExtensions = strings.Split(".md,.markdown,.mdown,.mkd", ",")
tests := []struct {
ext string
expVal bool
}{
{ext: ".md", expVal: true},
{ext: ".markdown", expVal: true},
{ext: ".mdown", expVal: true},
{ext: ".mkd", expVal: true},
{ext: ".org", expVal: false},
{ext: ".rst", expVal: false},
{ext: ".asciidoc", expVal: false},
}
for _, test := range tests {
assert.Equal(t, test.expVal, IsMarkdownFile(test.ext))
}
}
func Test_Markdown(t *testing.T) {
// TODO: Refactor to accept URL
conf.Server.ExternalURL = "http://localhost:3000/"
htmlFlags := 0
htmlFlags |= blackfriday.HTML_SKIP_STYLE
htmlFlags |= blackfriday.HTML_OMIT_CONTENTS
renderer := &MarkdownRenderer{
Renderer: blackfriday.HtmlRenderer(htmlFlags, "", ""),
}
tests := []struct {
input string
expVal string
}{
// Issue URL
{input: "http://localhost:3000/user/repo/issues/3333", expVal: "#3333"},
{input: "http://1111/2222/ssss-issues/3333?param=blah&blahh=333", expVal: "http://1111/2222/ssss-issues/3333?param=blah&blahh=333"},
{input: "http://test.com/issues/33333", expVal: "http://test.com/issues/33333"},
{input: "http://test.com/issues/3", expVal: "http://test.com/issues/3"},
{input: "http://issues/333", expVal: "http://issues/333"},
{input: "https://issues/333", expVal: "https://issues/333"},
{input: "http://tissues/0", expVal: "http://tissues/0"},
// Commit URL
{input: "http://localhost:3000/user/project/commit/d8a994ef243349f321568f9e36d5c3f444b99cae", expVal: " d8a994ef24
"},
{input: "http://localhost:3000/user/project/commit/d8a994ef243349f321568f9e36d5c3f444b99cae#diff-2", expVal: " d8a994ef24
"},
{input: "https://external-link.gogs.io/gogs/gogs/commit/d8a994ef243349f321568f9e36d5c3f444b99cae#diff-2", expVal: "https://external-link.gogs.io/gogs/gogs/commit/d8a994ef243349f321568f9e36d5c3f444b99cae#diff-2"},
{input: "https://commit/d8a994ef243349f321568f9e36d5c3f444b99cae", expVal: "https://commit/d8a994ef243349f321568f9e36d5c3f444b99cae"},
}
for _, test := range tests {
t.Run("", func(t *testing.T) {
buf := new(bytes.Buffer)
renderer.AutoLink(buf, []byte(test.input), blackfriday.LINK_TYPE_NORMAL)
assert.Equal(t, test.expVal, buf.String())
})
}
}