sub2api/backend/internal/pkg/lspool/proxy_exec_test.go
2026-04-01 17:47:40 +08:00

32 lines
916 B
Go

package lspool
import (
"net/url"
"strings"
"testing"
"github.com/stretchr/testify/require"
)
func TestBuildProxychainsConfigIncludesAuthAndLocalBypass(t *testing.T) {
proxyURL, err := url.Parse("socks5h://testuser:testpass@192.0.2.1:1080")
require.NoError(t, err)
cfg, err := buildProxychainsConfig(proxyURL)
require.NoError(t, err)
require.Contains(t, cfg, "proxy_dns\n")
require.Contains(t, cfg, "localnet 127.0.0.0/255.0.0.0\n")
require.Contains(t, cfg, "localnet ::1/128\n")
require.Contains(t, cfg, "[ProxyList]\n")
require.Contains(t, cfg, "socks5 192.0.2.1 1080 testuser testpass\n")
}
func TestBuildProxychainsConfigRejectsWhitespaceCredentials(t *testing.T) {
proxyURL, err := url.Parse("socks5h://user:bad%20pass@127.0.0.1:1080")
require.NoError(t, err)
_, err = buildProxychainsConfig(proxyURL)
require.Error(t, err)
require.True(t, strings.Contains(err.Error(), "whitespace"))
}