diff options
author | Ruzette Tanyag <ruzette@users.noreply.github.com> | 2017-02-08 05:00:16 -0500 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-02-08 02:00:16 -0800 |
commit | 0162d8ad08815b9b833fc651c7e185eab48cbbb2 (patch) | |
tree | 384c0032d766ad4a017a8a232590709134df8462 /api4/user_test.go | |
parent | 5462f0119edb788428f90fc61c8651e4a8cd9ad1 (diff) | |
download | chat-0162d8ad08815b9b833fc651c7e185eab48cbbb2.tar.gz chat-0162d8ad08815b9b833fc651c7e185eab48cbbb2.tar.bz2 chat-0162d8ad08815b9b833fc651c7e185eab48cbbb2.zip |
Implement GET `/users/username/{username}` endpoint for APIv4 (#5310)
* added get user by username endpoint
* added get user by username unit test and driver
* changed username length to 22 characters max
* changed Params to UserName to Username
* reorganized get user by username and get user by email formatting in model/client4
Diffstat (limited to 'api4/user_test.go')
-rw-r--r-- | api4/user_test.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/api4/user_test.go b/api4/user_test.go index 37f251c6d..82c7f921d 100644 --- a/api4/user_test.go +++ b/api4/user_test.go @@ -133,6 +133,70 @@ func TestGetUser(t *testing.T) { } } +func TestGetUserByUsername(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + user := th.BasicUser + + ruser, resp := Client.GetUserByUsername(user.Username, "") + CheckNoError(t, resp) + CheckUserSanitization(t, ruser) + + if ruser.Email != user.Email { + t.Fatal("emails did not match") + } + + ruser, resp = Client.GetUserByUsername(user.Username, resp.Etag) + CheckEtag(t, ruser, resp) + + _, resp = Client.GetUserByUsername(GenerateTestUsername(), "") + CheckNotFoundStatus(t, resp) + + _, resp = Client.GetUserByUsername(model.NewRandomString(25), "") + CheckBadRequestStatus(t, resp) + + // Check against privacy config settings + emailPrivacy := utils.Cfg.PrivacySettings.ShowEmailAddress + namePrivacy := utils.Cfg.PrivacySettings.ShowFullName + defer func() { + utils.Cfg.PrivacySettings.ShowEmailAddress = emailPrivacy + utils.Cfg.PrivacySettings.ShowFullName = namePrivacy + }() + utils.Cfg.PrivacySettings.ShowEmailAddress = false + utils.Cfg.PrivacySettings.ShowFullName = false + + ruser, resp = Client.GetUserByUsername(user.Username, "") + CheckNoError(t, resp) + + if ruser.Email != "" { + t.Fatal("email should be blank") + } + if ruser.FirstName != "" { + t.Fatal("first name should be blank") + } + if ruser.LastName != "" { + t.Fatal("last name should be blank") + } + + Client.Logout() + _, resp = Client.GetUserByUsername(user.Username, "") + CheckUnauthorizedStatus(t, resp) + + // System admins should ignore privacy settings + ruser, resp = th.SystemAdminClient.GetUserByUsername(user.Username, resp.Etag) + if ruser.Email == "" { + t.Fatal("email should not be blank") + } + if ruser.FirstName == "" { + t.Fatal("first name should not be blank") + } + if ruser.LastName == "" { + t.Fatal("last name should not be blank") + } +} + func TestGetUserByEmail(t *testing.T) { th := Setup().InitBasic().InitSystemAdmin() defer TearDown() |