本文整理汇总了Golang中github.com/yantonov/yandex-disk-restapi-go/src/oauth.OAuthAuthenticator类的典型用法代码示例。如果您正苦于以下问题:Golang OAuthAuthenticator类的具体用法?Golang OAuthAuthenticator怎么用?Golang OAuthAuthenticator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了OAuthAuthenticator类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Test_OAuthServerRespondsWithBadJson
func Test_OAuthServerRespondsWithBadJson(t *testing.T) {
var credentials = oauth.ClientCredentials{}
var auth = oauth.OAuthAuthenticator{
RequestClientGenerator: func(r *http.Request) *http.Client {
return NewStubResponseClient(`bad json`, http.StatusOK).HttpClient
},
}
f := auth.HandlerFunc(credentials,
func(auth *oauth.OAuthAuthorizationResponse,
w http.ResponseWriter,
r *http.Request) {
t.Error("should return error when server returned error")
},
func(err error,
w http.ResponseWriter,
r *http.Request) {
if err == nil {
t.Error("error should not be nil")
}
if _, ok := err.(*oauth.OAuthErrorResponse); ok {
t.Error("invalid error")
}
})
req, _ := http.NewRequest("GET", "", nil)
f(httptest.NewRecorder(), req)
}
示例2: Test_UseDefaultHttpClient_OAuthServerDoesNotProvideCode
func Test_UseDefaultHttpClient_OAuthServerDoesNotProvideCode(t *testing.T) {
var credentials = oauth.ClientCredentials{}
var auth = oauth.OAuthAuthenticator{
RequestClientGenerator: func(r *http.Request) *http.Client {
return nil
},
}
f := auth.HandlerFunc(credentials,
func(auth *oauth.OAuthAuthorizationResponse,
w http.ResponseWriter,
r *http.Request) {
t.Error("should handle request failure")
},
func(err error,
w http.ResponseWriter,
r *http.Request) {
if err == nil {
t.Error("error should not be nil")
}
if err != oauth.OAuthInvalidCodeErr {
t.Errorf("invalid error, got %v", err)
}
})
req, _ := http.NewRequest("GET", "", nil)
f(httptest.NewRecorder(), req)
}
示例3: Test_OAuthServerRespondsWithBadRequest
func Test_OAuthServerRespondsWithBadRequest(t *testing.T) {
var credentials = oauth.ClientCredentials{}
var auth = oauth.OAuthAuthenticator{
RequestClientGenerator: func(r *http.Request) *http.Client {
return NewStubResponseClient(`{"error":"custom_code","error_description":"custom_description"}`,
http.StatusBadRequest).HttpClient
},
}
f := auth.HandlerFunc(credentials,
func(auth *oauth.OAuthAuthorizationResponse,
w http.ResponseWriter,
r *http.Request) {
t.Error("should return error")
},
func(err error,
w http.ResponseWriter,
r *http.Request) {
if err == nil {
t.Error("error expected")
}
var errMessage = err.Error()
// TODO think about types and check code and description separately
if errMessage != "custom_code: custom_description" {
t.Errorf("returned incorrect error, got %v", errMessage)
}
})
req, _ := http.NewRequest("GET", "?code=123-456-789", nil)
f(httptest.NewRecorder(), req)
}
示例4: Test_OAuthServerReturnsInternalServerError
func Test_OAuthServerReturnsInternalServerError(t *testing.T) {
var credentials = oauth.ClientCredentials{}
var auth = oauth.OAuthAuthenticator{
RequestClientGenerator: func(r *http.Request) *http.Client {
return NewStubResponseClient("{}", http.StatusInternalServerError).HttpClient
},
}
f := auth.HandlerFunc(
credentials,
func(auth *oauth.OAuthAuthorizationResponse,
w http.ResponseWriter,
r *http.Request) {
t.Error("should return error in case of invalid http code")
},
func(err error,
w http.ResponseWriter,
r *http.Request) {
if err != oauth.OAuthServerErr {
t.Errorf("returned incorrect error, got %v", err)
}
})
req, _ := http.NewRequest("GET", "?code=123-456-789", nil)
f(httptest.NewRecorder(), req)
}
示例5: Test_CallbackUrlIsNotSet
func Test_CallbackUrlIsNotSet(t *testing.T) {
auth := oauth.OAuthAuthenticator{}
_, err := auth.CallbackPath()
if err == nil {
t.Error("should return error since callback url is not set")
}
}
示例6: Test_ValidCallbackUrl_WaitExtractPath
func Test_ValidCallbackUrl_WaitExtractPath(t *testing.T) {
auth := oauth.OAuthAuthenticator{
CallbackURL: "http://abc.com/something/oauth",
}
s, _ := auth.CallbackPath()
if s != "/something/oauth" {
t.Error("incorrect path")
}
}
示例7: Test_InvalidCallbackUrl
func Test_InvalidCallbackUrl(t *testing.T) {
auth := oauth.OAuthAuthenticator{
CallbackURL: "http://www.example.c%om/",
}
_, err := auth.CallbackPath()
if err == nil {
t.Error("should return error since not a callback url")
}
}
示例8: Test_AuthorizationUrlStateIsUndefined
func Test_AuthorizationUrlStateIsUndefined(t *testing.T) {
var credentials = oauth.ClientCredentials{
ClientId: "some_client_id",
}
auth := oauth.OAuthAuthenticator{
CallbackURL: "http://abc.com/something/oauth",
}
url := auth.AuthorizationURL(credentials, "")
if url != oauth.BaseOAuthPath+"/authorize?response_type=code&client_id=some_client_id&redirect_uri=http://abc.com/something/oauth" {
t.Errorf("incorrect oauth url, got %v", url)
}
}
示例9: Test_OAuthServerRespondWithUnathorizedClientError
func Test_OAuthServerRespondWithUnathorizedClientError(t *testing.T) {
var credentials = oauth.ClientCredentials{}
var auth = oauth.OAuthAuthenticator{}
f := auth.HandlerFunc(credentials,
func(auth *oauth.OAuthAuthorizationResponse,
w http.ResponseWriter,
r *http.Request) {
t.Error("access denied should be failure")
},
func(err error,
w http.ResponseWriter,
r *http.Request) {
if err != oauth.OAuthUnauthorizedClientErr {
t.Errorf("returned incorrect error, got %v", err)
}
})
req, _ := http.NewRequest("GET", "?error=unauthorized_client", nil)
f(httptest.NewRecorder(), req)
}
示例10: Test_SuccessAuthorization
func Test_SuccessAuthorization(t *testing.T) {
var credentials = oauth.ClientCredentials{}
var auth = oauth.OAuthAuthenticator{
RequestClientGenerator: func(r *http.Request) *http.Client {
return NewStubResponseClient(`{}`, http.StatusOK).HttpClient
},
}
f := auth.HandlerFunc(credentials,
func(auth *oauth.OAuthAuthorizationResponse,
w http.ResponseWriter,
r *http.Request) {
},
func(err error,
w http.ResponseWriter,
r *http.Request) {
t.Error("should be success")
})
req, _ := http.NewRequest("GET", "?code=123-456-789", nil)
f(httptest.NewRecorder(), req)
}