Maint: internal/openvpn/parse package

- Parse PEM key data for Cyberghost and VPNUnlimited
- Add more unit tests
This commit is contained in:
Quentin McGaw (desktop)
2021-09-08 16:40:19 +00:00
parent 9afe455635
commit 65ace12def
11 changed files with 321 additions and 212 deletions

View File

@@ -0,0 +1,51 @@
package parse
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func Test_extractPEM(t *testing.T) {
t.Parallel()
testCases := map[string]struct {
b []byte
name string
encodedData string
err error
}{
"no input": {
err: errors.New("cannot decode PEM encoded block"),
},
"bad input": {
b: []byte{1, 2, 3},
err: errors.New("cannot decode PEM encoded block"),
},
"valid data": {
name: "certificate",
b: []byte(validCertPEM),
encodedData: validCertData,
},
}
for name, testCase := range testCases {
testCase := testCase
t.Run(name, func(t *testing.T) {
t.Parallel()
encodedData, err := extractPEM(testCase.b, testCase.name)
if testCase.err != nil {
require.Error(t, err)
assert.Equal(t, testCase.err.Error(), err.Error())
} else {
assert.NoError(t, err)
}
assert.Equal(t, testCase.encodedData, encodedData)
})
}
}