mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 08:21:11 +00:00 
			
		
		
		
	Replace #28849. Thanks to @yp05327 for the looking into the problem. Fix #28840 The old behavior of newSignatureFromCommitline is not right. The new parseSignatureFromCommitLine: 1. never fails 2. only accept one format (if there is any other, it could be easily added) And add some tests. (cherry picked from commit a24e1da7e9e38fc5f5c84c083d122c0cc3da4b74)
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			909 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			909 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2019 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package git
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
)
 | 
						|
 | 
						|
func TestParseSignatureFromCommitLine(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		line string
 | 
						|
		want *Signature
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			line: "a b <c@d.com> 12345 +0100",
 | 
						|
			want: &Signature{
 | 
						|
				Name:  "a b",
 | 
						|
				Email: "c@d.com",
 | 
						|
				When:  time.Unix(12345, 0).In(time.FixedZone("", 3600)),
 | 
						|
			},
 | 
						|
		},
 | 
						|
		{
 | 
						|
			line: "bad line",
 | 
						|
			want: &Signature{Name: "bad line"},
 | 
						|
		},
 | 
						|
		{
 | 
						|
			line: "bad < line",
 | 
						|
			want: &Signature{Name: "bad < line"},
 | 
						|
		},
 | 
						|
		{
 | 
						|
			line: "bad > line",
 | 
						|
			want: &Signature{Name: "bad > line"},
 | 
						|
		},
 | 
						|
		{
 | 
						|
			line: "bad-line <name@example.com>",
 | 
						|
			want: &Signature{Name: "bad-line <name@example.com>"},
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, test := range tests {
 | 
						|
		got := parseSignatureFromCommitLine(test.line)
 | 
						|
		assert.EqualValues(t, test.want, got)
 | 
						|
	}
 | 
						|
}
 |