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.
73 lines
1.3 KiB
73 lines
1.3 KiB
package strmatcher_test |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/xtls/xray-core/common" |
|
. "github.com/xtls/xray-core/common/strmatcher" |
|
) |
|
|
|
func TestMatcher(t *testing.T) { |
|
cases := []struct { |
|
pattern string |
|
mType Type |
|
input string |
|
output bool |
|
}{ |
|
{ |
|
pattern: "example.com", |
|
mType: Domain, |
|
input: "www.example.com", |
|
output: true, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Domain, |
|
input: "example.com", |
|
output: true, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Domain, |
|
input: "www.fxample.com", |
|
output: false, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Domain, |
|
input: "xample.com", |
|
output: false, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Domain, |
|
input: "xexample.com", |
|
output: false, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Full, |
|
input: "example.com", |
|
output: true, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Full, |
|
input: "xexample.com", |
|
output: false, |
|
}, |
|
{ |
|
pattern: "example.com", |
|
mType: Regex, |
|
input: "examplexcom", |
|
output: true, |
|
}, |
|
} |
|
for _, test := range cases { |
|
matcher, err := test.mType.New(test.pattern) |
|
common.Must(err) |
|
if m := matcher.Match(test.input); m != test.output { |
|
t.Error("unexpected output: ", m, " for test case ", test) |
|
} |
|
} |
|
}
|
|
|