github.com/ipfans/trojan-go@v0.11.0/url/option_test.go (about) 1 package url 2 3 import ( 4 "testing" 5 "time" 6 7 _ "github.com/ipfans/trojan-go/proxy/client" 8 ) 9 10 func TestUrl_Handle(t *testing.T) { 11 urlCases := []string{ 12 "trojan-go://password@server.com", 13 "trojan-go://password@server.com/?type=ws&host=baidu.com&path=%2fwspath", 14 "trojan-go://password@server.com/?encryption=ss%3baes-256-gcm%3afuckgfw", 15 "trojan-go://password@server.com/?type=ws&host=baidu.com&path=%2fwspath&encryption=ss%3Baes-256-gcm%3Afuckgfw", 16 } 17 optionCases := []string{ 18 "mux=true;listen=127.0.0.1:0", 19 "mux=false;listen=127.0.0.1:0", 20 "mux=false;listen=127.0.0.1:0;api=127.0.0.1:0", 21 } 22 23 for _, s := range urlCases { 24 for _, option := range optionCases { 25 s := s 26 option := option 27 u := &url{ 28 url: &s, 29 option: &option, 30 } 31 u.Name() 32 u.Priority() 33 34 errChan := make(chan error, 1) 35 go func() { 36 errChan <- u.Handle() 37 }() 38 39 select { 40 case err := <-errChan: 41 t.Fatal(err) 42 case <-time.After(time.Second * 1): 43 } 44 } 45 } 46 }