2024-01-05 12:44:33 +03:00
// Copyright 2024 The Forgejo Authors c/o Codeberg e.V.. All rights reserved.
// SPDX-License-Identifier: MIT
package integration
import (
"net/http"
"net/url"
"strings"
"testing"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
files_service "code.gitea.io/gitea/services/repository/files"
"code.gitea.io/gitea/tests"
"github.com/stretchr/testify/assert"
)
func TestUserProfile ( t * testing . T ) {
onGiteaRun ( t , func ( t * testing . T , u * url . URL ) {
checkReadme := func ( t * testing . T , title , readmeFilename string , expectedCount int ) {
t . Run ( title , func ( t * testing . T ) {
defer tests . PrintCurrentTest ( t ) ( )
2024-01-12 13:50:29 +03:00
// Prepare the test repository
user2 := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : 2 } )
var ops [ ] * files_service . ChangeRepoFile
op := "create"
if readmeFilename != "README.md" {
ops = append ( ops , & files_service . ChangeRepoFile {
Operation : "delete" ,
TreePath : "README.md" ,
} )
} else {
op = "update"
}
if readmeFilename != "" {
ops = append ( ops , & files_service . ChangeRepoFile {
Operation : op ,
TreePath : readmeFilename ,
ContentReader : strings . NewReader ( "# Hi!\n" ) ,
} )
}
_ , _ , f := CreateDeclarativeRepo ( t , user2 , ".profile" , nil , nil , ops )
defer f ( )
// Perform the test
2024-01-05 12:44:33 +03:00
req := NewRequest ( t , "GET" , "/user2" )
resp := MakeRequest ( t , req , http . StatusOK )
doc := NewHTMLParser ( t , resp . Body )
readmeCount := doc . Find ( "#readme_profile" ) . Length ( )
assert . Equal ( t , expectedCount , readmeCount )
} )
}
checkReadme ( t , "No readme" , "" , 0 )
checkReadme ( t , "README.md" , "README.md" , 1 )
checkReadme ( t , "readme.md" , "readme.md" , 1 )
checkReadme ( t , "ReadMe.mD" , "ReadMe.mD" , 1 )
checkReadme ( t , "readme.org does not render" , "README.org" , 0 )
} )
}