| Index: net/websockets/websocket_basic_stream_test.cc
|
| diff --git a/net/websockets/websocket_basic_stream_test.cc b/net/websockets/websocket_basic_stream_test.cc
|
| index 85f6156ac048e62ce92a801f7730690cc6f7c477..4dcb8e2049b36c25f04045f7e7dd379d632c0dda 100644
|
| --- a/net/websockets/websocket_basic_stream_test.cc
|
| +++ b/net/websockets/websocket_basic_stream_test.cc
|
| @@ -828,6 +828,33 @@ TEST_F(WebSocketBasicStreamSocketChunkedReadTest, OneMegFrame) {
|
| }
|
| }
|
|
|
| +// A frame with reserved flag(s) set that arrives in chunks should only have the
|
| +// reserved flag(s) set on the first chunk when split.
|
| +TEST_F(WebSocketBasicStreamSocketChunkedReadTest, ReservedFlagCleared) {
|
| + static const char kReservedFlagFrame[] = "\x41\x05Hello";
|
| + const size_t kReservedFlagFrameSize = arraysize(kReservedFlagFrame) - 1;
|
| + const size_t kChunkSize = 5;
|
| +
|
| + CreateChunkedRead(ASYNC,
|
| + kReservedFlagFrame,
|
| + kReservedFlagFrameSize,
|
| + kChunkSize,
|
| + 2,
|
| + LAST_FRAME_BIG);
|
| +
|
| + TestCompletionCallback cb[2];
|
| + ASSERT_EQ(ERR_IO_PENDING, stream_->ReadFrames(&frames_, cb[0].callback()));
|
| + EXPECT_EQ(OK, cb[0].WaitForResult());
|
| + ASSERT_EQ(1U, frames_.size());
|
| + EXPECT_TRUE(frames_[0]->header.reserved1);
|
| +
|
| + frames_.clear();
|
| + ASSERT_EQ(ERR_IO_PENDING, stream_->ReadFrames(&frames_, cb[1].callback()));
|
| + EXPECT_EQ(OK, cb[1].WaitForResult());
|
| + ASSERT_EQ(1U, frames_.size());
|
| + EXPECT_FALSE(frames_[0]->header.reserved1);
|
| +}
|
| +
|
| // Check that writing a frame all at once works.
|
| TEST_F(WebSocketBasicStreamSocketWriteTest, WriteAtOnce) {
|
| MockWrite writes[] = {MockWrite(SYNCHRONOUS, kWriteFrame, kWriteFrameSize)};
|
|
|