diff --git a/common/platform/platform_test.go b/common/platform/platform_test.go index bfe0445bc..00221c768 100644 --- a/common/platform/platform_test.go +++ b/common/platform/platform_test.go @@ -54,3 +54,16 @@ func TestGetAssetLocation(t *testing.T) { os.Setenv("v2ray.location.asset", "/v2ray") assert(GetAssetLocation("t"), Equals, "/v2ray/t") } + +func TestGetPluginLocation(t *testing.T) { + assert := With(t) + + exec, err := os.Executable() + assert(err, IsNil) + + loc := GetPluginDirectory() + assert(loc, Equals, filepath.Join(filepath.Dir(exec), "plugins")) + + os.Setenv("V2RAY_LOCATION_PLUGIN", "/v2ray") + assert(GetPluginDirectory(), Equals, "/v2ray") +} diff --git a/common/protocol/id_test.go b/common/protocol/id_test.go index 81bf50638..59b4a0055 100644 --- a/common/protocol/id_test.go +++ b/common/protocol/id_test.go @@ -15,3 +15,13 @@ func TestCmdKey(t *testing.T) { id := NewID(uuid.New()) assert(predicate.BytesAll(id.CmdKey(), 0), IsFalse) } + +func TestIdEquals(t *testing.T) { + assert := With(t) + + id1 := NewID(uuid.New()) + id2 := NewID(id1.UUID()) + + assert(id1.Equals(id2), IsTrue) + assert(id1.String(), Equals, id2.String()) +} diff --git a/common/protocol/server_spec_test.go b/common/protocol/server_spec_test.go index 0c1a6252b..b22647ad9 100644 --- a/common/protocol/server_spec_test.go +++ b/common/protocol/server_spec_test.go @@ -4,7 +4,11 @@ import ( "testing" "time" + "v2ray.com/core/common/net" . "v2ray.com/core/common/protocol" + "v2ray.com/core/common/serial" + "v2ray.com/core/common/uuid" + "v2ray.com/core/proxy/vmess" . "v2ray.com/ext/assert" ) @@ -29,3 +33,33 @@ func TestTimeoutValidStrategy(t *testing.T) { strategy.Invalidate() assert(strategy.IsValid(), IsFalse) } + +func TestUserInServerSpec(t *testing.T) { + assert := With(t) + + uuid1 := uuid.New() + uuid2 := uuid.New() + + spec := NewServerSpec(net.Destination{}, AlwaysValid(), &User{ + Email: "test1@v2ray.com", + Account: serial.ToTypedMessage(&vmess.Account{Id: uuid1.String()}), + }) + assert(spec.HasUser(&User{ + Email: "test1@v2ray.com", + Account: serial.ToTypedMessage(&vmess.Account{Id: uuid2.String()}), + }), IsFalse) + + spec.AddUser(&User{Email: "test2@v2ray.com"}) + assert(spec.HasUser(&User{ + Email: "test1@v2ray.com", + Account: serial.ToTypedMessage(&vmess.Account{Id: uuid1.String()}), + }), IsTrue) +} + +func TestPickUser(t *testing.T) { + assert := With(t) + + spec := NewServerSpec(net.Destination{}, AlwaysValid(), &User{Email: "test1@v2ray.com"}, &User{Email: "test2@v2ray.com"}, &User{Email: "test3@v2ray.com"}) + user := spec.PickUser() + assert(user.Email, HasSuffix, "@v2ray.com") +}