refactor(netx): move tlshandshaker logger to netxlite (#402)
Part of https://github.com/ooni/probe/issues/1505
This commit is contained in:
parent
acef18a955
commit
f1ee763f94
11 changed files with 151 additions and 79 deletions
|
|
@ -5,11 +5,6 @@ import (
|
|||
"net"
|
||||
)
|
||||
|
||||
// dialer is the interface we expect from a dialer
|
||||
type dialer interface {
|
||||
DialContext(ctx context.Context, network, address string) (net.Conn, error)
|
||||
}
|
||||
|
||||
// Dialer is a mockable Dialer.
|
||||
type Dialer struct {
|
||||
MockDialContext func(ctx context.Context, network, address string) (net.Conn, error)
|
||||
|
|
@ -19,5 +14,3 @@ type Dialer struct {
|
|||
func (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
return d.MockDialContext(ctx, network, address)
|
||||
}
|
||||
|
||||
var _ dialer = &Dialer{}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,6 @@ package netxmocks
|
|||
|
||||
import "context"
|
||||
|
||||
// resolver is the interface we expect from a resolver
|
||||
type resolver interface {
|
||||
LookupHost(ctx context.Context, domain string) ([]string, error)
|
||||
Network() string
|
||||
Address() string
|
||||
}
|
||||
|
||||
// Resolver is a mockable Resolver.
|
||||
type Resolver struct {
|
||||
MockLookupHost func(ctx context.Context, domain string) ([]string, error)
|
||||
|
|
@ -30,5 +23,3 @@ func (r *Resolver) Address() string {
|
|||
func (r *Resolver) Network() string {
|
||||
return r.MockNetwork()
|
||||
}
|
||||
|
||||
var _ resolver = &Resolver{}
|
||||
|
|
|
|||
19
internal/netxmocks/tlshandshaker.go
Normal file
19
internal/netxmocks/tlshandshaker.go
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
package netxmocks
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"net"
|
||||
)
|
||||
|
||||
// TLSHandshaker is a mockable TLS handshaker.
|
||||
type TLSHandshaker struct {
|
||||
MockHandshake func(ctx context.Context, conn net.Conn, config *tls.Config) (
|
||||
net.Conn, tls.ConnectionState, error)
|
||||
}
|
||||
|
||||
// Handshake calls MockHandshake.
|
||||
func (th *TLSHandshaker) Handshake(ctx context.Context, conn net.Conn, config *tls.Config) (
|
||||
net.Conn, tls.ConnectionState, error) {
|
||||
return th.MockHandshake(ctx, conn, config)
|
||||
}
|
||||
33
internal/netxmocks/tlshandshaker_test.go
Normal file
33
internal/netxmocks/tlshandshaker_test.go
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
package netxmocks
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"net"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestTLSHandshakerHandshake(t *testing.T) {
|
||||
expected := errors.New("mocked error")
|
||||
conn := &Conn{}
|
||||
ctx := context.Background()
|
||||
config := &tls.Config{}
|
||||
th := &TLSHandshaker{
|
||||
MockHandshake: func(ctx context.Context, conn net.Conn,
|
||||
config *tls.Config) (net.Conn, tls.ConnectionState, error) {
|
||||
return nil, tls.ConnectionState{}, expected
|
||||
},
|
||||
}
|
||||
tlsConn, connState, err := th.Handshake(ctx, conn, config)
|
||||
if !errors.Is(err, expected) {
|
||||
t.Fatal("not the error we expected", err)
|
||||
}
|
||||
if !reflect.ValueOf(connState).IsZero() {
|
||||
t.Fatal("expected zero ConnectionState here")
|
||||
}
|
||||
if tlsConn != nil {
|
||||
t.Fatal("expected nil conn here")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue