mirror of
https://github.com/qdm12/gluetun.git
synced 2025-12-11 04:38:54 -06:00
- Better settings tree structure logged using `qdm12/gotree` - Read settings from environment variables, then files, then secret files - Settings methods to default them, merge them and override them - `DNS_PLAINTEXT_ADDRESS` default changed to `127.0.0.1` to use DoT. Warning added if set to something else. - `HTTPPROXY_LISTENING_ADDRESS` instead of `HTTPPROXY_PORT` (with retro-compatibility)
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package settings
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
"inet.af/netaddr"
|
|
)
|
|
|
|
func Test_Unbound_JSON(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
settings := Unbound{
|
|
Providers: []string{"cloudflare"},
|
|
Caching: boolPtr(true),
|
|
IPv6: boolPtr(false),
|
|
VerbosityLevel: uint8Ptr(1),
|
|
VerbosityDetailsLevel: nil,
|
|
ValidationLogLevel: uint8Ptr(0),
|
|
Username: "user",
|
|
Allowed: []netaddr.IPPrefix{
|
|
netaddr.IPPrefixFrom(netaddr.IPv4(0, 0, 0, 0), 0),
|
|
netaddr.IPPrefixFrom(netaddr.IPv6Raw([16]byte{}), 0),
|
|
},
|
|
}
|
|
|
|
b, err := json.Marshal(settings)
|
|
require.NoError(t, err)
|
|
|
|
const expected = `{"Providers":["cloudflare"],"Caching":true,"IPv6":false,` +
|
|
`"VerbosityLevel":1,"VerbosityDetailsLevel":null,"ValidationLogLevel":0,` +
|
|
`"Username":"user","Allowed":["0.0.0.0/0","::/0"]}`
|
|
|
|
assert.Equal(t, expected, string(b))
|
|
|
|
var resultSettings Unbound
|
|
err = json.Unmarshal(b, &resultSettings)
|
|
require.NoError(t, err)
|
|
|
|
assert.Equal(t, settings, resultSettings)
|
|
}
|