| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package protocol_test
- 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"
- )
- func TestAlwaysValidStrategy(t *testing.T) {
- assert := With(t)
- strategy := AlwaysValid()
- assert(strategy.IsValid(), IsTrue)
- strategy.Invalidate()
- assert(strategy.IsValid(), IsTrue)
- }
- func TestTimeoutValidStrategy(t *testing.T) {
- assert := With(t)
- strategy := BeforeTime(time.Now().Add(2 * time.Second))
- assert(strategy.IsValid(), IsTrue)
- time.Sleep(3 * time.Second)
- assert(strategy.IsValid(), IsFalse)
- strategy = BeforeTime(time.Now().Add(2 * time.Second))
- 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")
- }
|