test: Add user mail testing. (#833)

release/v1.15
Bo-Yi Wu 2017-02-04 09:20:56 +08:00 committed by Lunny Xiao
parent 3e0525b47d
commit b6da658553
3 changed files with 220 additions and 0 deletions

View File

@ -0,0 +1,35 @@
-
id: 1
uid: 1
email: user11@example.com
is_activated: false
-
id: 2
uid: 1
email: user12@example.com
is_activated: false
-
id: 3
uid: 2
email: user2@example.com
is_activated: true
-
id: 4
uid: 2
email: user21@example.com
is_activated: false
-
id: 5
uid: 9999999
email: user9999999@example.com
is_activated: true
-
id: 6
uid: 10
email: user101@example.com
is_activated: true

View File

@ -132,3 +132,19 @@
num_repos: 0 num_repos: 0
num_members: 1 num_members: 1
is_active: false is_active: false
-
id: 10
lower_name: user10
name: user10
full_name: User Ten
email: user10@example.com
passwd: password
type: 0 # user
salt: salt
is_admin: false
avatar: avatar10
avatar_email: user10@example.com
num_repos: 0
num_members: 1
is_active: true

169
models/user_mail_test.go Normal file
View File

@ -0,0 +1,169 @@
// 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 models
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGetEmailAddresses(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
emails, _ := GetEmailAddresses(int64(1))
assert.Len(t, emails, 3)
assert.False(t, emails[0].IsPrimary)
assert.True(t, emails[2].IsActivated)
assert.True(t, emails[2].IsPrimary)
emails, _ = GetEmailAddresses(int64(2))
assert.Len(t, emails, 2)
assert.True(t, emails[0].IsPrimary)
assert.True(t, emails[0].IsActivated)
}
func TestIsEmailUsed(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
isExist, _ := IsEmailUsed("")
assert.True(t, isExist)
isExist, _ = IsEmailUsed("user11@example.com")
assert.True(t, isExist)
isExist, _ = IsEmailUsed("user1234567890@example.com")
assert.False(t, isExist)
}
func TestAddEmailAddress(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
assert.NoError(t, AddEmailAddress(&EmailAddress{
Email: "user1234567890@example.com",
IsPrimary: true,
IsActivated: true,
}))
// ErrEmailAlreadyUsed
err := AddEmailAddress(&EmailAddress{
Email: "user1234567890@example.com",
})
assert.Error(t, err)
assert.True(t, IsErrEmailAlreadyUsed(err))
}
func TestAddEmailAddresses(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
// insert multiple email address
emails := make([]*EmailAddress, 2)
emails[0] = &EmailAddress{
Email: "user1234@example.com",
IsActivated: true,
}
emails[1] = &EmailAddress{
Email: "user5678@example.com",
IsActivated: true,
}
assert.NoError(t, AddEmailAddresses(emails))
// ErrEmailAlreadyUsed
err := AddEmailAddresses(emails)
assert.Error(t, err)
assert.True(t, IsErrEmailAlreadyUsed(err))
}
func TestDeleteEmailAddress(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
assert.NoError(t, DeleteEmailAddress(&EmailAddress{
UID: int64(1),
ID: int64(1),
Email: "user11@example.com",
}))
assert.NoError(t, DeleteEmailAddress(&EmailAddress{
UID: int64(1),
Email: "user12@example.com",
}))
// Email address does not exist
err := DeleteEmailAddress(&EmailAddress{
UID: int64(1),
Email: "user1234567890@example.com",
})
assert.Error(t, err)
}
func TestDeleteEmailAddresses(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
// delete multiple email address
emails := make([]*EmailAddress, 2)
emails[0] = &EmailAddress{
UID: int64(2),
ID: int64(3),
Email: "user2@example.com",
}
emails[1] = &EmailAddress{
UID: int64(2),
Email: "user21@example.com",
}
assert.NoError(t, DeleteEmailAddresses(emails))
// ErrEmailAlreadyUsed
err := DeleteEmailAddresses(emails)
assert.Error(t, err)
}
func TestMakeEmailPrimary(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
email := &EmailAddress{
Email: "user567890@example.com",
}
err := MakeEmailPrimary(email)
assert.Error(t, err)
assert.Equal(t, ErrEmailNotExist.Error(), err.Error())
email = &EmailAddress{
Email: "user11@example.com",
}
err = MakeEmailPrimary(email)
assert.Error(t, err)
assert.Equal(t, ErrEmailNotActivated.Error(), err.Error())
email = &EmailAddress{
Email: "user9999999@example.com",
}
err = MakeEmailPrimary(email)
assert.Error(t, err)
assert.True(t, IsErrUserNotExist(err))
email = &EmailAddress{
Email: "user101@example.com",
}
err = MakeEmailPrimary(email)
assert.NoError(t, err)
user, _ := GetUserByID(int64(10))
assert.Equal(t, "user101@example.com", user.Email)
}
func TestActivate(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
email := &EmailAddress{
ID: int64(1),
UID: int64(1),
Email: "user11@example.com",
}
assert.NoError(t, email.Activate())
emails, _ := GetEmailAddresses(int64(1))
assert.Len(t, emails, 3)
assert.True(t, emails[0].IsActivated)
assert.True(t, emails[2].IsActivated)
assert.True(t, emails[2].IsPrimary)
}