podman/pkg/machine/proxyenv/env_test.go

77 lines
1.5 KiB
Go

package proxyenv
import (
"bytes"
"testing"
"github.com/stretchr/testify/assert"
)
func Test_getProxyScript(t *testing.T) {
type env struct {
name string
value string
}
type args struct {
isWSL bool
envs []env
}
tests := []struct {
name string
args args
want string
}{
{
name: "all vars set",
args: args{
isWSL: false,
envs: []env{
{
name: "http_proxy",
value: "proxy1",
},
{
name: "https_proxy",
value: "sproxy1",
},
{
name: "no_proxy",
value: "no1,no2",
},
},
},
want: `#!/bin/bash
SYSTEMD_CONF=/etc/systemd/system.conf.d/default-env.conf
ENVD_CONF=/etc/environment.d/default-env.conf
PROFILE_CONF=/etc/profile.d/default-env.sh
mkdir -p /etc/profile.d /etc/environment.d /etc/systemd/system.conf.d/
rm -f $SYSTEMD_CONF $ENVD_CONF $PROFILE_CONF
echo "[Manager]" >> $SYSTEMD_CONF
for proxy in "http_proxy=proxy1" "https_proxy=sproxy1" "no_proxy=no1,no2"; do
printf "DefaultEnvironment=\"%s\"\n" "$proxy" >> $SYSTEMD_CONF
printf "%q\n" "$proxy" >> $ENVD_CONF
printf "export %q\n" "$proxy" >> $PROFILE_CONF
done
systemctl daemon-reload
`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
for _, e := range tt.args.envs {
t.Setenv(e.name, e.value)
}
got := getProxyScript(tt.args.isWSL)
buf := new(bytes.Buffer)
_, err := buf.ReadFrom(got)
assert.NoError(t, err)
str := buf.String()
assert.Equal(t, tt.want, str)
})
}
}