mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.2 KiB
80 lines
2.2 KiB
package outbound_test |
|
|
|
import ( |
|
"context" |
|
"testing" |
|
|
|
"github.com/xtls/xray-core/app/policy" |
|
. "github.com/xtls/xray-core/app/proxyman/outbound" |
|
"github.com/xtls/xray-core/app/stats" |
|
"github.com/xtls/xray-core/common/net" |
|
"github.com/xtls/xray-core/common/serial" |
|
core "github.com/xtls/xray-core/core" |
|
"github.com/xtls/xray-core/features/outbound" |
|
"github.com/xtls/xray-core/proxy/freedom" |
|
"github.com/xtls/xray-core/transport/internet/stat" |
|
) |
|
|
|
func TestInterfaces(t *testing.T) { |
|
_ = (outbound.Handler)(new(Handler)) |
|
_ = (outbound.Manager)(new(Manager)) |
|
} |
|
|
|
const xrayKey core.XrayKey = 1 |
|
|
|
func TestOutboundWithoutStatCounter(t *testing.T) { |
|
config := &core.Config{ |
|
App: []*serial.TypedMessage{ |
|
serial.ToTypedMessage(&stats.Config{}), |
|
serial.ToTypedMessage(&policy.Config{ |
|
System: &policy.SystemPolicy{ |
|
Stats: &policy.SystemPolicy_Stats{ |
|
InboundUplink: true, |
|
}, |
|
}, |
|
}), |
|
}, |
|
} |
|
|
|
v, _ := core.New(config) |
|
v.AddFeature((outbound.Manager)(new(Manager))) |
|
ctx := context.WithValue(context.Background(), xrayKey, v) |
|
h, _ := NewHandler(ctx, &core.OutboundHandlerConfig{ |
|
Tag: "tag", |
|
ProxySettings: serial.ToTypedMessage(&freedom.Config{}), |
|
}) |
|
conn, _ := h.(*Handler).Dial(ctx, net.TCPDestination(net.DomainAddress("localhost"), 13146)) |
|
_, ok := conn.(*stat.CounterConnection) |
|
if ok { |
|
t.Errorf("Expected conn to not be CounterConnection") |
|
} |
|
} |
|
|
|
func TestOutboundWithStatCounter(t *testing.T) { |
|
config := &core.Config{ |
|
App: []*serial.TypedMessage{ |
|
serial.ToTypedMessage(&stats.Config{}), |
|
serial.ToTypedMessage(&policy.Config{ |
|
System: &policy.SystemPolicy{ |
|
Stats: &policy.SystemPolicy_Stats{ |
|
OutboundUplink: true, |
|
OutboundDownlink: true, |
|
}, |
|
}, |
|
}), |
|
}, |
|
} |
|
|
|
v, _ := core.New(config) |
|
v.AddFeature((outbound.Manager)(new(Manager))) |
|
ctx := context.WithValue(context.Background(), xrayKey, v) |
|
h, _ := NewHandler(ctx, &core.OutboundHandlerConfig{ |
|
Tag: "tag", |
|
ProxySettings: serial.ToTypedMessage(&freedom.Config{}), |
|
}) |
|
conn, _ := h.(*Handler).Dial(ctx, net.TCPDestination(net.DomainAddress("localhost"), 13146)) |
|
_, ok := conn.(*stat.CounterConnection) |
|
if !ok { |
|
t.Errorf("Expected conn to be CounterConnection") |
|
} |
|
}
|
|
|