public void With_WebSocketFrameHeaderFlags_Fail_ParseBigHeader_When_Overflows_Int64() { Byte[] buffer = new Byte[10]; buffer[0] = 129; buffer[1] = 127; UInt64 ilength = (UInt64)Int64.MaxValue + 1; var length = BitConverter.GetBytes(ilength); Array.Reverse(length); length.CopyTo(buffer, 2); try { WebSocketFrameHeader header; Assert.IsTrue(WebSocketFrameHeader.TryParse(buffer, 0, 10, new ArraySegment <byte>(new Byte[4], 0, 4), out header)); Assert.AreEqual(10, header.HeaderLength); } catch (WebSocketException) { } catch (Exception) { Assert.Fail("Should throw WebSocketException"); } }
public void With_WebSocketFrameHeaderFlags_Can_ParseSmallHeader() { Byte[] buffer = new Byte[6]; buffer[0] = 129; buffer[1] = 101; WebSocketFrameHeader header; Assert.IsTrue(WebSocketFrameHeader.TryParse(buffer, 0, 2, new ArraySegment <byte>(new Byte[4], 0, 4), out header)); Assert.IsNotNull(header); Assert.IsTrue(header.Flags.FIN); Assert.IsFalse(header.Flags.MASK); Assert.AreEqual((UInt64)101, header.ContentLength); }
public void ParseSmallHeader() { var buffer = new byte[6]; buffer[0] = 129; buffer[1] = 101; WebSocketFrameHeader header; Assert.True(WebSocketFrameHeader.TryParse(buffer, 0, 2, out header)); Assert.NotNull(header); Assert.True(header.Flags.FIN); Assert.False(header.Flags.MASK); Assert.Equal(2, header.HeaderLength); Assert.Equal(101, header.ContentLength); }
public void With_WebSocketFrameHeaderFlags_Fail_ParseBigHeader_When_Overflows_Int64() { Byte[] buffer = new Byte[10]; buffer[0] = 129; buffer[1] = 127; UInt64 ilength = (UInt64)Int64.MaxValue + 1; var length = BitConverter.GetBytes(ilength); Array.Reverse(length); length.CopyTo(buffer, 2); WebSocketFrameHeader header; Assert.IsTrue(WebSocketFrameHeader.TryParse(buffer, 0, 2, new ArraySegment <byte>(new Byte[4], 0, 4), out header)); }
public void With_WebSocketFrameHeaderFlags_Can_ParseBigHeader() { Byte[] buffer = new Byte[10]; buffer[0] = 129; buffer[1] = 127; var length = BitConverter.GetBytes(Int64.MaxValue); Array.Reverse(length); length.CopyTo(buffer, 2); WebSocketFrameHeader header; Assert.IsTrue(WebSocketFrameHeader.TryParse(buffer, 0, 2, new ArraySegment <byte>(new Byte[4], 0, 4), out header)); Assert.IsNotNull(header); Assert.IsTrue(header.Flags.FIN); Assert.IsFalse(header.Flags.MASK); Assert.AreEqual(Int64.MaxValue, header.ContentLength); }
public void FailToParseBigHeaderWhenOverflowsInt64() { var buffer = new byte[10]; buffer[0] = 129; buffer[1] = 127; var ilength = (ulong)long.MaxValue + 1; var length = BitConverter.GetBytes(ilength); Array.Reverse(length); length.CopyTo(buffer, 2); Assert.Throws <WebSocketException>(() => { WebSocketFrameHeader header; Assert.True(WebSocketFrameHeader.TryParse(buffer, 0, 10, out header)); Assert.Equal(10, header.HeaderLength); }); }
public void With_WebSocketFrameHeaderFlags_Can_ParseMediumHeader() { Byte[] buffer = new Byte[6]; buffer[0] = 129; buffer[1] = 126; UInt16 ilength = (UInt16)Int16.MaxValue + 1; var length = BitConverter.GetBytes(ilength); Array.Reverse(length); length.CopyTo(buffer, 2); WebSocketFrameHeader header; Assert.True(WebSocketFrameHeader.TryParse(buffer, 0, 2, new ArraySegment <byte>(new Byte[4], 0, 4), out header)); Assert.NotNull(header); Assert.True(header.Flags.FIN); Assert.False(header.Flags.MASK); Assert.AreEqual((Int64)ilength, header.ContentLength); }
public void ParseBigHeader() { var buffer = new byte[10]; buffer[0] = 129; buffer[1] = 127; var length = BitConverter.GetBytes(long.MaxValue); Array.Reverse(length); length.CopyTo(buffer, 2); WebSocketFrameHeader header; Assert.True(WebSocketFrameHeader.TryParse(buffer, 0, 10, out header)); Assert.NotNull(header); Assert.True(header.Flags.FIN); Assert.False(header.Flags.MASK); Assert.Equal(10, header.HeaderLength); Assert.Equal(long.MaxValue, header.ContentLength); }
public void ParseMediumMaxHeader() { var buffer = new byte[6]; buffer[0] = 129; buffer[1] = 126; var ilength = ushort.MaxValue; var length = BitConverter.GetBytes(ilength); Array.Reverse(length); length.CopyTo(buffer, 2); WebSocketFrameHeader header; Assert.True(WebSocketFrameHeader.TryParse(buffer, 0, 4, out header)); Assert.NotNull(header); Assert.True(header.Flags.FIN); Assert.False(header.Flags.MASK); Assert.Equal(4, header.HeaderLength); Assert.Equal(ilength, header.ContentLength); }