github.com/v2fly/v2ray-core/v5@v5.16.2-0.20240507031116-8191faa6e095/proxy/blackhole/blackhole_test.go (about)

     1  package blackhole_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/v2fly/v2ray-core/v5/common"
     8  	"github.com/v2fly/v2ray-core/v5/common/buf"
     9  	"github.com/v2fly/v2ray-core/v5/common/serial"
    10  	"github.com/v2fly/v2ray-core/v5/proxy/blackhole"
    11  	"github.com/v2fly/v2ray-core/v5/transport"
    12  	"github.com/v2fly/v2ray-core/v5/transport/pipe"
    13  )
    14  
    15  func TestBlackHoleHTTPResponse(t *testing.T) {
    16  	handler, err := blackhole.New(context.Background(), &blackhole.Config{
    17  		Response: serial.ToTypedMessage(&blackhole.HTTPResponse{}),
    18  	})
    19  	common.Must(err)
    20  
    21  	reader, writer := pipe.New(pipe.WithoutSizeLimit())
    22  
    23  	readerError := make(chan error)
    24  	var mb buf.MultiBuffer
    25  	go func() {
    26  		b, e := reader.ReadMultiBuffer()
    27  		mb = b
    28  		readerError <- e
    29  	}()
    30  
    31  	link := transport.Link{
    32  		Reader: reader,
    33  		Writer: writer,
    34  	}
    35  	common.Must(handler.Process(context.Background(), &link, nil))
    36  	common.Must(<-readerError)
    37  	if mb.IsEmpty() {
    38  		t.Error("expect http response, but nothing")
    39  	}
    40  }