gitea
Зеркало из https://github.com/go-gitea/gitea
1// Copyright 2022 The Gitea Authors. All rights reserved.
2// SPDX-License-Identifier: MIT
3
4package util
5
6import (
7"crypto/aes"
8"crypto/rand"
9"fmt"
10"os"
11"testing"
12"time"
13
14"github.com/stretchr/testify/assert"
15)
16
17func TestCopyFile(t *testing.T) {
18testContent := []byte("hello")
19
20tmpDir := os.TempDir()
21now := time.Now()
22srcFile := fmt.Sprintf("%s/copy-test-%d-src.txt", tmpDir, now.UnixMicro())
23dstFile := fmt.Sprintf("%s/copy-test-%d-dst.txt", tmpDir, now.UnixMicro())
24
25_ = os.Remove(srcFile)
26_ = os.Remove(dstFile)
27defer func() {
28_ = os.Remove(srcFile)
29_ = os.Remove(dstFile)
30}()
31
32err := os.WriteFile(srcFile, testContent, 0o777)
33assert.NoError(t, err)
34err = CopyFile(srcFile, dstFile)
35assert.NoError(t, err)
36dstContent, err := os.ReadFile(dstFile)
37assert.NoError(t, err)
38assert.Equal(t, testContent, dstContent)
39}
40
41func TestAESGCM(t *testing.T) {
42t.Parallel()
43
44key := make([]byte, aes.BlockSize)
45_, err := rand.Read(key)
46assert.NoError(t, err)
47
48plaintext := []byte("this will be encrypted")
49
50ciphertext, err := AESGCMEncrypt(key, plaintext)
51assert.NoError(t, err)
52
53decrypted, err := AESGCMDecrypt(key, ciphertext)
54assert.NoError(t, err)
55
56assert.Equal(t, plaintext, decrypted)
57}
58