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

Unified Diff: net/http/http_cache_unittest.cc

Issue 1327763003: Added and implemented URLRequest::GetTotalSentBytes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@spdy_sent_bytes_impl
Patch Set: Initial patch set Created 5 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
Index: net/http/http_cache_unittest.cc
diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc
index 779af46f7c7f1d9ee2a0e6cc78d70e6fe41b2cf6..30f0b8a87592f8a129344851857c97d4509f1002 100644
--- a/net/http/http_cache_unittest.cc
+++ b/net/http/http_cache_unittest.cc
@@ -4,6 +4,8 @@
#include "net/http/http_cache.h"
+#include <stdint.h>
+
#include <algorithm>
#include "base/bind.h"
@@ -136,7 +138,8 @@ void RunTransactionTestBase(HttpCache* cache,
HttpResponseInfo* response_info,
const BoundNetLog& net_log,
LoadTimingInfo* load_timing_info,
- int64* received_bytes) {
+ int64_t* sent_bytes,
+ int64_t* received_bytes) {
TestCompletionCallback callback;
// write to the cache
@@ -170,6 +173,8 @@ void RunTransactionTestBase(HttpCache* cache,
ReadAndVerifyTransaction(trans.get(), trans_info);
+ if (sent_bytes)
+ *sent_bytes = trans->GetTotalSentBytes();
if (received_bytes)
*received_bytes = trans->GetTotalReceivedBytes();
}
@@ -179,15 +184,15 @@ void RunTransactionTestWithRequest(HttpCache* cache,
const MockHttpRequest& request,
HttpResponseInfo* response_info) {
RunTransactionTestBase(cache, trans_info, request, response_info,
- BoundNetLog(), NULL, NULL);
+ BoundNetLog(), NULL, NULL, NULL);
mmenke 2015/09/04 15:21:48 While you're here, mind switching these to be null
sclittle 2015/09/04 22:03:10 Done.
}
void RunTransactionTestAndGetTiming(HttpCache* cache,
const MockTransaction& trans_info,
const BoundNetLog& log,
LoadTimingInfo* load_timing_info) {
- RunTransactionTestBase(cache, trans_info, MockHttpRequest(trans_info),
- NULL, log, load_timing_info, NULL);
+ RunTransactionTestBase(cache, trans_info, MockHttpRequest(trans_info), NULL,
+ log, load_timing_info, NULL, NULL);
}
void RunTransactionTest(HttpCache* cache, const MockTransaction& trans_info) {
@@ -214,7 +219,7 @@ void RunTransactionTestWithResponseInfoAndGetTiming(
const BoundNetLog& log,
LoadTimingInfo* load_timing_info) {
RunTransactionTestBase(cache, trans_info, MockHttpRequest(trans_info),
- response, log, load_timing_info, NULL);
+ response, log, load_timing_info, NULL, NULL);
}
void RunTransactionTestWithResponse(HttpCache* cache,
@@ -233,7 +238,7 @@ void RunTransactionTestWithResponseAndGetTiming(
LoadTimingInfo* load_timing_info) {
HttpResponseInfo response;
RunTransactionTestBase(cache, trans_info, MockHttpRequest(trans_info),
- &response, log, load_timing_info, NULL);
+ &response, log, load_timing_info, NULL, NULL);
response.headers->GetNormalizedHeaders(response_headers);
}
@@ -7108,46 +7113,67 @@ TEST(HttpCache, SetPriorityNewTransaction) {
RemoveMockTransaction(&kRangeGET_TransactionOK);
}
-int64 RunTransactionAndGetReceivedBytes(
- MockHttpCache& cache,
- const MockTransaction& trans_info) {
- int64 received_bytes = -1;
+namespace {
+
+void RunTransactionAndGetNetworkBytes(MockHttpCache& cache,
+ const MockTransaction& trans_info,
+ int64_t* sent_bytes,
+ int64_t* received_bytes) {
RunTransactionTestBase(cache.http_cache(), trans_info,
MockHttpRequest(trans_info), NULL, BoundNetLog(), NULL,
- &received_bytes);
- return received_bytes;
+ sent_bytes, received_bytes);
+}
+
+// Helper function to get the typical request size in bytes of |transaction|.
mmenke 2015/09/04 15:21:48 Should note for both these functions that they ass
sclittle 2015/09/04 22:03:10 Done.
+int64_t RequestSize(const MockTransaction& transaction) {
mmenke 2015/09/04 15:21:48 TransactionSize and RequestSize are not good names
sclittle 2015/09/04 22:03:10 Done.
+ // Request line, e.g. "GET /index.html HTTP/1.1\r\n".
+ int64_t sent_bytes = strlen(transaction.method) +
+ GURL(transaction.url).PathForRequest().size() + 12;
+
+ if (transaction.request_headers)
+ sent_bytes += strlen(transaction.request_headers);
+
+ return sent_bytes;
}
-int64 TransactionSize(const MockTransaction& transaction) {
+int64_t TransactionSize(const MockTransaction& transaction) {
return strlen(transaction.status) + strlen(transaction.response_headers) +
strlen(transaction.data);
}
-TEST(HttpCache, ReceivedBytesCacheMissAndThenHit) {
+} // namespace
+
+TEST(HttpCache, NetworkBytesCacheMissAndThenHit) {
MockHttpCache cache;
MockTransaction transaction(kSimpleGET_Transaction);
- int64 received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(TransactionSize(transaction), received_bytes);
+ int64_t sent, received;
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(TransactionSize(transaction), received);
- received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(0, received_bytes);
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(0, sent);
+ EXPECT_EQ(0, received);
}
-TEST(HttpCache, ReceivedBytesConditionalRequest304) {
+TEST(HttpCache, NetworkBytesConditionalRequest304) {
MockHttpCache cache;
ScopedMockTransaction transaction(kETagGET_Transaction);
- int64 received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(TransactionSize(transaction), received_bytes);
+ int64_t sent, received;
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(TransactionSize(transaction), received);
transaction.load_flags = LOAD_VALIDATE_CACHE;
transaction.handler = ETagGet_ConditionalRequest_Handler;
- received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(TransactionSize(transaction), received_bytes);
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(TransactionSize(transaction), received);
}
-TEST(HttpCache, ReceivedBytesConditionalRequest200) {
+TEST(HttpCache, NetworkBytesConditionalRequest200) {
MockHttpCache cache;
MockTransaction transaction(kTypicalGET_Transaction);
@@ -7159,45 +7185,53 @@ TEST(HttpCache, ReceivedBytesConditionalRequest200) {
"Cache-Control: max-age=0\n"
"Vary: Foo\n";
AddMockTransaction(&transaction);
- int64 received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(TransactionSize(transaction), received_bytes);
+ int64_t sent, received;
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(TransactionSize(transaction), received);
RevalidationServer server;
transaction.handler = server.Handler;
transaction.request_headers = "Foo: none\r\n";
- received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(TransactionSize(transaction), received_bytes);
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(TransactionSize(transaction), received);
RemoveMockTransaction(&transaction);
}
-TEST(HttpCache, ReceivedBytesRange) {
+TEST(HttpCache, NetworkBytesRange) {
MockHttpCache cache;
AddMockTransaction(&kRangeGET_TransactionOK);
MockTransaction transaction(kRangeGET_TransactionOK);
// Read bytes 40-49 from the network.
- int64 received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- int64 range_response_size = TransactionSize(transaction);
- EXPECT_EQ(range_response_size, received_bytes);
+ int64_t sent, received;
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ int64_t range_response_size = TransactionSize(transaction);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(range_response_size, received);
// Read bytes 40-49 from the cache.
- received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(0, received_bytes);
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(0, sent);
+ EXPECT_EQ(0, received);
base::MessageLoop::current()->RunUntilIdle();
// Read bytes 30-39 from the network.
transaction.request_headers = "Range: bytes = 30-39\r\n" EXTRA_HEADER;
transaction.data = "rg: 30-39 ";
- received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(range_response_size, received_bytes);
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction), sent);
+ EXPECT_EQ(range_response_size, received);
base::MessageLoop::current()->RunUntilIdle();
// Read bytes 20-29 and 50-59 from the network, bytes 30-49 from the cache.
transaction.request_headers = "Range: bytes = 20-59\r\n" EXTRA_HEADER;
transaction.data = "rg: 20-29 rg: 30-39 rg: 40-49 rg: 50-59 ";
- received_bytes = RunTransactionAndGetReceivedBytes(cache, transaction);
- EXPECT_EQ(range_response_size * 2, received_bytes);
+ RunTransactionAndGetNetworkBytes(cache, transaction, &sent, &received);
+ EXPECT_EQ(RequestSize(transaction) * 2, sent);
+ EXPECT_EQ(range_response_size * 2, received);
RemoveMockTransaction(&kRangeGET_TransactionOK);
}

Powered by Google App Engine
This is Rietveld 408576698