2019-11-30 09:54:47 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-11-30 09:54:47 +03:00
2022-06-06 11:01:49 +03:00
package repository
2019-11-30 09:54:47 +03:00
import (
"testing"
"github.com/stretchr/testify/assert"
)
var giteaTemplate = [ ] byte ( `
# Header
# All . go files
* * . go
# All text files in / text /
text / * . txt
# All files in modules folders
* * / modules / *
` )
func TestGiteaTemplate ( t * testing . T ) {
gt := GiteaTemplate { Content : giteaTemplate }
2021-06-07 08:27:09 +03:00
assert . Len ( t , gt . Globs ( ) , 3 )
2019-11-30 09:54:47 +03:00
tt := [ ] struct {
Path string
Match bool
} {
{ Path : "main.go" , Match : true } ,
{ Path : "a/b/c/d/e.go" , Match : true } ,
{ Path : "main.txt" , Match : false } ,
{ Path : "a/b.txt" , Match : false } ,
{ Path : "text/a.txt" , Match : true } ,
{ Path : "text/b.txt" , Match : true } ,
{ Path : "text/c.json" , Match : false } ,
{ Path : "a/b/c/modules/README.md" , Match : true } ,
{ Path : "a/b/c/modules/d/README.md" , Match : false } ,
}
for _ , tc := range tt {
t . Run ( tc . Path , func ( t * testing . T ) {
match := false
for _ , g := range gt . Globs ( ) {
if g . Match ( tc . Path ) {
match = true
break
}
}
assert . Equal ( t , tc . Match , match )
} )
}
}
2023-06-21 00:14:47 +03:00
func TestFileNameSanitize ( t * testing . T ) {
assert . Equal ( t , "test_CON" , fileNameSanitize ( "test_CON" ) )
assert . Equal ( t , "test CON" , fileNameSanitize ( "test CON " ) )
assert . Equal ( t , "__traverse__" , fileNameSanitize ( "../traverse/.." ) )
assert . Equal ( t , "http___localhost_3003_user_test.git" , fileNameSanitize ( "http://localhost:3003/user/test.git" ) )
assert . Equal ( t , "_" , fileNameSanitize ( "CON" ) )
assert . Equal ( t , "_" , fileNameSanitize ( "con" ) )
assert . Equal ( t , "_" , fileNameSanitize ( "\u0000" ) )
assert . Equal ( t , "目标" , fileNameSanitize ( "目标" ) )
}