Index: net/websockets/websocket_channel_test.cc |
diff --git a/net/websockets/websocket_channel_test.cc b/net/websockets/websocket_channel_test.cc |
index 1bef0d499fee220cea0947f8b2bedadbb5b6e984..867b2b7fe677e597b07e925a314582ade3a23e99 100644 |
--- a/net/websockets/websocket_channel_test.cc |
+++ b/net/websockets/websocket_channel_test.cc |
@@ -142,8 +142,9 @@ class MockWebSocketEventInterface : public WebSocketEventInterface { |
ChannelState(bool, |
WebSocketMessageType, |
const std::vector<char>&)); // NOLINT |
- MOCK_METHOD1(OnFlowControl, ChannelState(int64)); // NOLINT |
+ MOCK_METHOD1(OnFlowControl, ChannelState(int64)); // NOLINT |
MOCK_METHOD0(OnClosingHandshake, ChannelState(void)); // NOLINT |
+ MOCK_METHOD1(OnFailChannel, ChannelState(const std::string&)); // NOLINT |
MOCK_METHOD2(OnDropChannel, |
ChannelState(uint16, const std::string&)); // NOLINT |
}; |
@@ -165,6 +166,9 @@ class FakeWebSocketEventInterface : public WebSocketEventInterface { |
return CHANNEL_ALIVE; |
} |
virtual ChannelState OnClosingHandshake() OVERRIDE { return CHANNEL_ALIVE; } |
+ virtual ChannelState OnFailChannel(const std::string& message) OVERRIDE { |
+ return CHANNEL_DELETED; |
+ } |
virtual ChannelState OnDropChannel(uint16 code, |
const std::string& reason) OVERRIDE { |
return CHANNEL_DELETED; |
@@ -761,7 +765,8 @@ enum EventInterfaceCall { |
EVENT_ON_DATA_FRAME = 0x2, |
EVENT_ON_FLOW_CONTROL = 0x4, |
EVENT_ON_CLOSING_HANDSHAKE = 0x8, |
- EVENT_ON_DROP_CHANNEL = 0x10, |
+ EVENT_ON_FAIL_CHANNEL = 0x10, |
+ EVENT_ON_DROP_CHANNEL = 0x20, |
}; |
class WebSocketChannelDeletingTest : public WebSocketChannelTest { |
@@ -780,6 +785,7 @@ class WebSocketChannelDeletingTest : public WebSocketChannelTest { |
: deleting_(EVENT_ON_ADD_CHANNEL_RESPONSE | EVENT_ON_DATA_FRAME | |
EVENT_ON_FLOW_CONTROL | |
EVENT_ON_CLOSING_HANDSHAKE | |
+ EVENT_ON_FAIL_CHANNEL | |
EVENT_ON_DROP_CHANNEL) {} |
// Create a ChannelDeletingFakeWebSocketEventInterface. Defined out-of-line to |
// avoid circular dependency. |
@@ -820,6 +826,10 @@ class ChannelDeletingFakeWebSocketEventInterface |
return fixture_->DeleteIfDeleting(EVENT_ON_CLOSING_HANDSHAKE); |
} |
+ virtual ChannelState OnFailChannel(const std::string& message) OVERRIDE { |
+ return fixture_->DeleteIfDeleting(EVENT_ON_FAIL_CHANNEL); |
+ } |
+ |
virtual ChannelState OnDropChannel(uint16 code, |
const std::string& reason) OVERRIDE { |
return fixture_->DeleteIfDeleting(EVENT_ON_DROP_CHANNEL); |
@@ -907,8 +917,7 @@ TEST_F(WebSocketChannelTest, EverythingIsPassedToTheCreatorFunction) { |
TEST_F(WebSocketChannelDeletingTest, OnAddChannelResponseFail) { |
CreateChannelAndConnect(); |
EXPECT_TRUE(channel_); |
- connect_data_.creator.connect_delegate->OnFailure( |
- kWebSocketErrorNoStatusReceived); |
+ connect_data_.creator.connect_delegate->OnFailure("bye"); |
EXPECT_EQ(NULL, channel_.get()); |
} |
@@ -956,7 +965,7 @@ TEST_F(WebSocketChannelDeletingTest, OnFlowControlAfterConnect) { |
TEST_F(WebSocketChannelDeletingTest, OnFlowControlAfterSend) { |
set_stream(make_scoped_ptr(new WriteableFakeWebSocketStream)); |
// Avoid deleting the channel yet. |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
tyoshino (SeeGerritForStatus)
2013/12/16 07:26:18
why EVENT_ON_DROP_CHANNEL are kept
the same quest
yhirano
2013/12/16 08:05:38
Because OnDropChannel always drops the channel and
tyoshino (SeeGerritForStatus)
2014/01/09 04:08:48
Oh. The cases in which the channel is normally del
yhirano
2014/01/09 05:24:51
Sorry, I was wrong.
My intention was, there was no
|
CreateChannelAndConnectSuccessfully(); |
ASSERT_TRUE(channel_); |
deleting_ = EVENT_ON_FLOW_CONTROL; |
@@ -996,7 +1005,7 @@ TEST_F(WebSocketChannelDeletingTest, OnClosingHandshakeAsync) { |
TEST_F(WebSocketChannelDeletingTest, OnDropChannelWriteError) { |
set_stream(make_scoped_ptr(new UnWriteableFakeWebSocketStream)); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
ASSERT_TRUE(channel_); |
channel_->SendFrame( |
@@ -1010,7 +1019,7 @@ TEST_F(WebSocketChannelDeletingTest, OnDropChannelReadError) { |
stream->PrepareReadFramesError(ReadableFakeWebSocketStream::ASYNC, |
ERR_FAILED); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
ASSERT_TRUE(channel_); |
base::MessageLoop::current()->RunUntilIdle(); |
@@ -1019,7 +1028,7 @@ TEST_F(WebSocketChannelDeletingTest, OnDropChannelReadError) { |
TEST_F(WebSocketChannelDeletingTest, FailChannelInSendFrame) { |
set_stream(make_scoped_ptr(new WriteableFakeWebSocketStream)); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
ASSERT_TRUE(channel_); |
channel_->SendFrame(true, |
@@ -1034,7 +1043,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelInOnReadDone) { |
stream->PrepareReadFramesError(ReadableFakeWebSocketStream::ASYNC, |
ERR_WS_PROTOCOL_ERROR); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
ASSERT_TRUE(channel_); |
base::MessageLoop::current()->RunUntilIdle(); |
@@ -1048,7 +1057,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToMaskedFrame) { |
{FINAL_FRAME, WebSocketFrameHeader::kOpCodeText, MASKED, "HELLO"}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1061,7 +1070,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToBadControlFrame) { |
{NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodePong, NOT_MASKED, ""}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1075,7 +1084,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToBadControlFrameNull) { |
{NOT_FINAL_FRAME, WebSocketFrameHeader::kOpCodePong, NOT_MASKED, NULL}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1090,7 +1099,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToPongAfterClose) { |
{FINAL_FRAME, WebSocketFrameHeader::kOpCodePong, NOT_MASKED, ""}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1105,7 +1114,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToPongAfterCloseNull) { |
{FINAL_FRAME, WebSocketFrameHeader::kOpCodePong, NOT_MASKED, NULL}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1117,7 +1126,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToUnknownOpCode) { |
static const InitFrame frames[] = {{FINAL_FRAME, 0x7, NOT_MASKED, ""}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1129,7 +1138,7 @@ TEST_F(WebSocketChannelDeletingTest, FailChannelDueToUnknownOpCodeNull) { |
static const InitFrame frames[] = {{FINAL_FRAME, 0x7, NOT_MASKED, NULL}}; |
stream->PrepareReadFrames(ReadableFakeWebSocketStream::SYNC, OK, frames); |
set_stream(stream.Pass()); |
- deleting_ = EVENT_ON_DROP_CHANNEL; |
+ deleting_ = EVENT_ON_FAIL_CHANNEL | EVENT_ON_DROP_CHANNEL; |
CreateChannelAndConnectSuccessfully(); |
EXPECT_EQ(NULL, channel_.get()); |
@@ -1148,13 +1157,11 @@ TEST_F(WebSocketChannelEventInterfaceTest, ConnectSuccessReported) { |
} |
TEST_F(WebSocketChannelEventInterfaceTest, ConnectFailureReported) { |
- // true means failure. |
- EXPECT_CALL(*event_interface_, OnAddChannelResponse(true, "")); |
+ EXPECT_CALL(*event_interface_, OnFailChannel("hello")); |
CreateChannelAndConnect(); |
- connect_data_.creator.connect_delegate->OnFailure( |
- kWebSocketErrorNoStatusReceived); |
+ connect_data_.creator.connect_delegate->OnFailure("hello"); |
} |
TEST_F(WebSocketChannelEventInterfaceTest, NonWebSocketSchemeRejected) { |