code.gitea.io/gitea@v1.22.3/tests/integration/api_user_info_test.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package integration 5 6 import ( 7 "fmt" 8 "net/http" 9 "testing" 10 11 auth_model "code.gitea.io/gitea/models/auth" 12 "code.gitea.io/gitea/models/unittest" 13 user_model "code.gitea.io/gitea/models/user" 14 api "code.gitea.io/gitea/modules/structs" 15 "code.gitea.io/gitea/tests" 16 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func TestAPIUserInfo(t *testing.T) { 21 defer tests.PrepareTestEnv(t)() 22 23 user := "user1" 24 user2 := "user31" 25 26 org3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "org3"}) 27 28 session := loginUser(t, user) 29 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser) 30 31 t.Run("GetInfo", func(t *testing.T) { 32 defer tests.PrintCurrentTest(t)() 33 34 req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s", user2)). 35 AddTokenAuth(token) 36 resp := MakeRequest(t, req, http.StatusOK) 37 38 var u api.User 39 DecodeJSON(t, resp, &u) 40 assert.Equal(t, user2, u.UserName) 41 42 req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s", user2)) 43 MakeRequest(t, req, http.StatusNotFound) 44 45 // test if the placaholder Mail is returned if a User is not logged in 46 req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s", org3.Name)) 47 resp = MakeRequest(t, req, http.StatusOK) 48 DecodeJSON(t, resp, &u) 49 assert.Equal(t, org3.GetPlaceholderEmail(), u.Email) 50 51 // Test if the correct Mail is returned if a User is logged in 52 req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s", org3.Name)). 53 AddTokenAuth(token) 54 resp = MakeRequest(t, req, http.StatusOK) 55 DecodeJSON(t, resp, &u) 56 assert.Equal(t, org3.GetEmail(), u.Email) 57 }) 58 59 t.Run("GetAuthenticatedUser", func(t *testing.T) { 60 defer tests.PrintCurrentTest(t)() 61 62 req := NewRequest(t, "GET", "/api/v1/user"). 63 AddTokenAuth(token) 64 resp := MakeRequest(t, req, http.StatusOK) 65 66 var u api.User 67 DecodeJSON(t, resp, &u) 68 assert.Equal(t, user, u.UserName) 69 }) 70 }