// Copyright 2017 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package markup import ( "strings" "testing" "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/markup" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" "github.com/stretchr/testify/assert" ) const ( AppURL = "http://localhost:3000/" Repo = "gogits/gogs" AppSubURL = AppURL + Repo + "/" ) func TestRender_StandardLinks(t *testing.T) { setting.AppURL = AppURL setting.AppSubURL = AppSubURL test := func(input, expected string) { buffer, err := RenderString(&markup.RenderContext{ Ctx: git.DefaultContext, Links: markup.Links{ Base: setting.AppSubURL, }, }, input) assert.NoError(t, err) assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer)) } // No BranchPath or TreePath set. test("[[file:comfy][comfy]]", `
`) test("[[https://google.com/]]", ``) lnk := util.URLJoin(AppSubURL, "WikiPage") test("[[WikiPage][WikiPage]]", "") } func TestRender_BaseLinks(t *testing.T) { setting.AppURL = AppURL setting.AppSubURL = AppSubURL testBranch := func(input, expected string) { buffer, err := RenderString(&markup.RenderContext{ Ctx: git.DefaultContext, Links: markup.Links{ Base: setting.AppSubURL, BranchPath: "branch/main", }, }, input) assert.NoError(t, err) assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer)) } testBranchTree := func(input, expected string) { buffer, err := RenderString(&markup.RenderContext{ Ctx: git.DefaultContext, Links: markup.Links{ Base: setting.AppSubURL, BranchPath: "branch/main", TreePath: "deep/nested/folder", }, }, input) assert.NoError(t, err) assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer)) } testBranch("[[file:comfy][comfy]]", ``) testBranchTree("[[file:comfy][comfy]]", ``) testBranch("[[file:./src][./src/]]", ``) testBranchTree("[[file:./src][./src/]]", ``) } func TestRender_Media(t *testing.T) { setting.AppURL = AppURL setting.AppSubURL = AppSubURL test := func(input, expected string) { buffer, err := RenderString(&markup.RenderContext{ Ctx: git.DefaultContext, Links: markup.Links{ Base: setting.AppSubURL, }, }, input) assert.NoError(t, err) assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer)) } url := "../../.images/src/02/train.jpg" result := util.URLJoin(AppSubURL, url) test("[[file:"+url+"]]", "") // With description. test("[[https://example.com][https://example.com/example.svg]]", ``) test("[[https://example.com][https://example.com/example.mp4]]", ``) // Without description. test("[[https://example.com/example.svg]]", ``) test("[[https://example.com/example.mp4]]", ``) // Text description. test("[[file:./lem-post.png][file:./lem-post.png]]", ``) test("[[file:./lem-post.mp4][file:./lem-post.mp4]]", ``) } func TestRender_Source(t *testing.T) { setting.AppURL = AppURL setting.AppSubURL = AppSubURL test := func(input, expected string) { buffer, err := RenderString(&markup.RenderContext{ Ctx: git.DefaultContext, }, input) assert.NoError(t, err) assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer)) } test(`#+begin_src go // HelloWorld prints "Hello World" func HelloWorld() { fmt.Println("Hello World") } #+end_src `, `// HelloWorld prints "Hello World"
func HelloWorld() {
fmt.Println("Hello World")
}