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