77 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package http
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/tls"
 | 
						|
	"net"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	csm "git.loafle.net/commons/service_matcher-go"
 | 
						|
)
 | 
						|
 | 
						|
func TestHTTP(t *testing.T) {
 | 
						|
	m := NewMatcher()
 | 
						|
 | 
						|
	conn, err := net.Dial("tcp", "localhost:8000")
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("ERR %s", err)
 | 
						|
	}
 | 
						|
 | 
						|
	defer conn.Close()
 | 
						|
 | 
						|
	for i := 0; i < m.PacketCount(); i++ {
 | 
						|
		_, err := conn.Write(m.Packet(i).Buffer)
 | 
						|
		if err != nil {
 | 
						|
			t.Error(err)
 | 
						|
		}
 | 
						|
		bytes := make([]byte, 1024)
 | 
						|
		n, _ := conn.Read(bytes)
 | 
						|
		p := csm.NewPacket(bytes, n)
 | 
						|
 | 
						|
		if err := m.Match(nil, i, p); err != nil {
 | 
						|
			t.Error(err)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	t.Log(m.Name())
 | 
						|
	t.Log(m.Meta())
 | 
						|
}
 | 
						|
 | 
						|
func TestHTTPS(t *testing.T) {
 | 
						|
	m := NewMatcher()
 | 
						|
 | 
						|
	dialer := &net.Dialer{
 | 
						|
		Timeout: 5 * time.Second,
 | 
						|
	}
 | 
						|
 | 
						|
	conn, err := tls.DialWithDialer(
 | 
						|
		dialer,
 | 
						|
		"tcp",
 | 
						|
		"192.168.1.1:443",
 | 
						|
		&tls.Config{
 | 
						|
			InsecureSkipVerify: true,
 | 
						|
			ServerName:         "192.168.1.1",
 | 
						|
		},
 | 
						|
	)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("ERR %s", err)
 | 
						|
	}
 | 
						|
 | 
						|
	defer conn.Close()
 | 
						|
 | 
						|
	for i := 0; i < m.PacketCount(); i++ {
 | 
						|
		_, err := conn.Write(m.Packet(i).Buffer)
 | 
						|
		if err != nil {
 | 
						|
			t.Error(err)
 | 
						|
		}
 | 
						|
		bytes := make([]byte, 1024)
 | 
						|
		n, _ := conn.Read(bytes)
 | 
						|
		p := csm.NewPacket(bytes, n)
 | 
						|
 | 
						|
		if err := m.Match(nil, i, p); err != nil {
 | 
						|
			t.Error(err)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	t.Log(m.Name())
 | 
						|
	t.Log(m.Meta())
 | 
						|
}
 |