71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package dialer_test
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"errors"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/ooni/probe-cli/v3/internal/engine/netx/dialer"
 | |
| 	"github.com/ooni/probe-cli/v3/internal/engine/netx/errorx"
 | |
| 	"github.com/ooni/probe-cli/v3/internal/engine/netx/trace"
 | |
| )
 | |
| 
 | |
| func TestSaverDialerFailure(t *testing.T) {
 | |
| 	expected := errors.New("mocked error")
 | |
| 	saver := &trace.Saver{}
 | |
| 	dlr := dialer.SaverDialer{
 | |
| 		Dialer: dialer.FakeDialer{
 | |
| 			Err: expected,
 | |
| 		},
 | |
| 		Saver: saver,
 | |
| 	}
 | |
| 	conn, err := dlr.DialContext(context.Background(), "tcp", "www.google.com:443")
 | |
| 	if !errors.Is(err, expected) {
 | |
| 		t.Fatal("expected another error here")
 | |
| 	}
 | |
| 	if conn != nil {
 | |
| 		t.Fatal("expected nil conn here")
 | |
| 	}
 | |
| 	ev := saver.Read()
 | |
| 	if len(ev) != 1 {
 | |
| 		t.Fatal("expected a single event here")
 | |
| 	}
 | |
| 	if ev[0].Address != "www.google.com:443" {
 | |
| 		t.Fatal("unexpected Address")
 | |
| 	}
 | |
| 	if ev[0].Duration <= 0 {
 | |
| 		t.Fatal("unexpected Duration")
 | |
| 	}
 | |
| 	if !errors.Is(ev[0].Err, expected) {
 | |
| 		t.Fatal("unexpected Err")
 | |
| 	}
 | |
| 	if ev[0].Name != errorx.ConnectOperation {
 | |
| 		t.Fatal("unexpected Name")
 | |
| 	}
 | |
| 	if ev[0].Proto != "tcp" {
 | |
| 		t.Fatal("unexpected Proto")
 | |
| 	}
 | |
| 	if !ev[0].Time.Before(time.Now()) {
 | |
| 		t.Fatal("unexpected Time")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestSaverConnDialerFailure(t *testing.T) {
 | |
| 	expected := errors.New("mocked error")
 | |
| 	saver := &trace.Saver{}
 | |
| 	dlr := dialer.SaverConnDialer{
 | |
| 		Dialer: dialer.FakeDialer{
 | |
| 			Err: expected,
 | |
| 		},
 | |
| 		Saver: saver,
 | |
| 	}
 | |
| 	conn, err := dlr.DialContext(context.Background(), "tcp", "www.google.com:443")
 | |
| 	if !errors.Is(err, expected) {
 | |
| 		t.Fatal("not the error we expected")
 | |
| 	}
 | |
| 	if conn != nil {
 | |
| 		t.Fatal("expected nil conn here")
 | |
| 	}
 | |
| }
 |