Browse Source

test: Add user mail testing. (#833)

tags/v1.21.12.1
Bo-Yi Wu Lunny Xiao 8 years ago
parent
commit
b6da658553
3 changed files with 220 additions and 0 deletions
  1. +35
    -0
      models/fixtures/email_address.yml
  2. +16
    -0
      models/fixtures/user.yml
  3. +169
    -0
      models/user_mail_test.go

+ 35
- 0
models/fixtures/email_address.yml 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

+ 16
- 0
models/fixtures/user.yml View File

@@ -132,3 +132,19 @@
num_repos: 0
num_members: 1
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
- 0
models/user_mail_test.go 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)
}

Loading…
Cancel
Save