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

Unified Diff: net/http/http_network_transaction_unittest.cc

Issue 5026: Style refactoring to make MockRead initializers more readable. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 12 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_network_transaction_unittest.cc
===================================================================
--- net/http/http_network_transaction_unittest.cc (revision 2660)
+++ net/http/http_network_transaction_unittest.cc (working copy)
@@ -18,18 +18,39 @@
struct MockConnect {
bool async;
int result;
+
+ // Asynchronous connection success.
+ MockConnect() : async(true), result(net::OK) { }
wtc 2008/09/29 20:16:33 Nit: list the constructor before the members, as y
eroman 2008/09/29 20:29:17 oops. will fix. (I already submitted this as I rel
};
struct MockRead {
+ // Read failure (no data).
+ MockRead(bool async, int result) : async(async) , result(result), data(NULL),
+ data_len(0) { }
+
+ // Asynchronous read success (inferred data length).
+ MockRead(const char* data) : async(true), data(data), data_len(strlen(data)),
+ result(0) { }
+
+ // Read success (inferred data length).
+ MockRead(bool async, const char* data) : async(async), data(data),
+ data_len(strlen(data)), result(0) { }
+
+ // Read success.
+ MockRead(bool async, const char* data, int data_len) : async(async),
+ data(data), data_len(data_len), result(0) { }
wtc 2008/09/29 20:16:33 Ideally, these should be accompanied with the C++
eroman 2008/09/29 20:29:17 That happens automatically -- once you have a user
+
bool async;
- int result; // Ignored if data is non-null.
+ int result;
const char* data;
- int data_len; // -1 if strlen(data) should be used.
+ int data_len;
};
struct MockSocket {
+ MockSocket() : reads(NULL) { }
+
MockConnect connect;
- MockRead* reads; // Terminated by a MockRead element with data == NULL.
wtc 2008/09/29 20:16:33 Do we still need to terminate the 'reads' array wi
eroman 2008/09/29 20:29:17 as far as I can tell, that comment was wrong -- no
+ MockRead* reads;
};
// Holds an array of MockSocket elements. As MockTCPClientSocket objects get
@@ -83,8 +104,6 @@
MockRead& r = data_->reads[read_index_];
int result;
if (r.data) {
- if (r.data_len == -1)
- r.data_len = static_cast<int>(strlen(r.data));
if (r.data_len - read_offset_ > 0) {
result = std::min(buf_len, r.data_len - read_offset_);
memcpy(buf, r.data + read_offset_, result);
@@ -191,8 +210,6 @@
request.load_flags = 0;
MockSocket data;
- data.connect.async = true;
- data.connect.result = net::OK;
data.reads = data_reads;
mock_sockets[0] = &data;
mock_sockets[1] = NULL;
@@ -232,9 +249,9 @@
TEST_F(HttpNetworkTransactionTest, SimpleGET) {
MockRead data_reads[] = {
- { true, 0, "HTTP/1.0 200 OK\r\n\r\n", -1 },
- { true, 0, "hello world", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("HTTP/1.0 200 OK\r\n\r\n"),
+ MockRead("hello world"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/1.0 200 OK", out.status_line);
@@ -244,8 +261,8 @@
// Response with no status line.
TEST_F(HttpNetworkTransactionTest, SimpleGETNoHeaders) {
MockRead data_reads[] = {
- { true, 0, "hello world", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("hello world"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
@@ -255,8 +272,8 @@
// Allow up to 4 bytes of junk to precede status line.
TEST_F(HttpNetworkTransactionTest, StatusLineJunk2Bytes) {
MockRead data_reads[] = {
- { true, 0, "xxxHTTP/1.0 404 Not Found\nServer: blah\n\nDATA", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("xxxHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/1.0 404 Not Found", out.status_line);
@@ -266,8 +283,8 @@
// Allow up to 4 bytes of junk to precede status line.
TEST_F(HttpNetworkTransactionTest, StatusLineJunk4Bytes) {
MockRead data_reads[] = {
- { true, 0, "\n\nQJHTTP/1.0 404 Not Found\nServer: blah\n\nDATA", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("\n\nQJHTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/1.0 404 Not Found", out.status_line);
@@ -277,8 +294,8 @@
// Beyond 4 bytes of slop and it should fail to find a status line.
TEST_F(HttpNetworkTransactionTest, StatusLineJunk5Bytes) {
MockRead data_reads[] = {
- { true, 0, "xxxxxHTTP/1.1 404 Not Found\nServer: blah", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("xxxxxHTTP/1.1 404 Not Found\nServer: blah"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
@@ -288,12 +305,12 @@
// Same as StatusLineJunk4Bytes, except the read chunks are smaller.
TEST_F(HttpNetworkTransactionTest, StatusLineJunk4Bytes_Slow) {
MockRead data_reads[] = {
- { true, 0, "\n", -1 },
- { true, 0, "\n", -1 },
- { true, 0, "Q", -1 },
- { true, 0, "J", -1 },
- { true, 0, "HTTP/1.0 404 Not Found\nServer: blah\n\nDATA", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("\n"),
+ MockRead("\n"),
+ MockRead("Q"),
+ MockRead("J"),
+ MockRead("HTTP/1.0 404 Not Found\nServer: blah\n\nDATA"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/1.0 404 Not Found", out.status_line);
@@ -303,8 +320,8 @@
// Close the connection before enough bytes to have a status line.
TEST_F(HttpNetworkTransactionTest, StatusLinePartial) {
MockRead data_reads[] = {
- { true, 0, "HTT", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("HTT"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
@@ -316,9 +333,9 @@
// cannot have a response body.
TEST_F(HttpNetworkTransactionTest, StopsReading204) {
MockRead data_reads[] = {
- { true, 0, "HTTP/1.1 204 No Content\r\n\r\n", -1 },
- { true, 0, "junk", -1 }, // Should not be read!!
- { false, net::OK, NULL, 0 },
+ MockRead("HTTP/1.1 204 No Content\r\n\r\n"),
+ MockRead("junk"), // Should not be read!!
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/1.1 204 No Content", out.status_line);
@@ -329,15 +346,13 @@
scoped_refptr<net::HttpNetworkSession> session = CreateSession();
MockRead data_reads[] = {
- { true, 0, "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n", -1 },
- { true, 0, "hello", -1 },
- { true, 0, "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n", -1 },
- { true, 0, "world", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
+ MockRead("hello"),
+ MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
+ MockRead("world"),
+ MockRead(false, net::OK),
};
MockSocket data;
- data.connect.async = true;
- data.connect.result = net::OK;
data.reads = data_reads;
mock_sockets[0] = &data;
mock_sockets[1] = NULL;
@@ -393,14 +408,12 @@
request.load_flags = 0;
MockRead data_reads[] = {
- { true, 0, "HTTP/1.0 100 Continue\r\n\r\n", -1 },
- { true, 0, "HTTP/1.0 200 OK\r\n\r\n", -1 },
- { true, 0, "hello world", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
+ MockRead("HTTP/1.0 200 OK\r\n\r\n"),
+ MockRead("hello world"),
+ MockRead(false, net::OK),
};
MockSocket data;
- data.connect.async = true;
- data.connect.result = net::OK;
data.reads = data_reads;
mock_sockets[0] = &data;
mock_sockets[1] = NULL;
@@ -442,24 +455,20 @@
request.load_flags = 0;
MockRead data1_reads[] = {
- { true, 0, "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n", -1 },
- { true, 0, "hello", -1 },
+ MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
+ MockRead("hello"),
read_failure, // Now, we reuse the connection and fail the first read.
};
MockSocket data1;
- data1.connect.async = true;
- data1.connect.result = net::OK;
data1.reads = data1_reads;
mock_sockets[0] = &data1;
MockRead data2_reads[] = {
- { true, 0, "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n", -1 },
- { true, 0, "world", -1 },
- { true, net::OK, NULL, 0 },
+ MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
+ MockRead("world"),
+ MockRead(true, net::OK),
};
MockSocket data2;
- data2.connect.async = true;
- data2.connect.result = net::OK;
data2.reads = data2_reads;
mock_sockets[1] = &data2;
@@ -498,12 +507,12 @@
}
TEST_F(HttpNetworkTransactionTest, KeepAliveConnectionReset) {
- MockRead read_failure = { true, net::ERR_CONNECTION_RESET, NULL, 0 };
+ MockRead read_failure(true, net::ERR_CONNECTION_RESET);
KeepAliveConnectionResendRequestTest(read_failure);
}
TEST_F(HttpNetworkTransactionTest, KeepAliveConnectionEOF) {
- MockRead read_failure = { false, net::OK, NULL, 0 }; // EOF
+ MockRead read_failure(false, net::OK); // EOF
KeepAliveConnectionResendRequestTest(read_failure);
}
@@ -517,14 +526,12 @@
request.load_flags = 0;
MockRead data_reads[] = {
- { true, net::ERR_CONNECTION_RESET, NULL, 0 },
- { true, 0, "HTTP/1.0 200 OK\r\n\r\n", -1 }, // Should not be used
- { true, 0, "hello world", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead(true, net::ERR_CONNECTION_RESET),
+ MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
+ MockRead("hello world"),
+ MockRead(false, net::OK),
};
MockSocket data;
- data.connect.async = true;
- data.connect.result = net::OK;
data.reads = data_reads;
mock_sockets[0] = &data;
mock_sockets[1] = NULL;
@@ -557,10 +564,10 @@
// Us: blank page
TEST_F(HttpNetworkTransactionTest, NonKeepAliveConnectionEOF) {
MockRead data_reads[] = {
- { false, net::OK, NULL, 0 }, // EOF
- { true, 0, "HTTP/1.0 200 OK\r\n\r\n", -1 }, // Should not be used
- { true, 0, "hello world", -1 },
- { false, net::OK, NULL, 0 },
+ MockRead(false, net::OK), // EOF
+ MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
+ MockRead("hello world"),
+ MockRead(false, net::OK),
};
SimpleGetHelperResult out = SimpleGetHelper(data_reads);
EXPECT_EQ("HTTP/0.9 200 OK", out.status_line);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698