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