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 }