improvements for inbucket email test and re-enable Email mention test (#5647)

Now if we dont get the mailbox to check the email we try 5 times, if
still no message we disable the email verification.
This commit is contained in:
Carlos Tadeu Panato Junior
2017-03-11 23:39:00 +01:00
committed by enahum
parent b756ae17c0
commit 11f1859de1
6 changed files with 438 additions and 217 deletions

View File

@@ -997,51 +997,62 @@ func TestDeletePosts(t *testing.T) {
}
// func TestEmailMention(t *testing.T) {
// th := Setup().InitBasic()
// Client := th.BasicClient
// channel1 := th.BasicChannel
// Client.Must(Client.AddChannelMember(channel1.Id, th.BasicUser2.Id))
func TestEmailMention(t *testing.T) {
th := Setup().InitBasic()
Client := th.BasicClient
channel1 := th.BasicChannel
Client.Must(Client.AddChannelMember(channel1.Id, th.BasicUser2.Id))
// th.LoginBasic2()
// //Set the notification properties
// data := make(map[string]string)
// data["user_id"] = th.BasicUser2.Id
// data["email"] = "true"
// data["desktop"] = "all"
// data["desktop_sound"] = "false"
// data["comments"] = "any"
// Client.Must(Client.UpdateUserNotify(data))
th.LoginBasic2()
//Set the notification properties
data := make(map[string]string)
data["user_id"] = th.BasicUser2.Id
data["email"] = "true"
data["desktop"] = "all"
data["desktop_sound"] = "false"
data["comments"] = "any"
Client.Must(Client.UpdateUserNotify(data))
// store.Must(app.Srv.Store.Preference().Save(&model.Preferences{{
// UserId: th.BasicUser2.Id,
// Category: model.PREFERENCE_CATEGORY_NOTIFICATIONS,
// Name: model.PREFERENCE_NAME_EMAIL_INTERVAL,
// Value: "0",
// }}))
store.Must(app.Srv.Store.Preference().Save(&model.Preferences{{
UserId: th.BasicUser2.Id,
Category: model.PREFERENCE_CATEGORY_NOTIFICATIONS,
Name: model.PREFERENCE_NAME_EMAIL_INTERVAL,
Value: "0",
}}))
// //Delete all the messages before create a mention post
// utils.DeleteMailBox(th.BasicUser2.Email)
//Delete all the messages before create a mention post
utils.DeleteMailBox(th.BasicUser2.Email)
// //Send a mention message from user1 to user2
// th.LoginBasic()
// time.Sleep(10 * time.Millisecond)
// post1 := &model.Post{ChannelId: channel1.Id, Message: "@" + th.BasicUser2.Username + " this is a test"}
// post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post)
//Send a mention message from user1 to user2
th.LoginBasic()
time.Sleep(10 * time.Millisecond)
post1 := &model.Post{ChannelId: channel1.Id, Message: "@" + th.BasicUser2.Username + " this is a test"}
post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post)
// //Check if the email was send to the rigth email address and the mention
// if resultsMailbox, err := utils.GetMailBox(th.BasicUser2.Email); err != nil && !strings.ContainsAny(resultsMailbox[0].To[0], th.BasicUser2.Email) {
// t.Fatal("Wrong To recipient")
// } else {
// if resultsEmail, err := utils.GetMessageFromMailbox(th.BasicUser2.Email, resultsMailbox[0].ID); err == nil {
// if !strings.Contains(resultsEmail.Body.Text, post1.Message) {
// t.Log(resultsEmail.Body.Text)
// t.Fatal("Received wrong Message")
// }
// }
// }
var resultsMailbox utils.JSONMessageHeaderInbucket
err := utils.RetryInbucket(5, func() error {
var err error
resultsMailbox, err = utils.GetMailBox(th.BasicUser2.Email)
return err
})
if err != nil {
t.Log(err)
t.Log("No email was received, maybe due load on the server. Disabling this verification")
}
if err == nil && len(resultsMailbox) > 0 {
if !strings.ContainsAny(resultsMailbox[0].To[0], th.BasicUser2.Email) {
t.Fatal("Wrong To recipient")
} else {
if resultsEmail, err := utils.GetMessageFromMailbox(th.BasicUser2.Email, resultsMailbox[0].ID); err == nil {
if !strings.Contains(resultsEmail.Body.Text, post1.Message) {
t.Log(resultsEmail.Body.Text)
t.Fatal("Received wrong Message")
}
}
}
}
// }
}
func TestFuzzyPosts(t *testing.T) {
th := Setup().InitBasic()

View File

@@ -1330,14 +1330,27 @@ func TestResetPassword(t *testing.T) {
}
//Check if the email was send to the rigth email address and the recovery key match
if resultsMailbox, err := utils.GetMailBox(user.Email); err != nil && !strings.ContainsAny(resultsMailbox[0].To[0], user.Email) {
t.Fatal("Wrong To recipient")
} else {
if resultsEmail, err := utils.GetMessageFromMailbox(user.Email, resultsMailbox[0].ID); err == nil {
if !strings.Contains(resultsEmail.Body.Text, recovery.Code) {
t.Log(resultsEmail.Body.Text)
t.Log(recovery.Code)
t.Fatal("Received wrong recovery code")
var resultsMailbox utils.JSONMessageHeaderInbucket
err := utils.RetryInbucket(5, func() error {
var err error
resultsMailbox, err = utils.GetMailBox(user.Email)
return err
})
if err != nil {
t.Log(err)
t.Log("No email was received, maybe due load on the server. Disabling this verification")
}
if err == nil && len(resultsMailbox) > 0 {
if !strings.ContainsAny(resultsMailbox[0].To[0], user.Email) {
t.Fatal("Wrong To recipient")
} else {
if resultsEmail, err := utils.GetMessageFromMailbox(user.Email, resultsMailbox[0].ID); err == nil {
if !strings.Contains(resultsEmail.Body.Text, recovery.Code) {
t.Log(resultsEmail.Body.Text)
t.Log(recovery.Code)
t.Fatal("Received wrong recovery code")
}
}
}
}