package oci import ( "testing" ) func TestTransportForStageTimeouts(t *testing.T) { tests := []struct { name string spec *ProxySpec wantProxy bool // CONNECT 分支应设 Proxy 函数 }{ {name: "http CONNECT 代理", spec: &ProxySpec{Type: "http", Host: "127.0.0.1", Port: 8080}, wantProxy: true}, {name: "https CONNECT 代理", spec: &ProxySpec{Type: "https", Host: "127.0.0.1", Port: 8443}, wantProxy: true}, {name: "socks5 代理", spec: &ProxySpec{Type: "socks5", Host: "127.0.0.1", Port: 1080, Username: "u", Password: "p"}}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { tr := transportFor(tt.spec) if tr == nil { t.Fatal("transportFor 返回 nil") } if (tr.Proxy != nil) != tt.wantProxy { t.Fatalf("Proxy 函数存在性 = %v, 期望 %v", tr.Proxy != nil, tt.wantProxy) } if tr.DialContext == nil { t.Fatal("应设置带超时的 DialContext") } if tr.TLSHandshakeTimeout != proxyTLSHandshakeTimeout { t.Fatalf("TLSHandshakeTimeout = %v, 期望 %v", tr.TLSHandshakeTimeout, proxyTLSHandshakeTimeout) } }) } }