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  }