| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package protocol
- import (
- "testing"
- v2net "github.com/v2ray/v2ray-core/common/net"
- "github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
- "github.com/v2ray/v2ray-core/testing/mocks"
- "github.com/v2ray/v2ray-core/testing/unit"
- )
- func TestVMessUDPReadWrite(t *testing.T) {
- assert := unit.Assert(t)
- userId, err := user.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
- assert.Error(err).IsNil()
- userSet := mocks.MockUserSet{[]user.ID{}, make(map[string]int), make(map[string]int64)}
- userSet.AddUser(user.User{userId})
- message := &VMessUDP{
- user: userId,
- version: byte(0x01),
- address: v2net.DomainAddress("v2ray.com", 8372),
- data: []byte("An UDP message."),
- }
- mockTime := int64(1823730)
- buffer := message.ToBytes(user.NewTimeHash(user.HMACHash{}), func(base int64, delta int) int64 { return mockTime }, nil)
- userSet.UserHashes[string(buffer[:16])] = 0
- userSet.Timestamps[string(buffer[:16])] = mockTime
- messageRestored, err := ReadVMessUDP(buffer, &userSet)
- assert.Error(err).IsNil()
- assert.String(messageRestored.user.String).Equals(message.user.String)
- assert.Byte(messageRestored.version).Equals(message.version)
- assert.String(messageRestored.address.String()).Equals(message.address.String())
- assert.Bytes(messageRestored.data).Equals(message.data)
- }
|