1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-22 01:57:12 -05:00

more test case for router

This commit is contained in:
Darien Raymond 2018-10-22 20:59:01 +02:00
parent 39134c1b82
commit ed2779e333
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
2 changed files with 42 additions and 7 deletions

View File

@ -4,10 +4,9 @@ import (
"context"
"strings"
"v2ray.com/core/common/session"
"v2ray.com/core/app/dispatcher"
"v2ray.com/core/common/net"
"v2ray.com/core/common/session"
"v2ray.com/core/common/strmatcher"
"v2ray.com/core/proxy"
)

View File

@ -31,8 +31,6 @@ func withInbound(inbound *session.Inbound) context.Context {
}
func TestRoutingRule(t *testing.T) {
assert := With(t)
type ruleTest struct {
input context.Context
output bool
@ -126,6 +124,26 @@ func TestRoutingRule(t *testing.T) {
},
},
},
{
rule: &RoutingRule{
SourceCidr: []*CIDR{
{
Ip: []byte{192, 168, 0, 0},
Prefix: 16,
},
},
},
test: []ruleTest{
{
input: withInbound(&session.Inbound{Source: net.TCPDestination(net.ParseAddress("192.168.0.1"), 80)}),
output: true,
},
{
input: withInbound(&session.Inbound{Source: net.TCPDestination(net.ParseAddress("10.0.0.1"), 80)}),
output: false,
},
},
},
{
rule: &RoutingRule{
UserEmail: []string{
@ -158,14 +176,32 @@ func TestRoutingRule(t *testing.T) {
},
},
},
{
rule: &RoutingRule{
InboundTag: []string{"test", "test1"},
},
test: []ruleTest{
{
input: withInbound(&session.Inbound{Tag: "test"}),
output: true,
},
{
input: withInbound(&session.Inbound{Tag: "test2"}),
output: false,
},
},
},
}
for _, test := range cases {
cond, err := test.rule.BuildCondition()
assert(err, IsNil)
common.Must(err)
for _, t := range test.test {
assert(cond.Apply(t.input), Equals, t.output)
for _, subtest := range test.test {
actual := cond.Apply(subtest.input)
if actual != subtest.output {
t.Error("test case failed: ", subtest.input, " expected ", subtest.output, " but got ", actual)
}
}
}
}