Skip to content

Commit b6da658

Browse files
appleboylunny
authored andcommitted
test: Add user mail testing. (#833)
1 parent 3e0525b commit b6da658

File tree

3 files changed

+220
-0
lines changed

3 files changed

+220
-0
lines changed

models/fixtures/email_address.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
-
2+
id: 1
3+
uid: 1
4+
5+
is_activated: false
6+
7+
-
8+
id: 2
9+
uid: 1
10+
11+
is_activated: false
12+
13+
-
14+
id: 3
15+
uid: 2
16+
17+
is_activated: true
18+
19+
-
20+
id: 4
21+
uid: 2
22+
23+
is_activated: false
24+
25+
-
26+
id: 5
27+
uid: 9999999
28+
29+
is_activated: true
30+
31+
-
32+
id: 6
33+
uid: 10
34+
35+
is_activated: true

models/fixtures/user.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,19 @@
132132
num_repos: 0
133133
num_members: 1
134134
is_active: false
135+
136+
-
137+
id: 10
138+
lower_name: user10
139+
name: user10
140+
full_name: User Ten
141+
142+
passwd: password
143+
type: 0 # user
144+
salt: salt
145+
is_admin: false
146+
avatar: avatar10
147+
avatar_email: [email protected]
148+
num_repos: 0
149+
num_members: 1
150+
is_active: true

models/user_mail_test.go

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
// Copyright 2017 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package models
6+
7+
import (
8+
"testing"
9+
10+
"github.com/stretchr/testify/assert"
11+
)
12+
13+
func TestGetEmailAddresses(t *testing.T) {
14+
assert.NoError(t, PrepareTestDatabase())
15+
16+
emails, _ := GetEmailAddresses(int64(1))
17+
assert.Len(t, emails, 3)
18+
assert.False(t, emails[0].IsPrimary)
19+
assert.True(t, emails[2].IsActivated)
20+
assert.True(t, emails[2].IsPrimary)
21+
22+
emails, _ = GetEmailAddresses(int64(2))
23+
assert.Len(t, emails, 2)
24+
assert.True(t, emails[0].IsPrimary)
25+
assert.True(t, emails[0].IsActivated)
26+
}
27+
28+
func TestIsEmailUsed(t *testing.T) {
29+
assert.NoError(t, PrepareTestDatabase())
30+
31+
isExist, _ := IsEmailUsed("")
32+
assert.True(t, isExist)
33+
isExist, _ = IsEmailUsed("[email protected]")
34+
assert.True(t, isExist)
35+
isExist, _ = IsEmailUsed("[email protected]")
36+
assert.False(t, isExist)
37+
}
38+
39+
func TestAddEmailAddress(t *testing.T) {
40+
assert.NoError(t, PrepareTestDatabase())
41+
42+
assert.NoError(t, AddEmailAddress(&EmailAddress{
43+
44+
IsPrimary: true,
45+
IsActivated: true,
46+
}))
47+
48+
// ErrEmailAlreadyUsed
49+
err := AddEmailAddress(&EmailAddress{
50+
51+
})
52+
assert.Error(t, err)
53+
assert.True(t, IsErrEmailAlreadyUsed(err))
54+
}
55+
56+
func TestAddEmailAddresses(t *testing.T) {
57+
assert.NoError(t, PrepareTestDatabase())
58+
59+
// insert multiple email address
60+
emails := make([]*EmailAddress, 2)
61+
emails[0] = &EmailAddress{
62+
63+
IsActivated: true,
64+
}
65+
emails[1] = &EmailAddress{
66+
67+
IsActivated: true,
68+
}
69+
assert.NoError(t, AddEmailAddresses(emails))
70+
71+
// ErrEmailAlreadyUsed
72+
err := AddEmailAddresses(emails)
73+
assert.Error(t, err)
74+
assert.True(t, IsErrEmailAlreadyUsed(err))
75+
}
76+
77+
func TestDeleteEmailAddress(t *testing.T) {
78+
assert.NoError(t, PrepareTestDatabase())
79+
80+
assert.NoError(t, DeleteEmailAddress(&EmailAddress{
81+
UID: int64(1),
82+
ID: int64(1),
83+
84+
}))
85+
86+
assert.NoError(t, DeleteEmailAddress(&EmailAddress{
87+
UID: int64(1),
88+
89+
}))
90+
91+
// Email address does not exist
92+
err := DeleteEmailAddress(&EmailAddress{
93+
UID: int64(1),
94+
95+
})
96+
assert.Error(t, err)
97+
}
98+
99+
func TestDeleteEmailAddresses(t *testing.T) {
100+
assert.NoError(t, PrepareTestDatabase())
101+
102+
// delete multiple email address
103+
emails := make([]*EmailAddress, 2)
104+
emails[0] = &EmailAddress{
105+
UID: int64(2),
106+
ID: int64(3),
107+
108+
}
109+
emails[1] = &EmailAddress{
110+
UID: int64(2),
111+
112+
}
113+
assert.NoError(t, DeleteEmailAddresses(emails))
114+
115+
// ErrEmailAlreadyUsed
116+
err := DeleteEmailAddresses(emails)
117+
assert.Error(t, err)
118+
}
119+
120+
func TestMakeEmailPrimary(t *testing.T) {
121+
assert.NoError(t, PrepareTestDatabase())
122+
123+
email := &EmailAddress{
124+
125+
}
126+
err := MakeEmailPrimary(email)
127+
assert.Error(t, err)
128+
assert.Equal(t, ErrEmailNotExist.Error(), err.Error())
129+
130+
email = &EmailAddress{
131+
132+
}
133+
err = MakeEmailPrimary(email)
134+
assert.Error(t, err)
135+
assert.Equal(t, ErrEmailNotActivated.Error(), err.Error())
136+
137+
email = &EmailAddress{
138+
139+
}
140+
err = MakeEmailPrimary(email)
141+
assert.Error(t, err)
142+
assert.True(t, IsErrUserNotExist(err))
143+
144+
email = &EmailAddress{
145+
146+
}
147+
err = MakeEmailPrimary(email)
148+
assert.NoError(t, err)
149+
150+
user, _ := GetUserByID(int64(10))
151+
assert.Equal(t, "[email protected]", user.Email)
152+
}
153+
154+
func TestActivate(t *testing.T) {
155+
assert.NoError(t, PrepareTestDatabase())
156+
157+
email := &EmailAddress{
158+
ID: int64(1),
159+
UID: int64(1),
160+
161+
}
162+
assert.NoError(t, email.Activate())
163+
164+
emails, _ := GetEmailAddresses(int64(1))
165+
assert.Len(t, emails, 3)
166+
assert.True(t, emails[0].IsActivated)
167+
assert.True(t, emails[2].IsActivated)
168+
assert.True(t, emails[2].IsPrimary)
169+
}

0 commit comments

Comments
 (0)