summaryrefslogtreecommitdiff
path: root/chromium/net/websockets/websocket_channel_test.cc
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@theqtcompany.com>2014-12-05 15:04:29 +0100
committerAndras Becsi <andras.becsi@theqtcompany.com>2014-12-09 10:49:28 +0100
commitaf6588f8d723931a298c995fa97259bb7f7deb55 (patch)
tree060ca707847ba1735f01af2372e0d5e494dc0366 /chromium/net/websockets/websocket_channel_test.cc
parent2fff84d821cc7b1c785f6404e0f8091333283e74 (diff)
downloadqtwebengine-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.cc175
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());
}
};