mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	Use single shared random string generation function (#15741)
* Use single shared random string generation function - Replace 3 functions that do the same with 1 shared one - Use crypto/rand over math/rand for a stronger RNG - Output only alphanumerical for URL compatibilty Fixes: #15536 * use const string method * Update modules/avatar/avatar.go Co-authored-by: a1012112796 <1012112796@qq.com> Co-authored-by: a1012112796 <1012112796@qq.com>
This commit is contained in:
		| @@ -5,6 +5,7 @@ | ||||
| package util | ||||
|  | ||||
| import ( | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| 	"testing" | ||||
|  | ||||
| @@ -118,3 +119,40 @@ func Test_NormalizeEOL(t *testing.T) { | ||||
|  | ||||
| 	assert.Equal(t, []byte("mix\nand\nmatch\n."), NormalizeEOL([]byte("mix\r\nand\rmatch\n."))) | ||||
| } | ||||
|  | ||||
| func Test_RandomInt(t *testing.T) { | ||||
| 	int, err := RandomInt(255) | ||||
| 	assert.True(t, int >= 0) | ||||
| 	assert.True(t, int <= 255) | ||||
| 	assert.NoError(t, err) | ||||
| } | ||||
|  | ||||
| func Test_RandomString(t *testing.T) { | ||||
| 	str1, err := RandomString(32) | ||||
| 	assert.NoError(t, err) | ||||
| 	matches, err := regexp.MatchString(`^[a-zA-Z0-9]{32}$`, str1) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, matches) | ||||
|  | ||||
| 	str2, err := RandomString(32) | ||||
| 	assert.NoError(t, err) | ||||
| 	matches, err = regexp.MatchString(`^[a-zA-Z0-9]{32}$`, str1) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, matches) | ||||
|  | ||||
| 	assert.NotEqual(t, str1, str2) | ||||
|  | ||||
| 	str3, err := RandomString(256) | ||||
| 	assert.NoError(t, err) | ||||
| 	matches, err = regexp.MatchString(`^[a-zA-Z0-9]{256}$`, str3) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, matches) | ||||
|  | ||||
| 	str4, err := RandomString(256) | ||||
| 	assert.NoError(t, err) | ||||
| 	matches, err = regexp.MatchString(`^[a-zA-Z0-9]{256}$`, str4) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, matches) | ||||
|  | ||||
| 	assert.NotEqual(t, str3, str4) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user