diff options
author | techknowlogick <techknowlogick@users.noreply.github.com> | 2018-07-06 21:54:30 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-06 21:54:30 -0400 |
commit | ab55ca7ebd7d30dad894c35e6facd0b1822fb899 (patch) | |
tree | 979f05088d7d0362cb7c95f097ff3931b3dc2e91 /integrations | |
parent | 1675fc4301d4bff339a0831348fca76a9e394999 (diff) | |
download | gitea-ab55ca7ebd7d30dad894c35e6facd0b1822fb899.tar.gz gitea-ab55ca7ebd7d30dad894c35e6facd0b1822fb899.zip |
Add ability to delete a token (#4235)
Fix #4234
Diffstat (limited to 'integrations')
-rw-r--r-- | integrations/api_token_test.go | 50 | ||||
-rw-r--r-- | integrations/integration_test.go | 5 |
2 files changed, 55 insertions, 0 deletions
diff --git a/integrations/api_token_test.go b/integrations/api_token_test.go new file mode 100644 index 0000000000..2520f356b7 --- /dev/null +++ b/integrations/api_token_test.go @@ -0,0 +1,50 @@ +// Copyright 2018 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 integrations + +import ( + "net/http" + "testing" + + "code.gitea.io/gitea/models" + api "code.gitea.io/sdk/gitea" +) + +// TestAPICreateAndDeleteToken tests that token that was just created can be deleted +func TestAPICreateAndDeleteToken(t *testing.T) { + prepareTestEnv(t) + user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User) + + req := NewRequestWithJSON(t, "POST", "/api/v1/users/user1/tokens", map[string]string{ + "name": "test-key-1", + }) + req = AddBasicAuthHeader(req, user.Name) + resp := MakeRequest(t, req, http.StatusCreated) + + var newAccessToken api.AccessToken + DecodeJSON(t, resp, &newAccessToken) + models.AssertExistsAndLoadBean(t, &models.AccessToken{ + ID: newAccessToken.ID, + Name: newAccessToken.Name, + Sha1: newAccessToken.Sha1, + UID: user.ID, + }) + + req = NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", newAccessToken.ID) + req = AddBasicAuthHeader(req, user.Name) + MakeRequest(t, req, http.StatusNoContent) + + models.AssertNotExistsBean(t, &models.AccessToken{ID: newAccessToken.ID}) +} + +// TestAPIDeleteMissingToken ensures that error is thrown when token not found +func TestAPIDeleteMissingToken(t *testing.T) { + prepareTestEnv(t) + user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User) + + req := NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", models.NonexistentID) + req = AddBasicAuthHeader(req, user.Name) + MakeRequest(t, req, http.StatusNotFound) +} diff --git a/integrations/integration_test.go b/integrations/integration_test.go index 664290cc9d..a1e66ffdfd 100644 --- a/integrations/integration_test.go +++ b/integrations/integration_test.go @@ -256,6 +256,11 @@ func NewRequestWithBody(t testing.TB, method, urlStr string, body io.Reader) *ht return request } +func AddBasicAuthHeader(request *http.Request, username string) *http.Request { + request.SetBasicAuth(username, userPassword) + return request +} + const NoExpectedStatus = -1 func MakeRequest(t testing.TB, req *http.Request, expectedStatus int) *httptest.ResponseRecorder { |