2017-09-21 08:20:14 +03:00
// Copyright 2017 The Gitea 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
import (
"strings"
"testing"
2021-04-20 01:25:08 +03:00
"code.gitea.io/gitea/modules/markup"
2017-09-21 08:20:14 +03:00
"code.gitea.io/gitea/modules/setting"
2018-02-20 15:50:42 +03:00
"code.gitea.io/gitea/modules/util"
2017-09-21 08:20:14 +03:00
"github.com/stretchr/testify/assert"
)
2022-01-20 20:46:10 +03:00
const (
AppURL = "http://localhost:3000/"
Repo = "gogits/gogs"
AppSubURL = AppURL + Repo + "/"
)
2017-09-21 08:20:14 +03:00
func TestRender_StandardLinks ( t * testing . T ) {
setting . AppURL = AppURL
setting . AppSubURL = AppSubURL
test := func ( input , expected string ) {
2021-04-20 01:25:08 +03:00
buffer , err := RenderString ( & markup . RenderContext {
URLPrefix : setting . AppSubURL ,
} , input )
assert . NoError ( t , err )
2017-09-21 08:20:14 +03:00
assert . Equal ( t , strings . TrimSpace ( expected ) , strings . TrimSpace ( buffer ) )
}
2020-09-05 18:45:10 +03:00
googleRendered := "<p><a href=\"https://google.com/\" title=\"https://google.com/\">https://google.com/</a></p>"
2017-09-21 08:20:14 +03:00
test ( "[[https://google.com/]]" , googleRendered )
2018-02-20 15:50:42 +03:00
lnk := util . URLJoin ( AppSubURL , "WikiPage" )
2017-09-21 08:20:14 +03:00
test ( "[[WikiPage][WikiPage]]" ,
2020-09-05 18:45:10 +03:00
"<p><a href=\"" + lnk + "\" title=\"WikiPage\">WikiPage</a></p>" )
2017-09-21 08:20:14 +03:00
}
func TestRender_Images ( t * testing . T ) {
setting . AppURL = AppURL
setting . AppSubURL = AppSubURL
test := func ( input , expected string ) {
2021-04-20 01:25:08 +03:00
buffer , err := RenderString ( & markup . RenderContext {
URLPrefix : setting . AppSubURL ,
} , input )
assert . NoError ( t , err )
2017-09-21 08:20:14 +03:00
assert . Equal ( t , strings . TrimSpace ( expected ) , strings . TrimSpace ( buffer ) )
}
url := "../../.images/src/02/train.jpg"
2018-02-20 15:50:42 +03:00
result := util . URLJoin ( AppSubURL , url )
2017-09-21 08:20:14 +03:00
2019-10-31 04:06:25 +03:00
test ( "[[file:" + url + "]]" ,
2020-09-05 18:45:10 +03:00
"<p><img src=\"" + result + "\" alt=\"" + result + "\" title=\"" + result + "\" /></p>" )
2017-09-21 08:20:14 +03:00
}
2021-09-24 16:29:32 +03:00
func TestRender_Source ( t * testing . T ) {
setting . AppURL = AppURL
setting . AppSubURL = AppSubURL
test := func ( input , expected string ) {
buffer , err := RenderString ( & markup . RenderContext {
URLPrefix : setting . AppSubURL ,
} , 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
` , ` < div class = "src src-go" >
2022-01-20 12:59:15 +03:00
< pre > < code class = "chroma language-go" > < span class = "line" > < span class = "cl" > < span class = "c1" > // HelloWorld prints "Hello World"
< / span > < / span > < / span > < span class = "line" > < span class = "cl" > < span class = "c1" > < / span > < span class = "kd" > func < / span > < span class = "nf" > HelloWorld < / span > < span class = "p" > ( ) < / span > < span class = "p" > { < / span >
< / span > < / span > < span class = "line" > < span class = "cl" > < span class = "nx" > fmt < / span > < span class = "p" > . < / span > < span class = "nf" > Println < / span > < span class = "p" > ( < / span > < span class = "s" > & # 34 ; Hello World & # 34 ; < / span > < span class = "p" > ) < / span >
< / span > < / span > < span class = "line" > < span class = "cl" > < span class = "p" > } < / span > < / span > < / span > < / code > < / pre >
2021-09-24 16:29:32 +03:00
< / div > ` )
}