12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- 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)
- }
- }
- }
|