mirror of
https://github.com/grafana/grafana.git
synced 2025-08-03 05:08:36 +08:00
Backend: Remove more globals (#29644)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
@ -25,7 +25,11 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func mockSetIndexViewData() {
|
||||
func fakeSetIndexViewData(t *testing.T) {
|
||||
origSetIndexViewData := setIndexViewData
|
||||
t.Cleanup(func() {
|
||||
setIndexViewData = origSetIndexViewData
|
||||
})
|
||||
setIndexViewData = func(*HTTPServer, *models.ReqContext) (*dtos.IndexViewData, error) {
|
||||
data := &dtos.IndexViewData{
|
||||
User: &dtos.CurrentUser{},
|
||||
@ -36,22 +40,16 @@ func mockSetIndexViewData() {
|
||||
}
|
||||
}
|
||||
|
||||
func resetSetIndexViewData() {
|
||||
setIndexViewData = (*HTTPServer).setIndexViewData
|
||||
}
|
||||
|
||||
func mockViewIndex() {
|
||||
func fakeViewIndex(t *testing.T) {
|
||||
origGetViewIndex := getViewIndex
|
||||
t.Cleanup(func() {
|
||||
getViewIndex = origGetViewIndex
|
||||
})
|
||||
getViewIndex = func() string {
|
||||
return "index-template"
|
||||
}
|
||||
}
|
||||
|
||||
func resetViewIndex() {
|
||||
getViewIndex = func() string {
|
||||
return ViewIndex
|
||||
}
|
||||
}
|
||||
|
||||
func getBody(resp *httptest.ResponseRecorder) (string, error) {
|
||||
responseData, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
@ -86,16 +84,15 @@ type redirectCase struct {
|
||||
redirectURL string
|
||||
}
|
||||
|
||||
func TestLoginErrorCookieApiEndpoint(t *testing.T) {
|
||||
mockSetIndexViewData()
|
||||
defer resetSetIndexViewData()
|
||||
func TestLoginErrorCookieAPIEndpoint(t *testing.T) {
|
||||
fakeSetIndexViewData(t)
|
||||
|
||||
mockViewIndex()
|
||||
defer resetViewIndex()
|
||||
fakeViewIndex(t)
|
||||
|
||||
sc := setupScenarioContext(t, "/login")
|
||||
cfg := setting.NewCfg()
|
||||
hs := &HTTPServer{
|
||||
Cfg: setting.NewCfg(),
|
||||
Cfg: cfg,
|
||||
License: &licensing.OSSLicensingService{},
|
||||
}
|
||||
|
||||
@ -103,7 +100,7 @@ func TestLoginErrorCookieApiEndpoint(t *testing.T) {
|
||||
hs.LoginView(c)
|
||||
})
|
||||
|
||||
setting.LoginCookieName = "grafana_session"
|
||||
cfg.LoginCookieName = "grafana_session"
|
||||
setting.SecretKey = "login_testing"
|
||||
|
||||
setting.OAuthService = &setting.OAuther{}
|
||||
@ -142,11 +139,9 @@ func TestLoginErrorCookieApiEndpoint(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoginViewRedirect(t *testing.T) {
|
||||
mockSetIndexViewData()
|
||||
defer resetSetIndexViewData()
|
||||
fakeSetIndexViewData(t)
|
||||
|
||||
mockViewIndex()
|
||||
defer resetViewIndex()
|
||||
fakeViewIndex(t)
|
||||
sc := setupScenarioContext(t, "/login")
|
||||
hs := &HTTPServer{
|
||||
Cfg: setting.NewCfg(),
|
||||
@ -318,11 +313,9 @@ func TestLoginViewRedirect(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoginPostRedirect(t *testing.T) {
|
||||
mockSetIndexViewData()
|
||||
defer resetSetIndexViewData()
|
||||
fakeSetIndexViewData(t)
|
||||
|
||||
mockViewIndex()
|
||||
defer resetViewIndex()
|
||||
fakeViewIndex(t)
|
||||
sc := setupScenarioContext(t, "/login")
|
||||
hs := &HTTPServer{
|
||||
log: &FakeLogger{},
|
||||
@ -478,8 +471,7 @@ func TestLoginPostRedirect(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoginOAuthRedirect(t *testing.T) {
|
||||
mockSetIndexViewData()
|
||||
defer resetSetIndexViewData()
|
||||
fakeSetIndexViewData(t)
|
||||
|
||||
sc := setupScenarioContext(t, "/login")
|
||||
hs := &HTTPServer{
|
||||
@ -511,11 +503,9 @@ func TestLoginOAuthRedirect(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoginInternal(t *testing.T) {
|
||||
mockSetIndexViewData()
|
||||
defer resetSetIndexViewData()
|
||||
fakeSetIndexViewData(t)
|
||||
|
||||
mockViewIndex()
|
||||
defer resetViewIndex()
|
||||
fakeViewIndex(t)
|
||||
sc := setupScenarioContext(t, "/login")
|
||||
hs := &HTTPServer{
|
||||
Cfg: setting.NewCfg(),
|
||||
@ -559,24 +549,23 @@ func TestAuthProxyLoginEnableLoginTokenDisabled(t *testing.T) {
|
||||
|
||||
func TestAuthProxyLoginWithEnableLoginToken(t *testing.T) {
|
||||
sc := setupAuthProxyLoginTest(t, true)
|
||||
require.Equal(t, sc.resp.Code, 302)
|
||||
|
||||
assert.Equal(t, sc.resp.Code, 302)
|
||||
location, ok := sc.resp.Header()["Location"]
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, location[0], "/")
|
||||
|
||||
setCookie, ok := sc.resp.Header()["Set-Cookie"]
|
||||
assert.True(t, ok, "Set-Cookie exists")
|
||||
setCookie := sc.resp.Header()["Set-Cookie"]
|
||||
require.NotNil(t, setCookie, "Set-Cookie should exist")
|
||||
assert.Equal(t, "grafana_session=; Path=/; Max-Age=0; HttpOnly", setCookie[0])
|
||||
}
|
||||
|
||||
func setupAuthProxyLoginTest(t *testing.T, enableLoginToken bool) *scenarioContext {
|
||||
mockSetIndexViewData()
|
||||
defer resetSetIndexViewData()
|
||||
fakeSetIndexViewData(t)
|
||||
|
||||
sc := setupScenarioContext(t, "/login")
|
||||
sc.cfg.LoginCookieName = "grafana_session"
|
||||
hs := &HTTPServer{
|
||||
Cfg: setting.NewCfg(),
|
||||
Cfg: sc.cfg,
|
||||
License: &licensing.OSSLicensingService{},
|
||||
AuthTokenService: auth.NewFakeUserAuthTokenService(),
|
||||
log: log.New("hello"),
|
||||
@ -592,8 +581,8 @@ func setupAuthProxyLoginTest(t *testing.T, enableLoginToken bool) *scenarioConte
|
||||
|
||||
setting.OAuthService = &setting.OAuther{}
|
||||
setting.OAuthService.OAuthInfos = make(map[string]*setting.OAuthInfo)
|
||||
hs.Cfg.AuthProxyEnabled = true
|
||||
hs.Cfg.AuthProxyEnableLoginToken = enableLoginToken
|
||||
sc.cfg.AuthProxyEnabled = true
|
||||
sc.cfg.AuthProxyEnableLoginToken = enableLoginToken
|
||||
|
||||
sc.m.Get(sc.url, sc.defaultHandler)
|
||||
sc.fakeReqNoAssertions("GET", sc.url).exec()
|
||||
|
Reference in New Issue
Block a user