github.com/AntonOrnatskyi/goproxy@v0.0.0-20190205095733-4526a9fa18b4/core/proxy/client/tests/proxy_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"io/ioutil"
     5  	"net"
     6  	"os"
     7  	"strings"
     8  	"testing"
     9  	"time"
    10  
    11  	proxyclient "github.com/AntonOrnatskyi/goproxy/core/proxy/client"
    12  	sdk "github.com/AntonOrnatskyi/goproxy/sdk/android-ios"
    13  )
    14  
    15  func TestSocks5(t *testing.T) {
    16  	estr := sdk.Start("s1", "socks -p :8185 --log test.log")
    17  	if estr != "" {
    18  		t.Fatal(estr)
    19  	}
    20  	p, e := proxyclient.SOCKS5(time.Second, nil)
    21  	if e != nil {
    22  		t.Error(e)
    23  	} else {
    24  		c, e := net.Dial("tcp", "127.0.0.1:8185")
    25  		if e != nil {
    26  			t.Fatal(e)
    27  		}
    28  		e = p.DialConn(&c, "tcp", "www.baidu.com:80")
    29  		if e != nil {
    30  			t.Fatal(e)
    31  		}
    32  		_, e = c.Write([]byte("Get / http/1.1\r\nHost: www.baidu.com\r\n"))
    33  		if e != nil {
    34  			t.Fatal(e)
    35  		}
    36  		b, e := ioutil.ReadAll(c)
    37  		if e != nil {
    38  			t.Fatal(e)
    39  		}
    40  		if !strings.HasPrefix(string(b), "HTTP") {
    41  			t.Fatalf("request baidu fail:%s", string(b))
    42  		}
    43  	}
    44  	sdk.Stop("s1")
    45  	os.Remove("test.log")
    46  }
    47  
    48  func TestSocks5Auth(t *testing.T) {
    49  	estr := sdk.Start("s1", "socks -p :8185 -a u:p --log test.log")
    50  	if estr != "" {
    51  		t.Fatal(estr)
    52  	}
    53  	p, e := proxyclient.SOCKS5(time.Second, &proxyclient.Auth{User: "u", Password: "p"})
    54  	if e != nil {
    55  		t.Error(e)
    56  	} else {
    57  		c, e := net.Dial("tcp", "127.0.0.1:8185")
    58  		if e != nil {
    59  			t.Fatal(e)
    60  		}
    61  		e = p.DialConn(&c, "tcp", "www.baidu.com:80")
    62  		if e != nil {
    63  			t.Fatal(e)
    64  		}
    65  		_, e = c.Write([]byte("Get / http/1.1\r\nHost: www.baidu.com\r\n"))
    66  		if e != nil {
    67  			t.Fatal(e)
    68  		}
    69  		b, e := ioutil.ReadAll(c)
    70  		if e != nil {
    71  			t.Fatal(e)
    72  		}
    73  		if !strings.HasPrefix(string(b), "HTTP") {
    74  			t.Fatalf("request baidu fail:%s", string(b))
    75  		}
    76  	}
    77  	sdk.Stop("s1")
    78  	os.Remove("test.log")
    79  }