| Index: net/websockets/websocket_channel_test.cc
|
| diff --git a/net/websockets/websocket_channel_test.cc b/net/websockets/websocket_channel_test.cc
|
| index 464c30e161957aa83ed35e446209d65fc7f89176..afabcd511ffd74e2be08c8424880562a5600f14b 100644
|
| --- a/net/websockets/websocket_channel_test.cc
|
| +++ b/net/websockets/websocket_channel_test.cc
|
| @@ -104,16 +104,17 @@ using ::testing::_;
|
|
|
| // A selection of characters that have traditionally been mangled in some
|
| // environment or other, for testing 8-bit cleanliness.
|
| -const char kBinaryBlob[] = {'\n', '\r', // BACKWARDS CRNL
|
| - '\0', // nul
|
| - '\x7F', // DEL
|
| - '\x80', '\xFF', // NOT VALID UTF-8
|
| - '\x1A', // Control-Z, EOF on DOS
|
| - '\x03', // Control-C
|
| - '\x04', // EOT, special for Unix terms
|
| - '\x1B', // ESC, often special
|
| - '\b', // backspace
|
| - '\'', // single-quote, special in PHP
|
| +const char kBinaryBlob[] = {
|
| + '\n', '\r', // BACKWARDS CRNL
|
| + '\0', // nul
|
| + '\x7F', // DEL
|
| + '\x80', '\xFF', // NOT VALID UTF-8
|
| + '\x1A', // Control-Z, EOF on DOS
|
| + '\x03', // Control-C
|
| + '\x04', // EOT, special for Unix terms
|
| + '\x1B', // ESC, often special
|
| + '\b', // backspace
|
| + '\'', // single-quote, special in PHP
|
| };
|
| const size_t kBinaryBlobSize = arraysize(kBinaryBlob);
|
|
|
| @@ -139,7 +140,7 @@ const ChannelState CHANNEL_DELETED = WebSocketEventInterface::CHANNEL_DELETED;
|
|
|
| // This typedef mainly exists to avoid having to repeat the "NOLINT" incantation
|
| // all over the place.
|
| -typedef StrictMock< MockFunction<void(int)> > Checkpoint; // NOLINT
|
| +typedef StrictMock<MockFunction<void(int)> > Checkpoint; // NOLINT
|
|
|
| // This mock is for testing expectations about how the EventInterface is used.
|
| class MockWebSocketEventInterface : public WebSocketEventInterface {
|
| @@ -153,9 +154,9 @@ class MockWebSocketEventInterface : public WebSocketEventInterface {
|
| MOCK_METHOD3(OnDataFrame,
|
| ChannelState(bool,
|
| WebSocketMessageType,
|
| - const std::vector<char>&)); // NOLINT
|
| - MOCK_METHOD1(OnFlowControl, ChannelState(int64)); // NOLINT
|
| - MOCK_METHOD0(OnClosingHandshake, ChannelState(void)); // NOLINT
|
| + const std::vector<char>&)); // NOLINT
|
| + MOCK_METHOD1(OnFlowControl, ChannelState(int64)); // NOLINT
|
| + MOCK_METHOD0(OnClosingHandshake, ChannelState(void)); // NOLINT
|
| MOCK_METHOD1(OnFailChannel, ChannelState(const std::string&)); // NOLINT
|
| MOCK_METHOD3(OnDropChannel,
|
| ChannelState(bool, uint16, const std::string&)); // NOLINT
|
| @@ -172,7 +173,7 @@ class MockWebSocketEventInterface : public WebSocketEventInterface {
|
| return CHANNEL_ALIVE;
|
| }
|
|
|
| - MOCK_METHOD0(OnStartOpeningHandshakeCalled, void()); // NOLINT
|
| + MOCK_METHOD0(OnStartOpeningHandshakeCalled, void()); // NOLINT
|
| MOCK_METHOD0(OnFinishOpeningHandshakeCalled, void()); // NOLINT
|
| };
|
|
|
| @@ -418,7 +419,9 @@ class TestClosure {
|
| };
|
|
|
| // A GoogleMock action to run a Closure.
|
| -ACTION_P(InvokeClosure, closure) { closure.Run(); }
|
| +ACTION_P(InvokeClosure, closure) {
|
| + closure.Run();
|
| +}
|
|
|
| // A GoogleMock action to run a Closure and return CHANNEL_DELETED.
|
| ACTION_P(InvokeClosureReturnDeleted, closure) {
|
| @@ -937,8 +940,7 @@ class WebSocketChannelStreamTest : public WebSocketChannelTest {
|
|
|
| // Fixture for tests which test UTF-8 validation of sent Text frames via the
|
| // EventInterface.
|
| -class WebSocketChannelSendUtf8Test
|
| - : public WebSocketChannelEventInterfaceTest {
|
| +class WebSocketChannelSendUtf8Test : public WebSocketChannelEventInterfaceTest {
|
| public:
|
| virtual void SetUp() {
|
| set_stream(make_scoped_ptr(new WriteableFakeWebSocketStream));
|
| @@ -946,8 +948,7 @@ class WebSocketChannelSendUtf8Test
|
| // whether these methods are called or not.
|
| EXPECT_CALL(*event_interface_, OnAddChannelResponse(_, _, _))
|
| .Times(AnyNumber());
|
| - EXPECT_CALL(*event_interface_, OnFlowControl(_))
|
| - .Times(AnyNumber());
|
| + EXPECT_CALL(*event_interface_, OnFlowControl(_)).Times(AnyNumber());
|
| }
|
| };
|
|
|
| @@ -1075,8 +1076,8 @@ TEST_F(WebSocketChannelDeletingTest, OnClosingHandshakeSync) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Success")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Success")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| deleting_ = EVENT_ON_CLOSING_HANDSHAKE;
|
| @@ -1088,8 +1089,8 @@ TEST_F(WebSocketChannelDeletingTest, OnClosingHandshakeAsync) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Success")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Success")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| deleting_ = EVENT_ON_CLOSING_HANDSHAKE;
|
| @@ -1203,8 +1204,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToMaskedFrame) {
|
| TEST_F(WebSocketChannelDeletingTest, FailChannelDueToBadControlFrame) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| - static const InitFrame frames[] = {
|
| - {FINAL_FRAME, 0xF, NOT_MASKED, ""}};
|
| + static const InitFrame frames[] = {{FINAL_FRAME, 0xF, NOT_MASKED, ""}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| deleting_ = EVENT_ON_FAIL_CHANNEL;
|
| @@ -1217,8 +1217,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToBadControlFrame) {
|
| TEST_F(WebSocketChannelDeletingTest, FailChannelDueToBadControlFrameNull) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| - static const InitFrame frames[] = {
|
| - {FINAL_FRAME, 0xF, NOT_MASKED, NULL}};
|
| + static const InitFrame frames[] = {{FINAL_FRAME, 0xF, NOT_MASKED, NULL}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| deleting_ = EVENT_ON_FAIL_CHANNEL;
|
| @@ -1285,8 +1284,8 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueInvalidCloseReason) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "\xFF")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "\xFF")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| deleting_ = EVENT_ON_FAIL_CHANNEL;
|
| @@ -1371,8 +1370,8 @@ TEST_F(WebSocketChannelEventInterfaceTest, CloseAfterHandshake) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(SERVER_ERROR, "Internal Server Error")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(SERVER_ERROR, "Internal Server Error")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| stream->PrepareReadFramesError(ReadableFakeWebSocketStream::SYNC,
|
| ERR_CONNECTION_CLOSED);
|
| @@ -1478,16 +1477,16 @@ TEST_F(WebSocketChannelEventInterfaceTest, FragmentedMessage) {
|
| // about that.
|
| static const InitFrame frames1[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, "THREE"},
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, " "}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + " "}};
|
| static const InitFrame frames2[] = {
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "SMALL"}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "SMALL"}};
|
| static const InitFrame frames3[] = {
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, " "},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "FRAMES"}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + " "},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "FRAMES"}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames1);
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames2);
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames3);
|
| @@ -1627,14 +1626,14 @@ TEST_F(WebSocketChannelEventInterfaceTest, ControlFrameInDataMessage) {
|
| new ReadableFakeWebSocketStream);
|
| // We have one message of type Text split into two frames. In the middle is a
|
| // control message of type Pong.
|
| - static const InitFrame frames1[] = {
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, "SPLIT "}};
|
| + static const InitFrame frames1[] = {{NOT_FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodeText,
|
| + NOT_MASKED, "SPLIT "}};
|
| static const InitFrame frames2[] = {
|
| {FINAL_FRAME, WebSocketFrameHeader::kOpCodePong, NOT_MASKED, ""}};
|
| static const InitFrame frames3[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "MESSAGE"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "MESSAGE"}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames1);
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames2);
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames3);
|
| @@ -1980,11 +1979,8 @@ TEST_F(WebSocketChannelEventInterfaceTest, FailJustAfterHandshake) {
|
| scoped_refptr<HttpResponseHeaders> response_headers(
|
| new HttpResponseHeaders(""));
|
| scoped_ptr<WebSocketHandshakeResponseInfo> response_info(
|
| - new WebSocketHandshakeResponseInfo(url,
|
| - 200,
|
| - "OK",
|
| - response_headers,
|
| - base::Time()));
|
| + new WebSocketHandshakeResponseInfo(
|
| + url, 200, "OK", response_headers, base::Time()));
|
| connect_delegate->OnStartOpeningHandshake(request_info.Pass());
|
| connect_delegate->OnFinishOpeningHandshake(response_info.Pass());
|
|
|
| @@ -2041,8 +2037,8 @@ TEST_F(WebSocketChannelEventInterfaceTest, ClosePayloadReservedStatusMessage) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(ABNORMAL_CLOSURE, "Not valid on wire")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(ABNORMAL_CLOSURE, "Not valid on wire")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| EXPECT_CALL(*event_interface_, OnAddChannelResponse(false, _, _));
|
| @@ -2061,16 +2057,15 @@ TEST_F(WebSocketChannelEventInterfaceTest, ClosePayloadInvalidReason) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "\xFF")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "\xFF")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| EXPECT_CALL(*event_interface_, OnAddChannelResponse(false, _, _));
|
| EXPECT_CALL(*event_interface_, OnFlowControl(_));
|
| EXPECT_CALL(
|
| *event_interface_,
|
| - OnFailChannel(
|
| - "Received a broken close frame containing invalid UTF-8."));
|
| + OnFailChannel("Received a broken close frame containing invalid UTF-8."));
|
|
|
| CreateChannelAndConnectSuccessfully();
|
| }
|
| @@ -2081,8 +2076,7 @@ TEST_F(WebSocketChannelEventInterfaceTest, ReservedBitsMustNotBeSet) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, "sakana"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, "sakana"}};
|
| // It is not worth adding support for reserved bits to InitFrame just for this
|
| // one test, so set the bit manually.
|
| ScopedVector<WebSocketFrame> raw_frames = CreateFrameVector(frames);
|
| @@ -2140,8 +2134,8 @@ TEST_F(WebSocketChannelEventInterfaceTest,
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::ASYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| EXPECT_CALL(*event_interface_, OnAddChannelResponse(false, _, _));
|
| @@ -2217,8 +2211,7 @@ TEST_F(WebSocketChannelStreamTest, FlowControlStopsReadFrames) {
|
|
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| - EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| - .WillOnce(ReturnFrames(&frames));
|
| + EXPECT_CALL(*mock_stream_, ReadFrames(_, _)).WillOnce(ReturnFrames(&frames));
|
|
|
| set_stream(mock_stream_.Pass());
|
| CreateChannelAndConnect();
|
| @@ -2359,12 +2352,12 @@ TEST_F(WebSocketChannelFlowControlTest, MultipleFrameSplit) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, "FIRST FRAME IS 25 BYTES. "},
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "SECOND FRAME IS 26 BYTES. "},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "FINAL FRAME IS 24 BYTES."}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED,
|
| + "FIRST FRAME IS 25 BYTES. "},
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "SECOND FRAME IS 26 BYTES. "},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "FINAL FRAME IS 24 BYTES."}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| {
|
| @@ -2403,30 +2396,28 @@ TEST_F(WebSocketChannelFlowControlTest, EmptyMessageNoQuota) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, "FIRST MESSAGE"},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, NULL},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, "THIRD MESSAGE"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED,
|
| + "FIRST MESSAGE"},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, NULL},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED,
|
| + "THIRD MESSAGE"}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| {
|
| InSequence s;
|
| EXPECT_CALL(*event_interface_, OnAddChannelResponse(false, _, _));
|
| EXPECT_CALL(*event_interface_, OnFlowControl(_));
|
| - EXPECT_CALL(*event_interface_,
|
| - OnDataFrame(false,
|
| - WebSocketFrameHeader::kOpCodeText,
|
| - AsVector("FIRST ")));
|
| + EXPECT_CALL(
|
| + *event_interface_,
|
| + OnDataFrame(
|
| + false, WebSocketFrameHeader::kOpCodeText, AsVector("FIRST ")));
|
| EXPECT_CALL(*event_interface_,
|
| OnDataFrame(true,
|
| WebSocketFrameHeader::kOpCodeContinuation,
|
| AsVector("MESSAGE")));
|
| - EXPECT_CALL(*event_interface_,
|
| - OnDataFrame(true,
|
| - WebSocketFrameHeader::kOpCodeText,
|
| - AsVector("")));
|
| + EXPECT_CALL(
|
| + *event_interface_,
|
| + OnDataFrame(true, WebSocketFrameHeader::kOpCodeText, AsVector("")));
|
| EXPECT_CALL(*event_interface_,
|
| OnDataFrame(true,
|
| WebSocketFrameHeader::kOpCodeText,
|
| @@ -2441,9 +2432,9 @@ TEST_F(WebSocketChannelFlowControlTest, EmptyMessageNoQuota) {
|
| // WebSocketChannel actually only sets the mask bit in the header, it doesn't
|
| // perform masking itself (not all transports actually use masking).
|
| TEST_F(WebSocketChannelStreamTest, SentFramesAreMasked) {
|
| - static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - MASKED, "NEEDS MASKING"}};
|
| + static const InitFrame expected[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodeText,
|
| + MASKED, "NEEDS MASKING"}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _)).WillOnce(Return(ERR_IO_PENDING));
|
| @@ -2459,8 +2450,8 @@ TEST_F(WebSocketChannelStreamTest, SentFramesAreMasked) {
|
| // sending a Close frame."
|
| TEST_F(WebSocketChannelStreamTest, NothingIsSentAfterClose) {
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Success")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Success")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _)).WillOnce(Return(ERR_IO_PENDING));
|
| @@ -2477,11 +2468,11 @@ TEST_F(WebSocketChannelStreamTest, NothingIsSentAfterClose) {
|
| // send a Close frame, the endpoint MUST send a Close frame in response."
|
| TEST_F(WebSocketChannelStreamTest, CloseIsEchoedBack) {
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| @@ -2497,11 +2488,11 @@ TEST_F(WebSocketChannelStreamTest, CloseIsEchoedBack) {
|
| // send another one.
|
| TEST_F(WebSocketChannelStreamTest, CloseOnlySentOnce) {
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| static const InitFrame frames_init[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "Close")}};
|
|
|
| // We store the parameters that were passed to ReadFrames() so that we can
|
| // call them explicitly later.
|
| @@ -2543,14 +2534,13 @@ TEST_F(WebSocketChannelStreamTest, CloseOnlySentOnce) {
|
|
|
| // Invalid close status codes should not be sent on the network.
|
| TEST_F(WebSocketChannelStreamTest, InvalidCloseStatusCodeNotSent) {
|
| - static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(SERVER_ERROR, "")}};
|
| + static const InitFrame expected[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodeClose,
|
| + MASKED, CLOSE_DATA(SERVER_ERROR, "")}};
|
|
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| - EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| - .WillOnce(Return(ERR_IO_PENDING));
|
| + EXPECT_CALL(*mock_stream_, ReadFrames(_, _)).WillOnce(Return(ERR_IO_PENDING));
|
|
|
| EXPECT_CALL(*mock_stream_, WriteFrames(EqualsFrames(expected), _));
|
|
|
| @@ -2561,14 +2551,13 @@ TEST_F(WebSocketChannelStreamTest, InvalidCloseStatusCodeNotSent) {
|
| // A Close frame with a reason longer than 123 bytes cannot be sent on the
|
| // network.
|
| TEST_F(WebSocketChannelStreamTest, LongCloseReasonNotSent) {
|
| - static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(SERVER_ERROR, "")}};
|
| + static const InitFrame expected[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodeClose,
|
| + MASKED, CLOSE_DATA(SERVER_ERROR, "")}};
|
|
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| - EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| - .WillOnce(Return(ERR_IO_PENDING));
|
| + EXPECT_CALL(*mock_stream_, ReadFrames(_, _)).WillOnce(Return(ERR_IO_PENDING));
|
|
|
| EXPECT_CALL(*mock_stream_, WriteFrames(EqualsFrames(expected), _));
|
|
|
| @@ -2617,11 +2606,11 @@ TEST_F(WebSocketChannelStreamTest, Code1005IsNotEchoedNull) {
|
| // connection.
|
| TEST_F(WebSocketChannelStreamTest, CloseFrameInvalidUtf8) {
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "\xFF")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "\xFF")}};
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(PROTOCOL_ERROR, "Invalid UTF-8 in Close frame")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(PROTOCOL_ERROR, "Invalid UTF-8 in Close frame")}};
|
|
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| @@ -2641,12 +2630,12 @@ TEST_F(WebSocketChannelStreamTest, CloseFrameInvalidUtf8) {
|
| // "Application data" as found in the message body of the Ping frame being
|
| // replied to."
|
| TEST_F(WebSocketChannelStreamTest, PingRepliedWithPong) {
|
| - static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodePing,
|
| - NOT_MASKED, "Application data"}};
|
| - static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodePong,
|
| - MASKED, "Application data"}};
|
| + static const InitFrame frames[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodePing,
|
| + NOT_MASKED, "Application data"}};
|
| + static const InitFrame expected[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodePong,
|
| + MASKED, "Application data"}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| @@ -2677,17 +2666,17 @@ TEST_F(WebSocketChannelStreamTest, NullPingRepliedWithNullPong) {
|
| }
|
|
|
| TEST_F(WebSocketChannelStreamTest, PongInTheMiddleOfDataMessage) {
|
| - static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodePing,
|
| - NOT_MASKED, "Application data"}};
|
| + static const InitFrame frames[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodePing,
|
| + NOT_MASKED, "Application data"}};
|
| static const InitFrame expected1[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, MASKED, "Hello "}};
|
| - static const InitFrame expected2[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodePong,
|
| - MASKED, "Application data"}};
|
| + static const InitFrame expected2[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodePong,
|
| + MASKED, "Application data"}};
|
| static const InitFrame expected3[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - MASKED, "World"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, MASKED,
|
| + "World"}};
|
| ScopedVector<WebSocketFrame>* read_frames;
|
| CompletionCallback read_callback;
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| @@ -2789,9 +2778,9 @@ TEST_F(WebSocketChannelStreamTest, WaitingMessagesAreBatched) {
|
| // When the renderer sends more on a channel than it has quota for, we send the
|
| // remote server a kWebSocketErrorGoingAway error code.
|
| TEST_F(WebSocketChannelStreamTest, SendGoingAwayOnRendererQuotaExceeded) {
|
| - static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(GOING_AWAY, "")}};
|
| + static const InitFrame expected[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodeClose,
|
| + MASKED, CLOSE_DATA(GOING_AWAY, "")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _)).WillOnce(Return(ERR_IO_PENDING));
|
| @@ -3067,8 +3056,8 @@ TEST_F(WebSocketChannelReceiveUtf8Test, TricksyIncompleteCharacter) {
|
| TEST_F(WebSocketChannelReceiveUtf8Test, ReceivedParsingContextRetained) {
|
| static const InitFrame frames[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, "\xf1"},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "\x80\xa0\xbf"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "\x80\xa0\xbf"}};
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| .WillOnce(ReturnFrames(&frames))
|
| .WillRepeatedly(Return(ERR_IO_PENDING));
|
| @@ -3080,8 +3069,8 @@ TEST_F(WebSocketChannelReceiveUtf8Test, ReceivedParsingContextRetained) {
|
| TEST_F(WebSocketChannelReceiveUtf8Test, SplitInvalidCharacterReceived) {
|
| static const InitFrame frames[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, "\xe1"},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "\x80\xa0\xbf"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "\x80\xa0\xbf"}};
|
| static const InitFrame expected[] = {
|
| {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| CLOSE_DATA(PROTOCOL_ERROR, "Invalid UTF-8 in text frame")}};
|
| @@ -3099,10 +3088,10 @@ TEST_F(WebSocketChannelReceiveUtf8Test, SplitInvalidCharacterReceived) {
|
| TEST_F(WebSocketChannelReceiveUtf8Test, InvalidReceivedIncontinuation) {
|
| static const InitFrame frames[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, "foo"},
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "bar"},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "\xff"}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "bar"},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "\xff"}};
|
| static const InitFrame expected[] = {
|
| {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| CLOSE_DATA(PROTOCOL_ERROR, "Invalid UTF-8 in text frame")}};
|
| @@ -3120,10 +3109,10 @@ TEST_F(WebSocketChannelReceiveUtf8Test, InvalidReceivedIncontinuation) {
|
| TEST_F(WebSocketChannelReceiveUtf8Test, ReceivedBinaryNotUtf8Tested) {
|
| static const InitFrame frames[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeBinary, NOT_MASKED, "foo"},
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "bar"},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "\xff"}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "bar"},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + "\xff"}};
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| .WillOnce(ReturnFrames(&frames))
|
| .WillRepeatedly(Return(ERR_IO_PENDING));
|
| @@ -3148,10 +3137,9 @@ TEST_F(WebSocketChannelEventInterfaceTest, BogusContinuation) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeBinary,
|
| - NOT_MASKED, "frame1"},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText,
|
| - NOT_MASKED, "frame2"}};
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeBinary, NOT_MASKED,
|
| + "frame1"},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, "frame2"}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
|
|
| @@ -3173,9 +3161,9 @@ TEST_F(WebSocketChannelEventInterfaceTest, BogusContinuation) {
|
| TEST_F(WebSocketChannelEventInterfaceTest, MessageStartingWithContinuation) {
|
| scoped_ptr<ReadableFakeWebSocketStream> stream(
|
| new ReadableFakeWebSocketStream);
|
| - static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, "continuation"}};
|
| + static const InitFrame frames[] = {{FINAL_FRAME,
|
| + WebSocketFrameHeader::kOpCodeContinuation,
|
| + NOT_MASKED, "continuation"}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
|
|
| @@ -3194,8 +3182,8 @@ TEST_F(WebSocketChannelEventInterfaceTest, DataFramesNonEmptyOrFinal) {
|
| new ReadableFakeWebSocketStream);
|
| static const InitFrame frames[] = {
|
| {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, NOT_MASKED, ""},
|
| - {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation,
|
| - NOT_MASKED, ""},
|
| + {NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED,
|
| + ""},
|
| {FINAL_FRAME, WebSocketFrameHeader::kOpCodeContinuation, NOT_MASKED, ""}};
|
| stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames);
|
| set_stream(stream.Pass());
|
| @@ -3215,13 +3203,13 @@ TEST_F(WebSocketChannelEventInterfaceTest, DataFramesNonEmptyOrFinal) {
|
| // already been sent, this just means closing the connection.
|
| TEST_F(WebSocketChannelStreamTest, PingAfterCloseIsRejected) {
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")},
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodePing,
|
| - NOT_MASKED, "Ping body"}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")},
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodePing, NOT_MASKED,
|
| + "Ping body"}};
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| @@ -3245,8 +3233,8 @@ TEST_F(WebSocketChannelStreamTest, PingAfterCloseIsRejected) {
|
| // status 1002, followed by the connection closing.
|
| TEST_F(WebSocketChannelStreamTest, ProtocolError) {
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(PROTOCOL_ERROR, "WebSocket Protocol Error")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(PROTOCOL_ERROR, "WebSocket Protocol Error")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| @@ -3280,11 +3268,11 @@ class WebSocketChannelStreamTimeoutTest : public WebSocketChannelStreamTest {
|
| // the connection itself.
|
| TEST_F(WebSocketChannelStreamTimeoutTest, ServerInitiatedCloseTimesOut) {
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| @@ -3312,8 +3300,8 @@ TEST_F(WebSocketChannelStreamTimeoutTest, ServerInitiatedCloseTimesOut) {
|
| // handshake times out and WebSocketChannel closes the connection.
|
| TEST_F(WebSocketChannelStreamTimeoutTest, ClientInitiatedCloseTimesOut) {
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, ReadFrames(_, _))
|
| @@ -3338,11 +3326,11 @@ TEST_F(WebSocketChannelStreamTimeoutTest, ClientInitiatedCloseTimesOut) {
|
| // times out and WebSocketChannel closes the connection.
|
| TEST_F(WebSocketChannelStreamTimeoutTest, ConnectionCloseTimesOut) {
|
| static const InitFrame expected[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| static const InitFrame frames[] = {
|
| - {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose,
|
| - NOT_MASKED, CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| + {FINAL_FRAME, WebSocketFrameHeader::kOpCodeClose, NOT_MASKED,
|
| + CLOSE_DATA(NORMAL_CLOSURE, "OK")}};
|
| EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber());
|
| EXPECT_CALL(*mock_stream_, GetExtensions()).Times(AnyNumber());
|
| TestClosure completion;
|
|
|