mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 03:32:11 +08:00

* serviceaccounts/secretscan: test Service more thoroughly * middleware/cookies: add tests for CookieOptions * anonymous/anonimpl: cover a couple more methods * components/imguploader: Implement WebDAV integration tests * components/apikeygen: also check IsValid method * bus: cover invalid callback signature cases * cloudmigration/objectstorage: add basic unit tests * login/social/connectors: add test case for GitHub OAuth fetch emails+orgs * expr/classic: cover more evaluator types in tests
38 lines
889 B
Go
38 lines
889 B
Go
package cookies
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestCookieOptions(t *testing.T) {
|
|
rr := httptest.NewRecorder()
|
|
|
|
expectedName := "cookie-name"
|
|
expectedValue := "cookie-value"
|
|
|
|
WriteCookie(rr, expectedName, expectedValue, 100, nil)
|
|
|
|
cookie, err := http.ParseSetCookie(rr.Header().Get("Set-Cookie"))
|
|
require.NoError(t, err)
|
|
require.NotNil(t, cookie)
|
|
|
|
require.Equal(t, expectedName, cookie.Name)
|
|
require.Equal(t, expectedValue, cookie.Value)
|
|
require.GreaterOrEqual(t, cookie.MaxAge, 0)
|
|
|
|
// Does not override but appends to the `Set-Cookie` header.
|
|
DeleteCookie(rr, expectedName, nil)
|
|
|
|
cookieHeader := rr.Header().Values("Set-Cookie")
|
|
require.Len(t, cookieHeader, 2)
|
|
|
|
cookie, err = http.ParseSetCookie(cookieHeader[1])
|
|
require.NoError(t, err)
|
|
require.NotNil(t, cookie)
|
|
require.NoError(t, cookie.Valid())
|
|
}
|