@ -19,6 +19,8 @@ func TestOAuth2Application(t *testing.T) {
defer prepareTestEnv ( t ) ( )
testAPICreateOAuth2Application ( t )
testAPIListOAuth2Applications ( t )
testAPIGetOAuth2Application ( t )
testAPIUpdateOAuth2Application ( t )
testAPIDeleteOAuth2Application ( t )
}
@ -83,9 +85,6 @@ func testAPIDeleteOAuth2Application(t *testing.T) {
oldApp := models . AssertExistsAndLoadBean ( t , & models . OAuth2Application {
UID : user . ID ,
Name : "test-app-1" ,
RedirectURIs : [ ] string {
"http://www.google.com" ,
} ,
} ) . ( * models . OAuth2Application )
urlStr := fmt . Sprintf ( "/api/v1/user/applications/oauth2/%d?token=%s" , oldApp . ID , token )
@ -94,3 +93,67 @@ func testAPIDeleteOAuth2Application(t *testing.T) {
models . AssertNotExistsBean ( t , & models . OAuth2Application { UID : oldApp . UID , Name : oldApp . Name } )
}
func testAPIGetOAuth2Application ( t * testing . T ) {
user := models . AssertExistsAndLoadBean ( t , & models . User { ID : 2 } ) . ( * models . User )
session := loginUser ( t , user . Name )
token := getTokenForLoggedInUser ( t , session )
existApp := models . AssertExistsAndLoadBean ( t , & models . OAuth2Application {
UID : user . ID ,
Name : "test-app-1" ,
RedirectURIs : [ ] string {
"http://www.google.com" ,
} ,
} ) . ( * models . OAuth2Application )
urlStr := fmt . Sprintf ( "/api/v1/user/applications/oauth2/%d?token=%s" , existApp . ID , token )
req := NewRequest ( t , "GET" , urlStr )
resp := session . MakeRequest ( t , req , http . StatusOK )
var app api . OAuth2Application
DecodeJSON ( t , resp , & app )
expectedApp := app
assert . EqualValues ( t , existApp . Name , expectedApp . Name )
assert . EqualValues ( t , existApp . ClientID , expectedApp . ClientID )
assert . Len ( t , expectedApp . ClientID , 36 )
assert . Empty ( t , expectedApp . ClientSecret )
assert . EqualValues ( t , len ( expectedApp . RedirectURIs ) , 1 )
assert . EqualValues ( t , existApp . RedirectURIs [ 0 ] , expectedApp . RedirectURIs [ 0 ] )
models . AssertExistsAndLoadBean ( t , & models . OAuth2Application { ID : expectedApp . ID , Name : expectedApp . Name } )
}
func testAPIUpdateOAuth2Application ( t * testing . T ) {
user := models . AssertExistsAndLoadBean ( t , & models . User { ID : 2 } ) . ( * models . User )
existApp := models . AssertExistsAndLoadBean ( t , & models . OAuth2Application {
UID : user . ID ,
Name : "test-app-1" ,
RedirectURIs : [ ] string {
"http://www.google.com" ,
} ,
} ) . ( * models . OAuth2Application )
appBody := api . CreateOAuth2ApplicationOptions {
Name : "test-app-1" ,
RedirectURIs : [ ] string {
"http://www.google.com/" ,
"http://www.github.com/" ,
} ,
}
urlStr := fmt . Sprintf ( "/api/v1/user/applications/oauth2/%d" , existApp . ID )
req := NewRequestWithJSON ( t , "PATCH" , urlStr , & appBody )
req = AddBasicAuthHeader ( req , user . Name )
resp := MakeRequest ( t , req , http . StatusOK )
var app api . OAuth2Application
DecodeJSON ( t , resp , & app )
expectedApp := app
assert . EqualValues ( t , len ( expectedApp . RedirectURIs ) , 2 )
assert . EqualValues ( t , expectedApp . RedirectURIs [ 0 ] , appBody . RedirectURIs [ 0 ] )
assert . EqualValues ( t , expectedApp . RedirectURIs [ 1 ] , appBody . RedirectURIs [ 1 ] )
models . AssertExistsAndLoadBean ( t , & models . OAuth2Application { ID : expectedApp . ID , Name : expectedApp . Name } )
}