Sub2API v1.0 - AI API 网关(二开初始版本,基于上游 Wei-Shaw/sub2api)
Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s
Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func buildEncodedOAuthBindUserCookie(t *testing.T, userID int64, secret string) string {
|
||||
t.Helper()
|
||||
value, err := buildOAuthBindUserCookieValue(userID, secret)
|
||||
require.NoError(t, err)
|
||||
return value
|
||||
}
|
||||
|
||||
func encodedCookie(name, value string) *http.Cookie {
|
||||
return &http.Cookie{
|
||||
Name: name,
|
||||
Value: encodeCookieValue(value),
|
||||
Path: "/",
|
||||
}
|
||||
}
|
||||
|
||||
func findCookie(cookies []*http.Cookie, name string) *http.Cookie {
|
||||
for _, cookie := range cookies {
|
||||
if cookie.Name == name {
|
||||
return cookie
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func requireCookieCleared(t *testing.T, recorder *httptest.ResponseRecorder, name string) {
|
||||
t.Helper()
|
||||
cookie := findCookie(recorder.Result().Cookies(), name)
|
||||
require.NotNil(t, cookie)
|
||||
require.Equal(t, -1, cookie.MaxAge)
|
||||
}
|
||||
|
||||
func decodeCookieValueForTest(t *testing.T, value string) string {
|
||||
t.Helper()
|
||||
decoded, err := decodeCookieValue(value)
|
||||
require.NoError(t, err)
|
||||
return decoded
|
||||
}
|
||||
|
||||
func assertOAuthRedirectError(t *testing.T, location string, errorCode string, errorMessage string) {
|
||||
t.Helper()
|
||||
values := parseOAuthRedirectFragment(t, location)
|
||||
require.Equal(t, errorCode, values.Get("error"))
|
||||
require.Equal(t, errorMessage, values.Get("error_message"))
|
||||
}
|
||||
|
||||
func parseOAuthRedirectFragment(t *testing.T, location string) url.Values {
|
||||
t.Helper()
|
||||
require.NotEmpty(t, location)
|
||||
|
||||
parsed, err := url.Parse(location)
|
||||
require.NoError(t, err)
|
||||
|
||||
rawValues := parsed.RawQuery
|
||||
if rawValues == "" {
|
||||
rawValues = parsed.Fragment
|
||||
}
|
||||
values, err := url.ParseQuery(rawValues)
|
||||
require.NoError(t, err)
|
||||
return values
|
||||
}
|
||||
Reference in New Issue
Block a user