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