Index: chrome/browser/net/passive_log_collector_unittest.cc |
diff --git a/chrome/browser/net/passive_log_collector_unittest.cc b/chrome/browser/net/passive_log_collector_unittest.cc |
index ef3d3964f90b023c92d570c561ae99fb21f76c39..40dfc92e69ef26007eba2bd0e6713e7cea71bb7b 100644 |
--- a/chrome/browser/net/passive_log_collector_unittest.cc |
+++ b/chrome/browser/net/passive_log_collector_unittest.cc |
@@ -13,17 +13,18 @@ namespace { |
typedef PassiveLogCollector::RequestTracker RequestTracker; |
typedef PassiveLogCollector::RequestInfoList RequestInfoList; |
+typedef net::NetLog NetLog; |
-const net::NetLog::SourceType kSourceType = net::NetLog::SOURCE_NONE; |
+const NetLog::SourceType kSourceType = NetLog::SOURCE_NONE; |
PassiveLogCollector::Entry MakeStartLogEntryWithURL(int source_id, |
const std::string& url) { |
return PassiveLogCollector::Entry( |
0, |
- net::NetLog::TYPE_URL_REQUEST_START, |
+ NetLog::TYPE_URL_REQUEST_START, |
base::TimeTicks(), |
- net::NetLog::Source(kSourceType, source_id), |
- net::NetLog::PHASE_BEGIN, |
+ NetLog::Source(kSourceType, source_id), |
+ NetLog::PHASE_BEGIN, |
new net::NetLogStringParameter(url)); |
} |
@@ -35,18 +36,36 @@ PassiveLogCollector::Entry MakeStartLogEntry(int source_id) { |
PassiveLogCollector::Entry MakeEndLogEntry(int source_id) { |
return PassiveLogCollector::Entry( |
0, |
- net::NetLog::TYPE_REQUEST_ALIVE, |
+ NetLog::TYPE_REQUEST_ALIVE, |
base::TimeTicks(), |
- net::NetLog::Source(kSourceType, source_id), |
- net::NetLog::PHASE_END, |
+ NetLog::Source(kSourceType, source_id), |
+ NetLog::PHASE_END, |
NULL); |
} |
+void AddStartURLRequestEntries(PassiveLogCollector* collector, uint32 id) { |
+ collector->OnAddEntry(NetLog::TYPE_REQUEST_ALIVE, base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, id), |
+ NetLog::PHASE_BEGIN, NULL); |
+ collector->OnAddEntry(NetLog::TYPE_URL_REQUEST_START, base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, id), |
+ NetLog::PHASE_BEGIN, new net::NetLogStringParameter( |
+ StringPrintf("http://req%d", id))); |
+} |
+ |
+void AddEndURLRequestEntries(PassiveLogCollector* collector, uint32 id) { |
+ collector->OnAddEntry(NetLog::TYPE_REQUEST_ALIVE, base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, id), |
+ NetLog::PHASE_END, NULL); |
+} |
+ |
static const int kMaxNumLoadLogEntries = 1; |
+} // namespace |
+ |
TEST(RequestTrackerTest, BasicBounded) { |
- RequestTracker tracker(NULL); |
- EXPECT_FALSE(tracker.IsUnbounded()); |
+ RequestTracker tracker(NULL, NULL); |
+ EXPECT_FALSE(tracker.is_unbounded()); |
EXPECT_EQ(0u, tracker.GetLiveRequests().size()); |
EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size()); |
@@ -79,8 +98,8 @@ TEST(RequestTrackerTest, BasicBounded) { |
} |
TEST(RequestTrackerTest, GraveyardBounded) { |
- RequestTracker tracker(NULL); |
- EXPECT_FALSE(tracker.IsUnbounded()); |
+ RequestTracker tracker(NULL, NULL); |
+ EXPECT_FALSE(tracker.is_unbounded()); |
EXPECT_EQ(0u, tracker.GetLiveRequests().size()); |
EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size()); |
@@ -104,14 +123,14 @@ TEST(RequestTrackerTest, GraveyardBounded) { |
} |
TEST(RequestTrackerTest, GraveyardUnbounded) { |
- RequestTracker tracker(NULL); |
- EXPECT_FALSE(tracker.IsUnbounded()); |
+ RequestTracker tracker(NULL, NULL); |
+ EXPECT_FALSE(tracker.is_unbounded()); |
EXPECT_EQ(0u, tracker.GetLiveRequests().size()); |
EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size()); |
tracker.SetUnbounded(true); |
- EXPECT_TRUE(tracker.IsUnbounded()); |
+ EXPECT_TRUE(tracker.is_unbounded()); |
// Add twice as many requests as would fit in the bounded graveyard. |
@@ -136,8 +155,8 @@ TEST(RequestTrackerTest, GraveyardUnbounded) { |
// Check that we exclude "chrome://" URLs from being saved into the recent |
// requests list (graveyard). |
TEST(RequestTrackerTest, GraveyardIsFiltered) { |
- RequestTracker tracker(NULL); |
- EXPECT_FALSE(tracker.IsUnbounded()); |
+ RequestTracker tracker(NULL, NULL); |
+ EXPECT_FALSE(tracker.is_unbounded()); |
// This will be excluded. |
std::string url1 = "chrome://dontcare/"; |
@@ -161,13 +180,13 @@ TEST(RequestTrackerTest, GraveyardIsFiltered) { |
// Convert an unbounded tracker back to being bounded. |
TEST(RequestTrackerTest, ConvertUnboundedToBounded) { |
- RequestTracker tracker(NULL); |
- EXPECT_FALSE(tracker.IsUnbounded()); |
+ RequestTracker tracker(NULL, NULL); |
+ EXPECT_FALSE(tracker.is_unbounded()); |
EXPECT_EQ(0u, tracker.GetLiveRequests().size()); |
EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size()); |
tracker.SetUnbounded(true); |
- EXPECT_TRUE(tracker.IsUnbounded()); |
+ EXPECT_TRUE(tracker.is_unbounded()); |
// Add twice as many requests as would fit in the bounded graveyard. |
@@ -193,4 +212,811 @@ TEST(RequestTrackerTest, ConvertUnboundedToBounded) { |
ASSERT_EQ(kMaxSize, tracker.GetRecentlyDeceased().size()); |
} |
-} // namespace |
+TEST(PassiveLogCollectorTest, BasicConnectJobAssociation) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ AddStartURLRequestEntries(&log, 20); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(10u, requests[0].source_id); |
+ EXPECT_EQ(2u, requests[0].entries.size()); |
+ EXPECT_EQ(20u, requests[1].source_id); |
+ EXPECT_EQ(2u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(21)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ EXPECT_EQ(5u, requests[1].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ AddEndURLRequestEntries(&log, 20); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, BasicSocketAssociation) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ AddStartURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_END, NULL); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(21)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(21)); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ EXPECT_EQ(7u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(25)); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(8u, requests[0].entries.size()); |
+ EXPECT_EQ(10u, requests[1].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ AddEndURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(9u, requests[0].entries.size()); |
+ EXPECT_EQ(11u, requests[1].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, IdleSocketAssociation) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ AddStartURLRequestEntries(&log, 20); |
+ log.OnAddEntry(NetLog::TYPE_INIT_PROXY_RESOLVER , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(2u, requests[0].entries.size()); |
+ EXPECT_EQ(3u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(25)); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ AddEndURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(7u, requests[1].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, IdleAssociateAfterConnectJobStarted) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ AddStartURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_END, NULL); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(21)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(25)); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ AddEndURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ EXPECT_EQ(7u, requests[1].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, LateBindDifferentConnectJob) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ AddStartURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_END, NULL); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(21)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_END, NULL); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31), |
+ NetLog::PHASE_END, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(21)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(31)); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(7u, requests[0].entries.size()); |
+ EXPECT_EQ(8u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(25)); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(9u, requests[0].entries.size()); |
+ EXPECT_EQ(11u, requests[1].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ AddEndURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(10u, requests[0].entries.size()); |
+ EXPECT_EQ(12u, requests[1].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, LateBindPendingConnectJob) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ AddStartURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_END, NULL); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(2u, requests[0].entries.size()); |
+ EXPECT_EQ(2u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(21)); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(25)); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(2u, requests.size()); |
+ |
+ EXPECT_EQ(7u, requests[0].entries.size()); |
+ EXPECT_EQ(9u, requests[1].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ AddEndURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 25), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(8u, requests[0].entries.size()); |
+ EXPECT_EQ(10u, requests[1].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, ReconnectToIdleSocket) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ |
+ // Initial socket. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ |
+ // Reconnect. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(17)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 17), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(7u, requests[0].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, ReconnectToLateBoundSocket) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ |
+ // Initial socket. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ |
+ // Now reconnect. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ |
+ // But we get late bound to an idle socket. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(17)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 17), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(7u, requests[0].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(8u, requests[0].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, ReconnectToLateBoundConnectJob) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ |
+ // Initial socket. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ |
+ // Now reconnect. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ |
+ // But we get late bound to a different ConnectJob. |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 12), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 12), |
+ NetLog::PHASE_END, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(12)); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(8u, requests[0].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(17)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 17), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(10u, requests[0].entries.size()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ |
+ log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(11u, requests[0].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, LostConnectJob) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter(11)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_NONE, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ |
+ log.connect_job_tracker_.Clear(); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(11)); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, LostSocket) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_END, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_BEGIN, NULL); |
+ log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_END, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(7u, requests[0].entries.size()); |
+ |
+ log.socket_tracker_.Clear(); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+} |
+ |
+TEST(PassiveLogCollectorTest, AccumulateRxTxData) { |
+ PassiveLogCollector log; |
+ |
+ RequestInfoList requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ |
+ AddStartURLRequestEntries(&log, 10); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_SENT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(1)); |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type); |
+ EXPECT_EQ("Tx/Rx: 1/0 [1/0 total on socket] (Bytes)", |
+ requests[0].entries[4].extra_parameters->ToString()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_RECEIVED , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(2)); |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type); |
+ EXPECT_EQ("Tx/Rx: 1/2 [1/2 total on socket] (Bytes)", |
+ requests[0].entries[4].extra_parameters->ToString()); |
+ |
+ AddEndURLRequestEntries(&log, 10); |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type); |
+ EXPECT_EQ("Tx/Rx: 1/2 [1/2 total on socket] (Bytes)", |
+ requests[0].entries[4].extra_parameters->ToString()); |
+ |
+ AddStartURLRequestEntries(&log, 20); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(15)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_NONE, NULL); |
+ |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(4u, requests[0].entries.size()); |
+ |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_SENT , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(4)); |
+ log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_RECEIVED , base::TimeTicks(), |
+ NetLog::Source(NetLog::SOURCE_SOCKET, 15), |
+ NetLog::PHASE_END, new net::NetLogIntegerParameter(8)); |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(1u, requests.size()); |
+ EXPECT_EQ(5u, requests[0].entries.size()); |
+ EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type); |
+ EXPECT_EQ("Tx/Rx: 4/8 [5/10 total on socket] (Bytes)", |
+ requests[0].entries[4].extra_parameters->ToString()); |
+ |
+ AddEndURLRequestEntries(&log, 20); |
+ requests = log.url_request_tracker()->GetLiveRequests(); |
+ EXPECT_EQ(0u, requests.size()); |
+ requests = log.url_request_tracker()->GetRecentlyDeceased(); |
+ EXPECT_EQ(2u, requests.size()); |
+ EXPECT_EQ(6u, requests[0].entries.size()); |
+ EXPECT_EQ(6u, requests[1].entries.size()); |
+} |