2018-07-07 04:54:30 +03:00
// 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"
2022-08-25 05:31:57 +03:00
auth_model "code.gitea.io/gitea/models/auth"
2021-11-16 11:53:21 +03:00
"code.gitea.io/gitea/models/unittest"
2021-11-24 12:49:20 +03:00
user_model "code.gitea.io/gitea/models/user"
2019-05-11 13:21:34 +03:00
api "code.gitea.io/gitea/modules/structs"
2018-07-07 04:54:30 +03:00
)
// TestAPICreateAndDeleteToken tests that token that was just created can be deleted
func TestAPICreateAndDeleteToken ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2022-08-16 05:22:25 +03:00
user := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : 1 } )
2018-07-07 04:54:30 +03:00
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 )
2022-08-25 05:31:57 +03:00
unittest . AssertExistsAndLoadBean ( t , & auth_model . AccessToken {
2019-05-04 18:45:34 +03:00
ID : newAccessToken . ID ,
Name : newAccessToken . Name ,
Token : newAccessToken . Token ,
UID : user . ID ,
2018-07-07 04:54:30 +03:00
} )
req = NewRequestf ( t , "DELETE" , "/api/v1/users/user1/tokens/%d" , newAccessToken . ID )
req = AddBasicAuthHeader ( req , user . Name )
MakeRequest ( t , req , http . StatusNoContent )
2022-08-25 05:31:57 +03:00
unittest . AssertNotExistsBean ( t , & auth_model . AccessToken { ID : newAccessToken . ID } )
2020-08-28 11:09:33 +03:00
req = NewRequestWithJSON ( t , "POST" , "/api/v1/users/user1/tokens" , map [ string ] string {
"name" : "test-key-2" ,
} )
req = AddBasicAuthHeader ( req , user . Name )
resp = MakeRequest ( t , req , http . StatusCreated )
DecodeJSON ( t , resp , & newAccessToken )
req = NewRequestf ( t , "DELETE" , "/api/v1/users/user1/tokens/%s" , newAccessToken . Name )
req = AddBasicAuthHeader ( req , user . Name )
MakeRequest ( t , req , http . StatusNoContent )
2022-08-25 05:31:57 +03:00
unittest . AssertNotExistsBean ( t , & auth_model . AccessToken { ID : newAccessToken . ID } )
2018-07-07 04:54:30 +03:00
}
// TestAPIDeleteMissingToken ensures that error is thrown when token not found
func TestAPIDeleteMissingToken ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2022-08-16 05:22:25 +03:00
user := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : 1 } )
2018-07-07 04:54:30 +03:00
2021-11-16 11:53:21 +03:00
req := NewRequestf ( t , "DELETE" , "/api/v1/users/user1/tokens/%d" , unittest . NonexistentID )
2018-07-07 04:54:30 +03:00
req = AddBasicAuthHeader ( req , user . Name )
MakeRequest ( t , req , http . StatusNotFound )
}