diff options
author | Zeno Albisser <zeno.albisser@theqtcompany.com> | 2014-12-05 15:04:29 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@theqtcompany.com> | 2014-12-09 10:49:28 +0100 |
commit | af6588f8d723931a298c995fa97259bb7f7deb55 (patch) | |
tree | 060ca707847ba1735f01af2372e0d5e494dc0366 /chromium/net/websockets/websocket_channel_test.cc | |
parent | 2fff84d821cc7b1c785f6404e0f8091333283e74 (diff) | |
download | qtwebengine-chromium-af6588f8d723931a298c995fa97259bb7f7deb55.tar.gz |
BASELINE: Update chromium to 40.0.2214.28 and ninja to 1.5.3.
Change-Id: I759465284fd64d59ad120219cbe257f7402c4181
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'chromium/net/websockets/websocket_channel_test.cc')
-rw-r--r-- | chromium/net/websockets/websocket_channel_test.cc | 175 |
1 files changed, 82 insertions, 93 deletions
diff --git a/chromium/net/websockets/websocket_channel_test.cc b/chromium/net/websockets/websocket_channel_test.cc index 4a8f119a65b..d5ec3da478b 100644 --- a/chromium/net/websockets/websocket_channel_test.cc +++ b/chromium/net/websockets/websocket_channel_test.cc @@ -59,7 +59,7 @@ std::ostream& operator<<(std::ostream& os, const WebSocketFrameHeader& header) { std::ostream& operator<<(std::ostream& os, const WebSocketFrame& frame) { os << "{" << frame.header << ", "; - if (frame.data) { + if (frame.data.get()) { return os << "\"" << base::StringPiece(frame.data->data(), frame.header.payload_length) << "\"}"; @@ -127,6 +127,8 @@ const size_t kDefaultInitialQuota = 1 << 17; // kDefaultSendQuotaLowWaterMark change. const size_t kDefaultQuotaRefreshTrigger = (1 << 16) + 1; +const int kVeryBigTimeoutMillis = 60 * 60 * 24 * 1000; + // TestTimeouts::tiny_timeout() is 100ms! I could run halfway around the world // in that time! I would like my tests to run a bit quicker. const int kVeryTinyTimeoutMillis = 1; @@ -163,12 +165,12 @@ class MockWebSocketEventInterface : public WebSocketEventInterface { // We can't use GMock with scoped_ptr. ChannelState OnStartOpeningHandshake( - scoped_ptr<WebSocketHandshakeRequestInfo>) OVERRIDE { + scoped_ptr<WebSocketHandshakeRequestInfo>) override { OnStartOpeningHandshakeCalled(); return CHANNEL_ALIVE; } ChannelState OnFinishOpeningHandshake( - scoped_ptr<WebSocketHandshakeResponseInfo>) OVERRIDE { + scoped_ptr<WebSocketHandshakeResponseInfo>) override { OnFinishOpeningHandshakeCalled(); return CHANNEL_ALIVE; } @@ -176,7 +178,7 @@ class MockWebSocketEventInterface : public WebSocketEventInterface { scoped_ptr<SSLErrorCallbacks> ssl_error_callbacks, const GURL& url, const SSLInfo& ssl_info, - bool fatal) OVERRIDE { + bool fatal) override { OnSSLCertificateErrorCalled( ssl_error_callbacks.get(), url, ssl_info, fatal); return CHANNEL_ALIVE; @@ -192,42 +194,39 @@ class MockWebSocketEventInterface : public WebSocketEventInterface { // This fake EventInterface is for tests which need a WebSocketEventInterface // implementation but are not verifying how it is used. class FakeWebSocketEventInterface : public WebSocketEventInterface { - virtual ChannelState OnAddChannelResponse( - bool fail, - const std::string& selected_protocol, - const std::string& extensions) OVERRIDE { + ChannelState OnAddChannelResponse(bool fail, + const std::string& selected_protocol, + const std::string& extensions) override { return fail ? CHANNEL_DELETED : CHANNEL_ALIVE; } - virtual ChannelState OnDataFrame(bool fin, - WebSocketMessageType type, - const std::vector<char>& data) OVERRIDE { + ChannelState OnDataFrame(bool fin, + WebSocketMessageType type, + const std::vector<char>& data) override { return CHANNEL_ALIVE; } - virtual ChannelState OnFlowControl(int64 quota) OVERRIDE { - return CHANNEL_ALIVE; - } - virtual ChannelState OnClosingHandshake() OVERRIDE { return CHANNEL_ALIVE; } - virtual ChannelState OnFailChannel(const std::string& message) OVERRIDE { + ChannelState OnFlowControl(int64 quota) override { return CHANNEL_ALIVE; } + ChannelState OnClosingHandshake() override { return CHANNEL_ALIVE; } + ChannelState OnFailChannel(const std::string& message) override { return CHANNEL_DELETED; } - virtual ChannelState OnDropChannel(bool was_clean, - uint16 code, - const std::string& reason) OVERRIDE { + ChannelState OnDropChannel(bool was_clean, + uint16 code, + const std::string& reason) override { return CHANNEL_DELETED; } - virtual ChannelState OnStartOpeningHandshake( - scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE { + ChannelState OnStartOpeningHandshake( + scoped_ptr<WebSocketHandshakeRequestInfo> request) override { return CHANNEL_ALIVE; } - virtual ChannelState OnFinishOpeningHandshake( - scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE { + ChannelState OnFinishOpeningHandshake( + scoped_ptr<WebSocketHandshakeResponseInfo> response) override { return CHANNEL_ALIVE; } - virtual ChannelState OnSSLCertificateError( + ChannelState OnSSLCertificateError( scoped_ptr<SSLErrorCallbacks> ssl_error_callbacks, const GURL& url, const SSLInfo& ssl_info, - bool fatal) OVERRIDE { + bool fatal) override { return CHANNEL_ALIVE; } }; @@ -245,23 +244,23 @@ class FakeWebSocketStream : public WebSocketStream { const std::string& extensions) : protocol_(protocol), extensions_(extensions) {} - virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int ReadFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { return ERR_IO_PENDING; } - virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int WriteFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { return ERR_IO_PENDING; } - virtual void Close() OVERRIDE {} + void Close() override {} // Returns the string passed to the constructor. - virtual std::string GetSubProtocol() const OVERRIDE { return protocol_; } + std::string GetSubProtocol() const override { return protocol_; } // Returns the string passed to the constructor. - virtual std::string GetExtensions() const OVERRIDE { return extensions_; } + std::string GetExtensions() const override { return extensions_; } private: // The string to return from GetSubProtocol(). @@ -425,18 +424,6 @@ template <size_t N> return ::testing::MakeMatcher(new EqualsFramesMatcher<N>(&frames)); } -// TestClosure works like TestCompletionCallback, but doesn't take an argument. -class TestClosure { - public: - base::Closure closure() { return base::Bind(callback_.callback(), OK); } - - void WaitForResult() { callback_.WaitForResult(); } - - private: - // Delegate to TestCompletionCallback for the implementation. - TestCompletionCallback callback_; -}; - // A GoogleMock action to run a Closure. ACTION_P(InvokeClosure, closure) { closure.Run(); } @@ -456,7 +443,7 @@ class ReadableFakeWebSocketStream : public FakeWebSocketStream { ReadableFakeWebSocketStream() : index_(0), read_frames_pending_(false) {} // Check that all the prepared responses have been consumed. - virtual ~ReadableFakeWebSocketStream() { + ~ReadableFakeWebSocketStream() override { CHECK(index_ >= responses_.size()); CHECK(!read_frames_pending_); } @@ -492,8 +479,8 @@ class ReadableFakeWebSocketStream : public FakeWebSocketStream { new Response(async, error, ScopedVector<WebSocketFrame>())); } - virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int ReadFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { CHECK(!read_frames_pending_); if (index_ >= responses_.size()) return ERR_IO_PENDING; @@ -549,8 +536,8 @@ class ReadableFakeWebSocketStream : public FakeWebSocketStream { // synchronously. class WriteableFakeWebSocketStream : public FakeWebSocketStream { public: - virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int WriteFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { return OK; } }; @@ -558,8 +545,8 @@ class WriteableFakeWebSocketStream : public FakeWebSocketStream { // A FakeWebSocketStream where writes always fail. class UnWriteableFakeWebSocketStream : public FakeWebSocketStream { public: - virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int WriteFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { return ERR_CONNECTION_RESET; } }; @@ -574,8 +561,8 @@ class EchoeyFakeWebSocketStream : public FakeWebSocketStream { public: EchoeyFakeWebSocketStream() : read_frames_(NULL), done_(false) {} - virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int WriteFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { // Users of WebSocketStream will not expect the ReadFrames() callback to be // called from within WriteFrames(), so post it to the message loop instead. stored_frames_.insert(stored_frames_.end(), frames->begin(), frames->end()); @@ -584,8 +571,8 @@ class EchoeyFakeWebSocketStream : public FakeWebSocketStream { return OK; } - virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int ReadFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { read_callback_ = callback; read_frames_ = frames; if (done_) @@ -647,8 +634,8 @@ class ResetOnWriteFakeWebSocketStream : public FakeWebSocketStream { public: ResetOnWriteFakeWebSocketStream() : closed_(false), weak_ptr_factory_(this) {} - virtual int WriteFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int WriteFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { base::MessageLoop::current()->PostTask( FROM_HERE, base::Bind(&ResetOnWriteFakeWebSocketStream::CallCallbackUnlessClosed, @@ -664,13 +651,13 @@ class ResetOnWriteFakeWebSocketStream : public FakeWebSocketStream { return ERR_IO_PENDING; } - virtual int ReadFrames(ScopedVector<WebSocketFrame>* frames, - const CompletionCallback& callback) OVERRIDE { + int ReadFrames(ScopedVector<WebSocketFrame>* frames, + const CompletionCallback& callback) override { read_callback_ = callback; return ERR_IO_PENDING; } - virtual void Close() OVERRIDE { closed_ = true; } + void Close() override { closed_ = true; } private: void CallCallbackUnlessClosed(const CompletionCallback& callback, int value) { @@ -736,8 +723,8 @@ std::vector<char> AsVector(const std::string& s) { class FakeSSLErrorCallbacks : public WebSocketEventInterface::SSLErrorCallbacks { public: - virtual void CancelSSLRequest(int error, const SSLInfo* ssl_info) OVERRIDE {} - virtual void ContinueSSLRequest() OVERRIDE {} + void CancelSSLRequest(int error, const SSLInfo* ssl_info) override {} + void ContinueSSLRequest() override {} }; // Base class for all test fixtures. @@ -780,10 +767,7 @@ class WebSocketChannelTest : public ::testing::Test { // will have unpleasant compile errors. template <class T> void set_stream(scoped_ptr<T> stream) { - // Since the definition of "PassAs" depends on the type T, the C++ standard - // requires the "template" keyword to indicate that "PassAs" should be - // parsed as a template method. - stream_ = stream.template PassAs<WebSocketStream>(); + stream_ = stream.Pass(); } // A struct containing the data that will be used to connect the channel. @@ -850,7 +834,7 @@ class WebSocketChannelDeletingTest : public WebSocketChannelTest { EVENT_ON_SSL_CERTIFICATE_ERROR) {} // Create a ChannelDeletingFakeWebSocketEventInterface. Defined out-of-line to // avoid circular dependency. - virtual scoped_ptr<WebSocketEventInterface> CreateEventInterface() OVERRIDE; + scoped_ptr<WebSocketEventInterface> CreateEventInterface() override; // Tests can set deleting_ to a bitmap of EventInterfaceCall members that they // want to cause Channel deletion. The default is for all calls to cause @@ -867,50 +851,49 @@ class ChannelDeletingFakeWebSocketEventInterface WebSocketChannelDeletingTest* fixture) : fixture_(fixture) {} - virtual ChannelState OnAddChannelResponse( - bool fail, - const std::string& selected_protocol, - const std::string& extensions) OVERRIDE { + ChannelState OnAddChannelResponse(bool fail, + const std::string& selected_protocol, + const std::string& extensions) override { return fixture_->DeleteIfDeleting(EVENT_ON_ADD_CHANNEL_RESPONSE); } - virtual ChannelState OnDataFrame(bool fin, - WebSocketMessageType type, - const std::vector<char>& data) OVERRIDE { + ChannelState OnDataFrame(bool fin, + WebSocketMessageType type, + const std::vector<char>& data) override { return fixture_->DeleteIfDeleting(EVENT_ON_DATA_FRAME); } - virtual ChannelState OnFlowControl(int64 quota) OVERRIDE { + ChannelState OnFlowControl(int64 quota) override { return fixture_->DeleteIfDeleting(EVENT_ON_FLOW_CONTROL); } - virtual ChannelState OnClosingHandshake() OVERRIDE { + ChannelState OnClosingHandshake() override { return fixture_->DeleteIfDeleting(EVENT_ON_CLOSING_HANDSHAKE); } - virtual ChannelState OnFailChannel(const std::string& message) OVERRIDE { + ChannelState OnFailChannel(const std::string& message) override { return fixture_->DeleteIfDeleting(EVENT_ON_FAIL_CHANNEL); } - virtual ChannelState OnDropChannel(bool was_clean, - uint16 code, - const std::string& reason) OVERRIDE { + ChannelState OnDropChannel(bool was_clean, + uint16 code, + const std::string& reason) override { return fixture_->DeleteIfDeleting(EVENT_ON_DROP_CHANNEL); } - virtual ChannelState OnStartOpeningHandshake( - scoped_ptr<WebSocketHandshakeRequestInfo> request) OVERRIDE { + ChannelState OnStartOpeningHandshake( + scoped_ptr<WebSocketHandshakeRequestInfo> request) override { return fixture_->DeleteIfDeleting(EVENT_ON_START_OPENING_HANDSHAKE); } - virtual ChannelState OnFinishOpeningHandshake( - scoped_ptr<WebSocketHandshakeResponseInfo> response) OVERRIDE { + ChannelState OnFinishOpeningHandshake( + scoped_ptr<WebSocketHandshakeResponseInfo> response) override { return fixture_->DeleteIfDeleting(EVENT_ON_FINISH_OPENING_HANDSHAKE); } - virtual ChannelState OnSSLCertificateError( + ChannelState OnSSLCertificateError( scoped_ptr<SSLErrorCallbacks> ssl_error_callbacks, const GURL& url, const SSLInfo& ssl_info, - bool fatal) OVERRIDE { + bool fatal) override { return fixture_->DeleteIfDeleting(EVENT_ON_SSL_CERTIFICATE_ERROR); } @@ -941,7 +924,7 @@ class WebSocketChannelEventInterfaceTest : public WebSocketChannelTest { .WillByDefault(Return(CHANNEL_DELETED)); } - virtual ~WebSocketChannelEventInterfaceTest() { + ~WebSocketChannelEventInterfaceTest() override { DefaultValue<ChannelState>::Clear(); } @@ -949,7 +932,7 @@ class WebSocketChannelEventInterfaceTest : public WebSocketChannelTest { // object before calling CreateChannelAndConnect() or // CreateChannelAndConnectSuccessfully(). This will only work once per test // case, but once should be enough. - virtual scoped_ptr<WebSocketEventInterface> CreateEventInterface() OVERRIDE { + scoped_ptr<WebSocketEventInterface> CreateEventInterface() override { return scoped_ptr<WebSocketEventInterface>(event_interface_.release()); } @@ -963,7 +946,7 @@ class WebSocketChannelStreamTest : public WebSocketChannelTest { WebSocketChannelStreamTest() : mock_stream_(new StrictMock<MockWebSocketStream>) {} - virtual void CreateChannelAndConnectSuccessfully() OVERRIDE { + void CreateChannelAndConnectSuccessfully() override { set_stream(mock_stream_.Pass()); WebSocketChannelTest::CreateChannelAndConnectSuccessfully(); } @@ -976,7 +959,7 @@ class WebSocketChannelStreamTest : public WebSocketChannelTest { class WebSocketChannelSendUtf8Test : public WebSocketChannelEventInterfaceTest { public: - virtual void SetUp() { + void SetUp() override { set_stream(make_scoped_ptr(new WriteableFakeWebSocketStream)); // For the purpose of the tests using this fixture, it doesn't matter // whether these methods are called or not. @@ -1006,7 +989,7 @@ class WebSocketChannelFlowControlTest // mock WebSocketStream. class WebSocketChannelReceiveUtf8Test : public WebSocketChannelStreamTest { public: - virtual void SetUp() { + void SetUp() override { // For the purpose of the tests using this fixture, it doesn't matter // whether these methods are called or not. EXPECT_CALL(*mock_stream_, GetSubProtocol()).Times(AnyNumber()); @@ -2164,6 +2147,8 @@ TEST_F(WebSocketChannelEventInterfaceTest, // was fired by the behaviour of the WebSocketChannel object. channel_->SetClosingHandshakeTimeoutForTesting( TimeDelta::FromMilliseconds(kVeryTinyTimeoutMillis)); + channel_->SetUnderlyingConnectionCloseTimeoutForTesting( + TimeDelta::FromMilliseconds(kVeryBigTimeoutMillis)); channel_->StartClosingHandshake(kWebSocketNormalClosure, ""); checkpoint.Call(1); completion.WaitForResult(); @@ -2194,6 +2179,8 @@ TEST_F(WebSocketChannelEventInterfaceTest, } CreateChannelAndConnectSuccessfully(); channel_->SetClosingHandshakeTimeoutForTesting( + TimeDelta::FromMilliseconds(kVeryBigTimeoutMillis)); + channel_->SetUnderlyingConnectionCloseTimeoutForTesting( TimeDelta::FromMilliseconds(kVeryTinyTimeoutMillis)); checkpoint.Call(1); completion.WaitForResult(); @@ -2862,7 +2849,7 @@ TEST_F(WebSocketChannelStreamTest, WrittenBinaryFramesAre8BitClean) { ASSERT_EQ(1U, frames->size()); const WebSocketFrame* out_frame = (*frames)[0]; EXPECT_EQ(kBinaryBlobSize, out_frame->header.payload_length); - ASSERT_TRUE(out_frame->data); + ASSERT_TRUE(out_frame->data.get()); EXPECT_EQ(0, memcmp(kBinaryBlob, out_frame->data->data(), kBinaryBlobSize)); } @@ -3317,12 +3304,14 @@ class WebSocketChannelStreamTimeoutTest : public WebSocketChannelStreamTest { protected: WebSocketChannelStreamTimeoutTest() {} - virtual void CreateChannelAndConnectSuccessfully() OVERRIDE { + void CreateChannelAndConnectSuccessfully() override { set_stream(mock_stream_.Pass()); CreateChannelAndConnect(); channel_->SendFlowControl(kPlentyOfQuota); channel_->SetClosingHandshakeTimeoutForTesting( TimeDelta::FromMilliseconds(kVeryTinyTimeoutMillis)); + channel_->SetUnderlyingConnectionCloseTimeoutForTesting( + TimeDelta::FromMilliseconds(kVeryTinyTimeoutMillis)); connect_data_.creator.connect_delegate->OnSuccess(stream_.Pass()); } }; |