github.com/AntonOrnatskyi/goproxy@v0.0.0-20190205095733-4526a9fa18b4/core/cs/tests/transport_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"log"
     5  	"net"
     6  	"os"
     7  	"testing"
     8  
     9  	ctransport "github.com/AntonOrnatskyi/goproxy/core/cs/client"
    10  	stransport "github.com/AntonOrnatskyi/goproxy/core/cs/server"
    11  )
    12  
    13  func TestTCPS(t *testing.T) {
    14  	l := log.New(os.Stderr, "", log.LstdFlags)
    15  	s := stransport.NewServerChannelHost(":", l)
    16  	err := s.ListenTCPS("aes-256-cfb", "password", true, func(inconn net.Conn) {
    17  		buf := make([]byte, 2048)
    18  		_, err := inconn.Read(buf)
    19  		if err != nil {
    20  			t.Error(err)
    21  			return
    22  		}
    23  		_, err = inconn.Write([]byte("okay"))
    24  		if err != nil {
    25  			t.Error(err)
    26  			return
    27  		}
    28  	})
    29  	if err != nil {
    30  		t.Fatal(err)
    31  	}
    32  	client, err := ctransport.TCPSConnectHost((*s.Listener).Addr().String(), "aes-256-cfb", "password", true, 1000)
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  	defer client.Close()
    37  	_, err = client.Write([]byte("test"))
    38  	if err != nil {
    39  		t.Fatal(err)
    40  	}
    41  	b := make([]byte, 20)
    42  	n, err := client.Read(b)
    43  	if err != nil {
    44  		t.Fatal(err)
    45  	}
    46  	if string(b[:n]) != "okay" {
    47  		t.Fatalf("client revecive okay excepted,revecived : %s", string(b[:n]))
    48  	}
    49  }