mirror of https://github.com/containers/podman.git
77 lines
1.5 KiB
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)
|
|
})
|
|
}
|
|
}
|