2019-05-08 22:17:32 +03:00
// Copyright 2019 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
package integrations
import (
2020-09-18 00:33:23 +03:00
"fmt"
2019-05-08 22:17:32 +03:00
"net/http"
"testing"
2020-09-18 00:33:23 +03:00
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
2019-05-11 13:21:34 +03:00
api "code.gitea.io/gitea/modules/structs"
2019-05-08 22:17:32 +03:00
"github.com/stretchr/testify/assert"
)
type SearchResults struct {
OK bool ` json:"ok" `
Data [ ] * api . User ` json:"data" `
}
func TestAPIUserSearchLoggedIn ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2019-05-08 22:17:32 +03:00
adminUsername := "user1"
session := loginUser ( t , adminUsername )
token := getTokenForLoggedInUser ( t , session )
query := "user2"
req := NewRequestf ( t , "GET" , "/api/v1/users/search?token=%s&q=%s" , token , query )
resp := session . MakeRequest ( t , req , http . StatusOK )
var results SearchResults
DecodeJSON ( t , resp , & results )
assert . NotEmpty ( t , results . Data )
for _ , user := range results . Data {
assert . Contains ( t , user . UserName , query )
assert . NotEmpty ( t , user . Email )
}
}
func TestAPIUserSearchNotLoggedIn ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2019-05-08 22:17:32 +03:00
query := "user2"
req := NewRequestf ( t , "GET" , "/api/v1/users/search?q=%s" , query )
resp := MakeRequest ( t , req , http . StatusOK )
var results SearchResults
DecodeJSON ( t , resp , & results )
assert . NotEmpty ( t , results . Data )
2020-09-18 00:33:23 +03:00
var modelUser * models . User
2019-05-08 22:17:32 +03:00
for _ , user := range results . Data {
assert . Contains ( t , user . UserName , query )
2020-09-18 00:33:23 +03:00
modelUser = models . AssertExistsAndLoadBean ( t , & models . User { ID : user . ID } ) . ( * models . User )
if modelUser . KeepEmailPrivate {
assert . EqualValues ( t , fmt . Sprintf ( "%s@%s" , modelUser . LowerName , setting . Service . NoReplyAddress ) , user . Email )
} else {
assert . EqualValues ( t , modelUser . Email , user . Email )
}
2019-05-08 22:17:32 +03:00
}
}