Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Unified Diff: net/http/http_response_body_drainer_unittest.cc

Issue 1884943003: HttpStreamParser: Don't reuse sockets which receive unparsed data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix drainer test ('True' means closed...) Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/http/http_response_body_drainer_unittest.cc
diff --git a/net/http/http_response_body_drainer_unittest.cc b/net/http/http_response_body_drainer_unittest.cc
index 9ee6f84e03a0caec06064266059a31b6ec0faca7..3483a8f2a5fd6e4e175f655f9fb9bd19e4da9d73 100644
--- a/net/http/http_response_body_drainer_unittest.cc
+++ b/net/http/http_response_body_drainer_unittest.cc
@@ -12,6 +12,7 @@
#include "base/compiler_specific.h"
#include "base/location.h"
#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/single_thread_task_runner.h"
@@ -20,6 +21,7 @@
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/http/http_network_session.h"
+#include "net/http/http_response_info.h"
#include "net/http/http_server_properties_impl.h"
#include "net/http/http_stream.h"
#include "net/http/transport_security_state.h"
@@ -79,6 +81,7 @@ class MockHttpStream : public HttpStream {
is_sync_(false),
is_last_chunk_zero_size_(false),
is_complete_(false),
+ can_reuse_connection_(true),
weak_factory_(this) {}
~MockHttpStream() override {}
@@ -101,7 +104,7 @@ class MockHttpStream : public HttpStream {
bool IsConnectionReused() const override { return false; }
void SetConnectionReused() override {}
- bool CanReuseConnection() const override { return false; }
+ bool CanReuseConnection() const override { return can_reuse_connection_; }
int64_t GetTotalReceivedBytes() const override { return 0; }
int64_t GetTotalSentBytes() const override { return 0; }
void GetSSLInfo(SSLInfo* ssl_info) override {}
@@ -131,7 +134,8 @@ class MockHttpStream : public HttpStream {
return false;
}
- void Drain(HttpNetworkSession*) override {}
+ void Drain(HttpNetworkSession* session,
+ scoped_ptr<HttpResponseInfo> response_info) override {}
void PopulateNetErrorDetails(NetErrorDetails* details) override { return; }
@@ -146,6 +150,11 @@ class MockHttpStream : public HttpStream {
void set_is_last_chunk_zero_size() { is_last_chunk_zero_size_ = true; }
+ // Sets result value of CanReuseConnection. Defaults to true.
+ void set_can_reuse_connection(bool can_reuse_connection) {
+ can_reuse_connection_ = can_reuse_connection;
+ }
+
private:
int ReadResponseBodyImpl(IOBuffer* buf, int buf_len);
void CompleteRead();
@@ -162,7 +171,11 @@ class MockHttpStream : public HttpStream {
bool is_sync_;
bool is_last_chunk_zero_size_;
bool is_complete_;
+ bool can_reuse_connection_;
+
base::WeakPtrFactory<MockHttpStream> weak_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockHttpStream);
};
int MockHttpStream::ReadResponseBody(IOBuffer* buf,
@@ -223,7 +236,9 @@ class HttpResponseBodyDrainerTest : public testing::Test {
transport_security_state_(new TransportSecurityState()),
session_(CreateNetworkSession()),
mock_stream_(new MockHttpStream(&result_waiter_)),
- drainer_(new HttpResponseBodyDrainer(mock_stream_)) {}
+ drainer_(new HttpResponseBodyDrainer(
+ mock_stream_,
+ make_scoped_ptr(new HttpResponseInfo()))) {}
~HttpResponseBodyDrainerTest() override {}
@@ -315,6 +330,13 @@ TEST_F(HttpResponseBodyDrainerTest, DrainBodyTooLarge) {
EXPECT_TRUE(result_waiter_.WaitForResult());
}
+TEST_F(HttpResponseBodyDrainerTest, DrainBodyCantReuse) {
+ mock_stream_->set_num_chunks(1);
+ mock_stream_->set_can_reuse_connection(false);
+ drainer_->Start(session_.get());
+ EXPECT_TRUE(result_waiter_.WaitForResult());
+}
+
} // namespace
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698