123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Copyright 2023 The Gogs Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
- package database
- import (
- "context"
- "fmt"
- "os"
- "path/filepath"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- "gogs.io/gogs/internal/conf"
- )
- func TestPublicKeys(t *testing.T) {
- if testing.Short() {
- t.Skip()
- }
- t.Parallel()
- ctx := context.Background()
- s := &PublicKeysStore{
- db: newTestDB(t, "PublicKeysStore"),
- }
- for _, tc := range []struct {
- name string
- test func(t *testing.T, ctx context.Context, s *PublicKeysStore)
- }{
- {"RewriteAuthorizedKeys", publicKeysRewriteAuthorizedKeys},
- } {
- t.Run(tc.name, func(t *testing.T) {
- t.Cleanup(func() {
- err := clearTables(t, s.db)
- require.NoError(t, err)
- })
- tc.test(t, ctx, s)
- })
- if t.Failed() {
- break
- }
- }
- }
- func publicKeysRewriteAuthorizedKeys(t *testing.T, ctx context.Context, s *PublicKeysStore) {
- // TODO: Use PublicKeys.Add to replace SQL hack when the method is available.
- publicKey := &PublicKey{
- OwnerID: 1,
- Name: "test-key",
- Fingerprint: "12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53",
- Content: "test-key-content",
- }
- err := s.db.Create(publicKey).Error
- require.NoError(t, err)
- tempSSHRootPath := filepath.Join(os.TempDir(), "publicKeysRewriteAuthorizedKeys-tempSSHRootPath")
- conf.SetMockSSH(t, conf.SSHOpts{RootPath: tempSSHRootPath})
- err = s.RewriteAuthorizedKeys()
- require.NoError(t, err)
- authorizedKeys, err := os.ReadFile(authorizedKeysPath())
- require.NoError(t, err)
- assert.Contains(t, string(authorizedKeys), fmt.Sprintf("key-%d", publicKey.ID))
- assert.Contains(t, string(authorizedKeys), publicKey.Content)
- }
|