Add some unit tests
Этот коммит содержится в:
29
api/user.go
29
api/user.go
@@ -122,6 +122,11 @@ func createUser(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
user.EmailVerified = true
|
user.EmailVerified = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !CheckUserDomain(user, utils.Cfg.TeamSettings.RestrictCreationToDomains) {
|
||||||
|
c.Err = model.NewAppError("createUser", "The email you provided does not belong to an accepted domain. Please contact your administrator or sign up with a different email.", "")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ruser, err := CreateUser(team, user)
|
ruser, err := CreateUser(team, user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err = err
|
c.Err = err
|
||||||
@@ -136,19 +141,25 @@ func createUser(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CheckUserDomain(user *model.User, domains string) bool {
|
||||||
|
domainArray := strings.Fields(strings.TrimSpace(strings.ToLower(strings.Replace(strings.Replace(domains, "@", " ", -1), ",", " ", -1))))
|
||||||
|
|
||||||
|
matched := false
|
||||||
|
for _, d := range domainArray {
|
||||||
|
if strings.HasSuffix(user.Email, "@"+d) {
|
||||||
|
matched = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return matched
|
||||||
|
}
|
||||||
|
|
||||||
func IsVerifyHashRequired(user *model.User, team *model.Team, hash string) bool {
|
func IsVerifyHashRequired(user *model.User, team *model.Team, hash string) bool {
|
||||||
shouldVerifyHash := true
|
shouldVerifyHash := true
|
||||||
|
|
||||||
if team.Type == model.TEAM_INVITE && len(team.AllowedDomains) > 0 && len(hash) == 0 && user != nil {
|
if team.Type == model.TEAM_INVITE && len(team.AllowedDomains) > 0 && len(hash) == 0 && user != nil {
|
||||||
domains := strings.Fields(strings.TrimSpace(strings.ToLower(strings.Replace(strings.Replace(team.AllowedDomains, "@", " ", -1), ",", " ", -1))))
|
matched := CheckUserDomain(user, team.AllowedDomains)
|
||||||
|
|
||||||
matched := false
|
|
||||||
for _, d := range domains {
|
|
||||||
if strings.HasSuffix(user.Email, "@"+d) {
|
|
||||||
matched = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if matched {
|
if matched {
|
||||||
shouldVerifyHash = false
|
shouldVerifyHash = false
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||||
// See License.txt for license information.
|
// See License.txt for license information.
|
||||||
|
|
||||||
package model
|
package model
|
||||||
|
|||||||
34
model/license_test.go
Обычный файл
34
model/license_test.go
Обычный файл
@@ -0,0 +1,34 @@
|
|||||||
|
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLicenseExpired(t *testing.T) {
|
||||||
|
l1 := License{}
|
||||||
|
l1.ExpiresAt = GetMillis() - 1000
|
||||||
|
if !l1.IsExpired() {
|
||||||
|
t.Fatal("license should be expired")
|
||||||
|
}
|
||||||
|
|
||||||
|
l1.ExpiresAt = GetMillis() + 10000
|
||||||
|
if l1.IsExpired() {
|
||||||
|
t.Fatal("license should not be expired")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLicenseStarted(t *testing.T) {
|
||||||
|
l1 := License{}
|
||||||
|
l1.StartsAt = GetMillis() - 1000
|
||||||
|
if !l1.IsStarted() {
|
||||||
|
t.Fatal("license should be started")
|
||||||
|
}
|
||||||
|
|
||||||
|
l1.StartsAt = GetMillis() + 10000
|
||||||
|
if l1.IsStarted() {
|
||||||
|
t.Fatal("license should not be started")
|
||||||
|
}
|
||||||
|
}
|
||||||
50
utils/license_test.go
Обычный файл
50
utils/license_test.go
Обычный файл
@@ -0,0 +1,50 @@
|
|||||||
|
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See License.txt for license information.
|
||||||
|
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/mattermost/platform/model"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSetLicense(t *testing.T) {
|
||||||
|
l1 := &model.License{}
|
||||||
|
l1.Features = &model.Features{}
|
||||||
|
l1.Customer = &model.Customer{}
|
||||||
|
l1.StartsAt = model.GetMillis() - 1000
|
||||||
|
l1.ExpiresAt = model.GetMillis() + 100000
|
||||||
|
if ok := SetLicense(l1); !ok {
|
||||||
|
t.Fatal("license should have worked")
|
||||||
|
}
|
||||||
|
|
||||||
|
l2 := &model.License{}
|
||||||
|
l2.Features = &model.Features{}
|
||||||
|
l2.Customer = &model.Customer{}
|
||||||
|
l2.StartsAt = model.GetMillis() - 1000
|
||||||
|
l2.ExpiresAt = model.GetMillis() - 100
|
||||||
|
if ok := SetLicense(l2); ok {
|
||||||
|
t.Fatal("license should have failed")
|
||||||
|
}
|
||||||
|
|
||||||
|
l3 := &model.License{}
|
||||||
|
l3.Features = &model.Features{}
|
||||||
|
l3.Customer = &model.Customer{}
|
||||||
|
l3.StartsAt = model.GetMillis() + 10000
|
||||||
|
l3.ExpiresAt = model.GetMillis() + 100000
|
||||||
|
if ok := SetLicense(l3); ok {
|
||||||
|
t.Fatal("license should have failed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestValidateLicense(t *testing.T) {
|
||||||
|
b1 := []byte("junk")
|
||||||
|
if ok, _ := ValidateLicense(b1); ok {
|
||||||
|
t.Fatal("should have failed - bad license")
|
||||||
|
}
|
||||||
|
|
||||||
|
b2 := []byte("junkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunkjunk")
|
||||||
|
if ok, _ := ValidateLicense(b2); ok {
|
||||||
|
t.Fatal("should have failed - bad license")
|
||||||
|
}
|
||||||
|
}
|
||||||
Ссылка в новой задаче
Block a user