Files
quic-go/internal/wire/new_token_frame_test.go
Marten Seemann 672f906a40 wire: migrate tests away from Ginkgo (#4643)
* wire: translate ACK frame tests

* wire: translate CONNECTION_CLOSE frame tests

* wire: translate DATA_BLOCKED frame tests

* wire: translate DATAGRAM frame tests

* wire: translate HANDSHAKE_DONE frame tests

* wire: translate MAX_DATA frame tests

* wire: translate MAX_STREAM_DATA frame tests

* wire: translate MAX_STREAMS frame tests

* wire: translate NEW_CONNECTION_ID frame tests

* wire: translate NEW_TOKEN frame tests

* wire: translate PATH_CHALLENGE frame tests

* wire: translate PATH_RESPONSE frame tests

* wire: translate PING frame test

* wire: translate RESET_STREAM frame tests

* wire: translate RETIRE_CONNECTION_ID frame tests

* wire: translate STOP_SENDING frame tests

* wire: translate STREAM_DATA_BLOCKED frame tests

* wire: translate STREAMS_BLOCKED frame tests

* wire: translate CRYPTO frame tests

* wire: translate STREAM frame tests

* wire: translate version negotiation tests

* wire: translate header tests

* wire: translate pool tests

* wire: translate frame logging tests

* wire: translate short header tests

* wire: translate framer parser tests

* wire: translate transport parameter tests
2024-09-12 19:27:39 -07:00

52 lines
1.8 KiB
Go

package wire
import (
"io"
"testing"
"github.com/quic-go/quic-go/internal/protocol"
"github.com/stretchr/testify/require"
)
func TestParseNewTokenFrame(t *testing.T) {
token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
data := encodeVarInt(uint64(len(token)))
data = append(data, token...)
f, l, err := parseNewTokenFrame(data, protocol.Version1)
require.NoError(t, err)
require.Equal(t, token, string(f.Token))
require.Equal(t, len(data), l)
}
func TestParseNewTokenFrameRejectsEmptyTokens(t *testing.T) {
data := encodeVarInt(0)
_, _, err := parseNewTokenFrame(data, protocol.Version1)
require.EqualError(t, err, "token must not be empty")
}
func TestParseNewTokenFrameErrorsOnEOFs(t *testing.T) {
token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
data := encodeVarInt(uint64(len(token)))
data = append(data, token...)
_, l, err := parseNewTokenFrame(data, protocol.Version1)
require.NoError(t, err)
require.Equal(t, len(data), l)
for i := range data {
_, _, err := parseNewTokenFrame(data[:i], protocol.Version1)
require.Equal(t, io.EOF, err)
}
}
func TestWriteNewTokenFrame(t *testing.T) {
token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
f := &NewTokenFrame{Token: []byte(token)}
b, err := f.Append(nil, protocol.Version1)
require.NoError(t, err)
expected := []byte{newTokenFrameType}
expected = append(expected, encodeVarInt(uint64(len(token)))...)
expected = append(expected, token...)
require.Equal(t, expected, b)
require.Equal(t, len(b), int(f.Length(protocol.Version1)))
}