| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- package protocol_test
 
- import (
 
- 	"testing"
 
- 	"time"
 
- 	v2net "github.com/v2ray/v2ray-core/common/net"
 
- 	. "github.com/v2ray/v2ray-core/common/protocol"
 
- 	"github.com/v2ray/v2ray-core/testing/assert"
 
- )
 
- type TestAccount struct {
 
- 	id int
 
- }
 
- func (this *TestAccount) Equals(account Account) bool {
 
- 	return account.(*TestAccount).id == this.id
 
- }
 
- func TestServerSpecUser(t *testing.T) {
 
- 	assert := assert.On(t)
 
- 	account := &TestAccount{
 
- 		id: 0,
 
- 	}
 
- 	user := NewUser(UserLevel(0), "")
 
- 	user.Account = account
 
- 	rec := NewServerSpec(v2net.TCPDestination(v2net.DomainAddress("v2ray.com"), 80), AlwaysValid(), user)
 
- 	assert.Bool(rec.HasUser(user)).IsTrue()
 
- 	account2 := &TestAccount{
 
- 		id: 1,
 
- 	}
 
- 	user2 := NewUser(UserLevel(0), "")
 
- 	user2.Account = account2
 
- 	assert.Bool(rec.HasUser(user2)).IsFalse()
 
- 	rec.AddUser(user2)
 
- 	assert.Bool(rec.HasUser(user2)).IsTrue()
 
- }
 
- func TestAlwaysValidStrategy(t *testing.T) {
 
- 	assert := assert.On(t)
 
- 	strategy := AlwaysValid()
 
- 	assert.Bool(strategy.IsValid()).IsTrue()
 
- 	strategy.Invalidate()
 
- 	assert.Bool(strategy.IsValid()).IsTrue()
 
- }
 
- func TestTimeoutValidStrategy(t *testing.T) {
 
- 	assert := assert.On(t)
 
- 	strategy := BeforeTime(time.Now().Add(2 * time.Second))
 
- 	assert.Bool(strategy.IsValid()).IsTrue()
 
- 	time.Sleep(3 * time.Second)
 
- 	assert.Bool(strategy.IsValid()).IsFalse()
 
- 	strategy = BeforeTime(time.Now().Add(2 * time.Second))
 
- 	strategy.Invalidate()
 
- 	assert.Bool(strategy.IsValid()).IsFalse()
 
- }
 
 
  |