mirror of
https://github.com/go-acme/lego.git
synced 2025-01-07 08:57:00 +02:00
f514292c46
Co-authored-by: Dominik Menke <git@dmke.org>
96 lines
2.3 KiB
Go
96 lines
2.3 KiB
Go
package internal
|
|
|
|
import (
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestReadTSIGFile(t *testing.T) {
|
|
testCases := []struct {
|
|
desc string
|
|
filename string
|
|
expected *Key
|
|
}{
|
|
{
|
|
desc: "basic",
|
|
filename: "sample.conf",
|
|
expected: &Key{Name: "example.com", Algorithm: "hmac-sha256", Secret: "TCG5A6/lOHUGbW0e/9RYYbzWDFMlj1pIxCvybLBayBg="},
|
|
},
|
|
{
|
|
desc: "data before the key",
|
|
filename: "text_before.conf",
|
|
expected: &Key{Name: "example.com", Algorithm: "hmac-sha256", Secret: "TCG5A6/lOHUGbW0e/9RYYbzWDFMlj1pIxCvybLBayBg="},
|
|
},
|
|
{
|
|
desc: "data after the key",
|
|
filename: "text_after.conf",
|
|
expected: &Key{Name: "example.com", Algorithm: "hmac-sha256", Secret: "TCG5A6/lOHUGbW0e/9RYYbzWDFMlj1pIxCvybLBayBg="},
|
|
},
|
|
{
|
|
desc: "ignore missing secret",
|
|
filename: "missing_secret.conf",
|
|
expected: &Key{Name: "example.com", Algorithm: "hmac-sha256"},
|
|
},
|
|
{
|
|
desc: "ignore missing algorithm",
|
|
filename: "mising_algo.conf",
|
|
expected: &Key{Name: "example.com", Secret: "TCG5A6/lOHUGbW0e/9RYYbzWDFMlj1pIxCvybLBayBg="},
|
|
},
|
|
{
|
|
desc: "ignore invalid field format",
|
|
filename: "invalid_field.conf",
|
|
expected: &Key{Name: "example.com", Secret: "TCG5A6/lOHUGbW0e/9RYYbzWDFMlj1pIxCvybLBayBg="},
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
t.Run(test.desc, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
key, err := ReadTSIGFile(filepath.Join("fixtures", test.filename))
|
|
require.NoError(t, err)
|
|
|
|
assert.Equal(t, test.expected, key)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestReadTSIGFile_error(t *testing.T) {
|
|
if runtime.GOOS != "linux" {
|
|
// Because error messages are different on Windows.
|
|
t.Skip("only for UNIX systems")
|
|
}
|
|
|
|
testCases := []struct {
|
|
desc string
|
|
filename string
|
|
expected string
|
|
}{
|
|
{
|
|
desc: "missing file",
|
|
filename: "missing.conf",
|
|
expected: "open file: open fixtures/missing.conf: no such file or directory",
|
|
},
|
|
{
|
|
desc: "invalid key format",
|
|
filename: "invalid_key.conf",
|
|
expected: "invalid key line: key {",
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
t.Run(test.desc, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := ReadTSIGFile(filepath.Join("fixtures", test.filename))
|
|
require.Error(t, err)
|
|
|
|
require.EqualError(t, err, test.expected)
|
|
})
|
|
}
|
|
}
|