2021-04-17 00:39:21 +03:00
// Copyright 2021 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 integrations
import (
"context"
"fmt"
"net/url"
2021-09-22 08:38:34 +03:00
"os"
2021-04-17 00:39:21 +03:00
"path/filepath"
"testing"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/util"
2021-11-17 15:34:35 +03:00
2021-04-17 00:39:21 +03:00
"github.com/stretchr/testify/assert"
)
func assertFileExist ( t * testing . T , p string ) {
exist , err := util . IsExist ( p )
assert . NoError ( t , err )
assert . True ( t , exist )
}
func assertFileEqual ( t * testing . T , p string , content [ ] byte ) {
2021-09-22 08:38:34 +03:00
bs , err := os . ReadFile ( p )
2021-04-17 00:39:21 +03:00
assert . NoError ( t , err )
assert . EqualValues ( t , content , bs )
}
func TestRepoCloneWiki ( t * testing . T ) {
onGiteaRun ( t , func ( t * testing . T , u * url . URL ) {
defer prepareTestEnv ( t ) ( )
2021-09-22 08:38:34 +03:00
dstPath , err := os . MkdirTemp ( "" , "clone_wiki" )
2021-04-17 00:39:21 +03:00
assert . NoError ( t , err )
r := fmt . Sprintf ( "%suser2/repo1.wiki.git" , u . String ( ) )
u , _ = url . Parse ( r )
u . User = url . UserPassword ( "user2" , userPassword )
t . Run ( "Clone" , func ( t * testing . T ) {
2022-01-25 21:15:58 +03:00
assert . NoError ( t , git . CloneWithArgs ( context . Background ( ) , u . String ( ) , dstPath , git . AllowLFSFiltersArgs ( ) , git . CloneRepoOptions { } ) )
2021-04-17 00:39:21 +03:00
assertFileEqual ( t , filepath . Join ( dstPath , "Home.md" ) , [ ] byte ( "# Home page\n\nThis is the home page!\n" ) )
assertFileExist ( t , filepath . Join ( dstPath , "Page-With-Image.md" ) )
assertFileExist ( t , filepath . Join ( dstPath , "Page-With-Spaced-Name.md" ) )
assertFileExist ( t , filepath . Join ( dstPath , "images" ) )
assertFileExist ( t , filepath . Join ( dstPath , "jpeg.jpg" ) )
} )
} )
}