func TestSingleStringPort(t *testing.T) { assert := assert.On(t) var portRange PortRange err := json.Unmarshal([]byte("\"1234\""), &portRange) assert.Error(err).IsNil() assert.Uint16(portRange.From.Value()).Equals(uint16(1234)) assert.Uint16(portRange.To.Value()).Equals(uint16(1234)) }
func TestStringPairPort(t *testing.T) { v2testing.Current(t) var portRange PortRange err := json.Unmarshal([]byte("\"1234-5678\""), &portRange) assert.Error(err).IsNil() assert.Uint16(portRange.From.Value()).Equals(uint16(1234)) assert.Uint16(portRange.To.Value()).Equals(uint16(5678)) }
func TestIntPort(t *testing.T) { v2testing.Current(t) var portRange PortRange err := json.Unmarshal([]byte("1234"), &portRange) assert.Error(err).IsNil() assert.Uint16(portRange.from.Value()).Equals(uint16(1234)) assert.Uint16(portRange.to.Value()).Equals(uint16(1234)) }
func TestACKSegment(t *testing.T) { assert := assert.On(t) seg := &AckSegment{ Conv: 1, ReceivingWindow: 2, ReceivingNext: 3, Count: 5, NumberList: []uint32{1, 3, 5, 7, 9}, TimestampList: []uint32{2, 4, 6, 8, 10}, } nBytes := seg.ByteSize() bytes := seg.Bytes(nil) assert.Int(len(bytes)).Equals(nBytes) iseg, _ := ReadSegment(bytes) seg2 := iseg.(*AckSegment) assert.Uint16(seg2.Conv).Equals(seg.Conv) assert.Uint32(seg2.ReceivingWindow).Equals(seg.ReceivingWindow) assert.Uint32(seg2.ReceivingNext).Equals(seg.ReceivingNext) assert.Byte(seg2.Count).Equals(seg.Count) for i := byte(0); i < seg2.Count; i++ { assert.Uint32(seg2.TimestampList[i]).Equals(seg.TimestampList[i]) assert.Uint32(seg2.NumberList[i]).Equals(seg.NumberList[i]) } }
func TestSwitchAccount(t *testing.T) { v2testing.Current(t) sa := &protocol.CommandSwitchAccount{ Port: 1234, ID: uuid.New(), AlterIds: 1024, Level: 128, ValidMin: 16, } buffer := alloc.NewBuffer().Clear() err := MarshalCommand(sa, buffer) assert.Error(err).IsNil() cmd, err := UnmarshalCommand(1, buffer.Value[2:]) assert.Error(err).IsNil() sa2, ok := cmd.(*protocol.CommandSwitchAccount) assert.Bool(ok).IsTrue() assert.Pointer(sa.Host).IsNil() assert.Pointer(sa2.Host).IsNil() netassert.Port(sa.Port).Equals(sa2.Port) assert.String(sa.ID).Equals(sa2.ID.String()) assert.Uint16(sa.AlterIds.Value()).Equals(sa2.AlterIds.Value()) assert.Byte(byte(sa.Level)).Equals(byte(sa2.Level)) assert.Byte(sa.ValidMin).Equals(sa2.ValidMin) }
func TestSwitchAccount(t *testing.T) { v2testing.Current(t) sa := &SwitchAccount{ Port: 1234, ID: uuid.New(), AlterIds: 1024, Level: 128, ValidMin: 16, } cmd, err := CreateResponseCommand(1) assert.Error(err).IsNil() buffer := bytes.NewBuffer(make([]byte, 0, 1024)) sa.Marshal(buffer) cmd.Unmarshal(buffer.Bytes()) sa2, ok := cmd.(*SwitchAccount) assert.Bool(ok).IsTrue() assert.Pointer(sa.Host).IsNil() assert.Pointer(sa2.Host).IsNil() netassert.Port(sa.Port).Equals(sa2.Port) assert.String(sa.ID).Equals(sa2.ID.String()) assert.Uint16(sa.AlterIds.Value()).Equals(sa2.AlterIds.Value()) assert.Byte(byte(sa.Level)).Equals(byte(sa2.Level)) assert.Byte(sa.ValidMin).Equals(sa2.ValidMin) }
func TestSwitchAccount(t *testing.T) { v2testing.Current(t) sa := &SwitchAccount{ Port: 1234, ID: uuid.New(), AlterIds: 1024, ValidUntil: time.Now(), } cmd, err := CreateResponseCommand(1) assert.Error(err).IsNil() buffer := bytes.NewBuffer(make([]byte, 0, 1024)) nBytes, err := sa.Marshal(buffer) assert.Error(err).IsNil() assert.Int(nBytes).Equals(buffer.Len()) cmd.Unmarshal(buffer.Bytes()) sa2, ok := cmd.(*SwitchAccount) assert.Bool(ok).IsTrue() netassert.Port(sa.Port).Equals(sa2.Port) assert.String(sa.ID).Equals(sa2.ID.String()) assert.Uint16(sa.AlterIds.Value()).Equals(sa2.AlterIds.Value()) assert.Int64(sa.ValidUntil.Unix()).Equals(sa2.ValidUntil.Unix()) }
func TestServerSampleConfig(t *testing.T) { v2testing.Current(t) // TODO: fix for Windows baseDir := "$GOPATH/src/github.com/v2ray/v2ray-core/release/config" pointConfig, err := json.LoadConfig(filepath.Join(baseDir, "vpoint_vmess_freedom.json")) assert.Error(err).IsNil() assert.Uint16(pointConfig.Port().Value()).Positive() assert.Pointer(pointConfig.InboundConfig()).IsNotNil() assert.Pointer(pointConfig.OutboundConfig()).IsNotNil() assert.StringLiteral(pointConfig.InboundConfig().Protocol()).Equals("vmess") assert.Pointer(pointConfig.InboundConfig().Settings()).IsNotNil() assert.StringLiteral(pointConfig.OutboundConfig().Protocol()).Equals("freedom") assert.Pointer(pointConfig.OutboundConfig().Settings()).IsNotNil() }
func TestDataSegment(t *testing.T) { assert := assert.On(t) seg := &DataSegment{ Conv: 1, Timestamp: 3, Number: 4, SendingNext: 5, Data: alloc.NewSmallBuffer().Clear().Append([]byte{'a', 'b', 'c', 'd'}), } nBytes := seg.ByteSize() bytes := seg.Bytes(nil) assert.Int(len(bytes)).Equals(nBytes) iseg, _ := ReadSegment(bytes) seg2 := iseg.(*DataSegment) assert.Uint16(seg2.Conv).Equals(seg.Conv) assert.Uint32(seg2.Timestamp).Equals(seg.Timestamp) assert.Uint32(seg2.SendingNext).Equals(seg.SendingNext) assert.Uint32(seg2.Number).Equals(seg.Number) assert.Bytes(seg2.Data.Value).Equals(seg.Data.Value) }