2019-03-27 12:33:00 +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 git
import (
"path/filepath"
2020-12-21 20:27:23 +03:00
"strings"
2019-03-27 12:33:00 +03:00
"testing"
"github.com/stretchr/testify/assert"
)
func TestCommitsCount ( t * testing . T ) {
bareRepo1Path := filepath . Join ( testReposDir , "repo1_bare" )
commitsCount , err := CommitsCount ( bareRepo1Path , "8006ff9adbf0cb94da7dad9e537e53817f9fa5c0" )
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 3 ) , commitsCount )
}
func TestGetFullCommitID ( t * testing . T ) {
bareRepo1Path := filepath . Join ( testReposDir , "repo1_bare" )
id , err := GetFullCommitID ( bareRepo1Path , "8006ff9a" )
assert . NoError ( t , err )
assert . Equal ( t , "8006ff9adbf0cb94da7dad9e537e53817f9fa5c0" , id )
}
func TestGetFullCommitIDError ( t * testing . T ) {
bareRepo1Path := filepath . Join ( testReposDir , "repo1_bare" )
id , err := GetFullCommitID ( bareRepo1Path , "unknown" )
assert . Empty ( t , id )
if assert . Error ( t , err ) {
assert . EqualError ( t , err , "object does not exist [id: unknown, rel_path: ]" )
}
}
2020-12-21 20:27:23 +03:00
func TestCommitFromReader ( t * testing . T ) {
commitString := ` feaf4ba6bc635fec442f46ddd4512416ec43c2c2 commit 1074
tree f1a6cb52b2d16773290cefe49ad0684b50a4f930
parent 37991 dec2c8e592043f47155ce4808d4580f9123
author silverwind < me @ silverwind . io > 1563741793 + 0200
committer silverwind < me @ silverwind . io > 1563741793 + 0200
gpgsig -- -- - BEGIN PGP SIGNATURE -- -- -
` + " " + `
iQIzBAABCAAdFiEEWPb2jX6FS2mqyJRQLmK0HJOGlEMFAl00zmEACgkQLmK0HJOG
lEMDFBAAhQKKqLD1VICygJMEB8t1gBmNLgvziOLfpX4KPWdPtBk3v / QJ7OrfMrVK
xlC4ZZyx6yMm1Q7GzmuWykmZQJ9HMaHJ49KAbh5MMjjV / + OoQw9coIdo8nagRUld
vX8QHzNZ6Agx77xHuDJZgdHKpQK3TrMDsxzoYYMvlqoLJIDXE1Sp7KYNy12nhdRg
R6NXNmW8oMZuxglkmUwayMiPS + N4zNYqv0CXYzlEqCOgq9MJUcAMHt + KpiST + sm6
FWkJ9D + biNPyQ9QKf1AE4BdZia4lHfPYU / C / DEL / a5xQuuop / zMQZoGaIA4p2zGQ
/ maqYxEIM / yRBQpT1jlODKPJrMEgx7SgY2hRU47YZ4fj6350fb6fNBtiiMAfJbjL
S3Gh85E9fm3hJaNSPKAaJFYL1Ya2svuWfgHj677C56UcmYis7fhiiy1aJuYdHnSm
sD53z / f0J + We4VZjY + pidvA9BGZPFVdR3wd3xGs8 / oH6UWaLJAMGkLG6dDb3qDLm
1 LFZwsX8sdD32i1SiWanYQYSYMyFWr0awi4xdoMtYCL7uKBYtwtPyvq3cj4IrJlb
mfeFhT57UbE4qukTDIQ0Y0WM40UYRTakRaDY7ubhXgLgx09Cnp9XTVMsHgT6j9 / i
1 pxsB104XLWjQHTjr1JtiaBQEwFh9r2OKTcpvaLcbNtYpo7CzOs =
= FRsO
-- -- - END PGP SIGNATURE -- -- -
empty commit `
sha := SHA1 { 0xfe , 0xaf , 0x4b , 0xa6 , 0xbc , 0x63 , 0x5f , 0xec , 0x44 , 0x2f , 0x46 , 0xdd , 0xd4 , 0x51 , 0x24 , 0x16 , 0xec , 0x43 , 0xc2 , 0xc2 }
gitRepo , err := OpenRepository ( filepath . Join ( testReposDir , "repo1_bare" ) )
assert . NoError ( t , err )
assert . NotNil ( t , gitRepo )
commitFromReader , err := CommitFromReader ( gitRepo , sha , strings . NewReader ( commitString ) )
assert . NoError ( t , err )
if ! assert . NotNil ( t , commitFromReader ) {
return
}
assert . EqualValues ( t , sha , commitFromReader . ID )
assert . EqualValues ( t , ` -- -- - BEGIN PGP SIGNATURE -- -- -
iQIzBAABCAAdFiEEWPb2jX6FS2mqyJRQLmK0HJOGlEMFAl00zmEACgkQLmK0HJOG
lEMDFBAAhQKKqLD1VICygJMEB8t1gBmNLgvziOLfpX4KPWdPtBk3v / QJ7OrfMrVK
xlC4ZZyx6yMm1Q7GzmuWykmZQJ9HMaHJ49KAbh5MMjjV / + OoQw9coIdo8nagRUld
vX8QHzNZ6Agx77xHuDJZgdHKpQK3TrMDsxzoYYMvlqoLJIDXE1Sp7KYNy12nhdRg
R6NXNmW8oMZuxglkmUwayMiPS + N4zNYqv0CXYzlEqCOgq9MJUcAMHt + KpiST + sm6
FWkJ9D + biNPyQ9QKf1AE4BdZia4lHfPYU / C / DEL / a5xQuuop / zMQZoGaIA4p2zGQ
/ maqYxEIM / yRBQpT1jlODKPJrMEgx7SgY2hRU47YZ4fj6350fb6fNBtiiMAfJbjL
S3Gh85E9fm3hJaNSPKAaJFYL1Ya2svuWfgHj677C56UcmYis7fhiiy1aJuYdHnSm
sD53z / f0J + We4VZjY + pidvA9BGZPFVdR3wd3xGs8 / oH6UWaLJAMGkLG6dDb3qDLm
1 LFZwsX8sdD32i1SiWanYQYSYMyFWr0awi4xdoMtYCL7uKBYtwtPyvq3cj4IrJlb
mfeFhT57UbE4qukTDIQ0Y0WM40UYRTakRaDY7ubhXgLgx09Cnp9XTVMsHgT6j9 / i
1 pxsB104XLWjQHTjr1JtiaBQEwFh9r2OKTcpvaLcbNtYpo7CzOs =
= FRsO
-- -- - END PGP SIGNATURE -- -- -
` , commitFromReader . Signature . Signature )
assert . EqualValues ( t , ` tree f1a6cb52b2d16773290cefe49ad0684b50a4f930
parent 37991 dec2c8e592043f47155ce4808d4580f9123
author silverwind < me @ silverwind . io > 1563741793 + 0200
committer silverwind < me @ silverwind . io > 1563741793 + 0200
empty commit ` , commitFromReader . Signature . Payload )
assert . EqualValues ( t , "silverwind <me@silverwind.io>" , commitFromReader . Author . String ( ) )
commitFromReader2 , err := CommitFromReader ( gitRepo , sha , strings . NewReader ( commitString + "\n\n" ) )
assert . NoError ( t , err )
commitFromReader . CommitMessage += "\n\n"
commitFromReader . Signature . Payload += "\n\n"
assert . EqualValues ( t , commitFromReader , commitFromReader2 )
}