mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.2 KiB
78 lines
2.2 KiB
// Copyright 2024 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package setting |
|
|
|
import ( |
|
"os" |
|
"testing" |
|
|
|
"code.gitea.io/gitea/modules/generate" |
|
"code.gitea.io/gitea/modules/test" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestGetGeneralSigningSecret(t *testing.T) { |
|
// when there is no general signing secret, it should be generated, and keep the same value |
|
generalSigningSecret.Store(nil) |
|
s1 := GetGeneralTokenSigningSecret() |
|
assert.NotNil(t, s1) |
|
s2 := GetGeneralTokenSigningSecret() |
|
assert.Equal(t, s1, s2) |
|
|
|
// the config value should always override any pre-generated value |
|
cfg, _ := NewConfigProviderFromData(` |
|
[oauth2] |
|
JWT_SECRET = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB |
|
`) |
|
defer test.MockVariableValue(&InstallLock, true)() |
|
loadOAuth2From(cfg) |
|
actual := GetGeneralTokenSigningSecret() |
|
expected, _ := generate.DecodeJwtSecretBase64("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB") |
|
assert.Len(t, actual, 32) |
|
assert.Equal(t, expected, actual) |
|
} |
|
|
|
func TestGetGeneralSigningSecretSave(t *testing.T) { |
|
defer test.MockVariableValue(&InstallLock, true)() |
|
|
|
old := GetGeneralTokenSigningSecret() |
|
assert.Len(t, old, 32) |
|
|
|
tmpFile := t.TempDir() + "/app.ini" |
|
_ = os.WriteFile(tmpFile, nil, 0o644) |
|
cfg, _ := NewConfigProviderFromFile(tmpFile) |
|
loadOAuth2From(cfg) |
|
generated := GetGeneralTokenSigningSecret() |
|
assert.Len(t, generated, 32) |
|
assert.NotEqual(t, old, generated) |
|
|
|
generalSigningSecret.Store(nil) |
|
cfg, _ = NewConfigProviderFromFile(tmpFile) |
|
loadOAuth2From(cfg) |
|
again := GetGeneralTokenSigningSecret() |
|
assert.Equal(t, generated, again) |
|
|
|
iniContent, err := os.ReadFile(tmpFile) |
|
assert.NoError(t, err) |
|
assert.Contains(t, string(iniContent), "JWT_SECRET = ") |
|
} |
|
|
|
func TestOauth2DefaultApplications(t *testing.T) { |
|
cfg, _ := NewConfigProviderFromData(``) |
|
loadOAuth2From(cfg) |
|
assert.Equal(t, []string{"git-credential-oauth", "git-credential-manager", "tea"}, OAuth2.DefaultApplications) |
|
|
|
cfg, _ = NewConfigProviderFromData(`[oauth2] |
|
DEFAULT_APPLICATIONS = tea |
|
`) |
|
loadOAuth2From(cfg) |
|
assert.Equal(t, []string{"tea"}, OAuth2.DefaultApplications) |
|
|
|
cfg, _ = NewConfigProviderFromData(`[oauth2] |
|
DEFAULT_APPLICATIONS = |
|
`) |
|
loadOAuth2From(cfg) |
|
assert.Nil(t, OAuth2.DefaultApplications) |
|
}
|
|
|