4
4
package user
5
5
6
6
import (
7
+ "context"
8
+ "io"
9
+ "strings"
7
10
"testing"
8
11
9
12
"code.gitea.io/gitea/models/db"
13
+ "code.gitea.io/gitea/models/unittest"
10
14
"code.gitea.io/gitea/modules/setting"
15
+ "code.gitea.io/gitea/modules/storage"
11
16
"code.gitea.io/gitea/modules/test"
12
17
13
18
"github.com/stretchr/testify/assert"
19
+ "github.com/stretchr/testify/require"
14
20
)
15
21
16
22
func TestUserAvatarLink (t * testing.T ) {
@@ -26,3 +32,37 @@ func TestUserAvatarLink(t *testing.T) {
26
32
link = u .AvatarLink (db .DefaultContext )
27
33
assert .Equal (t , "https://localhost/sub-path/avatars/avatar.png" , link )
28
34
}
35
+
36
+ func TestUserAvatarGenerate (t * testing.T ) {
37
+ assert .NoError (t , unittest .PrepareTestDatabase ())
38
+ var err error
39
+ tmpDir := t .TempDir ()
40
+ storage .Avatars , err = storage .NewLocalStorage (context .Background (), & setting.Storage {Path : tmpDir })
41
+ require .NoError (t , err )
42
+
43
+ u := unittest .AssertExistsAndLoadBean (t , & User {ID : 2 })
44
+
45
+ // there was no avatar, generate a new one
46
+ assert .Empty (t , u .Avatar )
47
+ err = GenerateRandomAvatar (db .DefaultContext , u )
48
+ require .NoError (t , err )
49
+ assert .NotEmpty (t , u .Avatar )
50
+
51
+ // make sure the generated one exists
52
+ oldAvatarPath := u .CustomAvatarRelativePath ()
53
+ _ , err = storage .Avatars .Stat (u .CustomAvatarRelativePath ())
54
+ require .NoError (t , err )
55
+ // and try to change its content
56
+ _ , err = storage .Avatars .Save (u .CustomAvatarRelativePath (), strings .NewReader ("abcd" ), 4 )
57
+ require .NoError (t , err )
58
+
59
+ // try to generate again
60
+ err = GenerateRandomAvatar (db .DefaultContext , u )
61
+ require .NoError (t , err )
62
+ assert .Equal (t , oldAvatarPath , u .CustomAvatarRelativePath ())
63
+ f , err := storage .Avatars .Open (u .CustomAvatarRelativePath ())
64
+ require .NoError (t , err )
65
+ defer f .Close ()
66
+ content , _ := io .ReadAll (f )
67
+ assert .Equal (t , "abcd" , string (content ))
68
+ }
0 commit comments