- Retro-compatibility: `OPENVPN_CUSTOM_CONFIG` set implies `VPNSP=custom` - Change: `up` and `down` options are not filtered out - Change: `OPENVPN_INTERFACE` overrides the network interface defined in the configuration file - Change: `PORT` overrides any port found in the configuration file - Feat: config file is read when building the OpenVPN configuration, so it's effectively reloaded on VPN restarts - Feat: extract values from custom file at start to log out valid settings - Maint: `internal/openvpn/extract` package instead of `internal/openvpn/custom` package - Maint: All providers' `BuildConf` method return an error - Maint: rename `CustomConfig` to `ConfFile` in Settings structures
40 lines
712 B
Go
40 lines
712 B
Go
package configuration
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_OpenVPN_JSON(t *testing.T) {
|
|
t.Parallel()
|
|
in := OpenVPN{
|
|
Root: true,
|
|
Flags: []string{},
|
|
}
|
|
data, err := json.MarshalIndent(in, "", " ")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, `{
|
|
"user": "",
|
|
"password": "",
|
|
"verbosity": 0,
|
|
"flags": [],
|
|
"mssfix": 0,
|
|
"run_as_root": true,
|
|
"cipher": "",
|
|
"auth": "",
|
|
"conf_file": "",
|
|
"version": "",
|
|
"encryption_preset": "",
|
|
"ipv6": false,
|
|
"procuser": "",
|
|
"interface": ""
|
|
}`, string(data))
|
|
var out OpenVPN
|
|
err = json.Unmarshal(data, &out)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, in, out)
|
|
}
|