diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-02 01:00:57 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-02 01:00:57 +0000 |
commit | f3da152dfaa23bf58475e17d5f3d207806ae4705 (patch) | |
tree | bb00680a185d4038731ed16e92e1d16a24f29dd9 /net | |
parent | aa3c64b26eced83e5f7544d7243061e5c39e8d18 (diff) | |
download | chromium_src-f3da152dfaa23bf58475e17d5f3d207806ae4705.zip chromium_src-f3da152dfaa23bf58475e17d5f3d207806ae4705.tar.gz chromium_src-f3da152dfaa23bf58475e17d5f3d207806ae4705.tar.bz2 |
Rename CapturingNetLog::Entry to CapturingNetLog::CaptureEntry,
and have it keep its own copy of a NetLog Entry's parameters.
This is in preparation for a NetLog refactoring that will result
in NetLog parameters lasting no longer than the function call,
to avoid always having to copy all parameters.
This does make CapturingNetLogs much less efficient themselves,
but they should not be used in production code, anyways.
TEST=NONE
BUG=126243
Review URL: https://chromiumcodereview.appspot.com/10442085
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
28 files changed, 299 insertions, 197 deletions
diff --git a/net/base/capturing_net_log.cc b/net/base/capturing_net_log.cc index 2c6867c..2ab0223 100644 --- a/net/base/capturing_net_log.cc +++ b/net/base/capturing_net_log.cc @@ -5,19 +5,58 @@ #include "net/base/capturing_net_log.h" #include "base/logging.h" +#include "base/values.h" namespace net { -CapturingNetLog::Entry::Entry(EventType type, - const base::TimeTicks& time, - Source source, - EventPhase phase, - EventParameters* extra_parameters) - : type(type), time(time), source(source), phase(phase), - extra_parameters(extra_parameters) { +CapturingNetLog::CapturedEntry::CapturedEntry( + EventType type, + const base::TimeTicks& time, + Source source, + EventPhase phase, + scoped_ptr<DictionaryValue> params) + : type(type), + time(time), + source(source), + phase(phase), + params(params.Pass()) { +} + +CapturingNetLog::CapturedEntry::CapturedEntry(const CapturedEntry& entry) { + *this = entry; +} + +CapturingNetLog::CapturedEntry::~CapturedEntry() {} + +CapturingNetLog::CapturedEntry& +CapturingNetLog::CapturedEntry::operator=(const CapturedEntry& entry) { + type = entry.type; + time = entry.time; + source = entry.source; + phase = entry.phase; + params.reset(entry.params.get() ? entry.params->DeepCopy() : NULL); + return *this; +} + +bool CapturingNetLog::CapturedEntry::GetStringValue( + const std::string& name, + std::string* value) const { + if (!params.get()) + return false; + return params->GetString(name, value); } -CapturingNetLog::Entry::~Entry() {} +bool CapturingNetLog::CapturedEntry::GetIntegerValue( + const std::string& name, + int* value) const { + if (!params.get()) + return false; + return params->GetInteger(name, value); +} + +bool CapturingNetLog::CapturedEntry::GetNetErrorCode(int* value) const { + return GetIntegerValue("net_error", value); +} CapturingNetLog::CapturingNetLog(size_t max_num_entries) : last_id_(0), @@ -27,14 +66,14 @@ CapturingNetLog::CapturingNetLog(size_t max_num_entries) CapturingNetLog::~CapturingNetLog() {} -void CapturingNetLog::GetEntries(EntryList* entry_list) const { +void CapturingNetLog::GetEntries(CapturedEntryList* entry_list) const { base::AutoLock lock(lock_); - *entry_list = entries_; + *entry_list = captured_entries_; } void CapturingNetLog::Clear() { base::AutoLock lock(lock_); - entries_.clear(); + captured_entries_.clear(); } void CapturingNetLog::SetLogLevel(NetLog::LogLevel log_level) { @@ -49,9 +88,22 @@ void CapturingNetLog::AddEntry( const scoped_refptr<EventParameters>& extra_parameters) { DCHECK(source.is_valid()); base::AutoLock lock(lock_); - Entry entry(type, base::TimeTicks::Now(), source, phase, extra_parameters); - if (entries_.size() + 1 < max_num_entries_) - entries_.push_back(entry); + if (captured_entries_.size() >= max_num_entries_) + return; + // Using Dictionaries instead of Values makes checking values a little + // simpler. + DictionaryValue* param_dict = NULL; + if (extra_parameters) { + Value* param_value = extra_parameters->ToValue(); + if (param_value && !param_value->GetAsDictionary(¶m_dict)) + delete param_value; + } + captured_entries_.push_back( + CapturedEntry(type, + base::TimeTicks::Now(), + source, + phase, + scoped_ptr<DictionaryValue>(param_dict))); } uint32 CapturingNetLog::NextID() { @@ -88,7 +140,7 @@ CapturingBoundNetLog::CapturingBoundNetLog(size_t max_num_entries) CapturingBoundNetLog::~CapturingBoundNetLog() {} void CapturingBoundNetLog::GetEntries( - CapturingNetLog::EntryList* entry_list) const { + CapturingNetLog::CapturedEntryList* entry_list) const { capturing_net_log_.GetEntries(entry_list); } diff --git a/net/base/capturing_net_log.h b/net/base/capturing_net_log.h index 2482d04..fc9a567 100644 --- a/net/base/capturing_net_log.h +++ b/net/base/capturing_net_log.h @@ -6,40 +6,67 @@ #define NET_BASE_CAPTURING_NET_LOG_H_ #pragma once +#include <string> #include <vector> #include "base/atomicops.h" #include "base/basictypes.h" #include "base/compiler_specific.h" #include "base/memory/ref_counted.h" +#include "base/memory/scoped_ptr.h" #include "base/synchronization/lock.h" #include "base/time.h" #include "net/base/net_export.h" #include "net/base/net_log.h" +namespace base { +class DictionaryValue; +} + namespace net { // CapturingNetLog is an implementation of NetLog that saves messages to a -// bounded buffer. +// bounded buffer. CapturingNetLogs should only be used in unit tests, never +// in production code. +// TODO(mmenke): Move CapturingNetLog to net_unittests project, once the CL +// to remove the use of it in the Jingle unit tests has landed. class NET_EXPORT CapturingNetLog : public NetLog { public: - struct NET_EXPORT Entry { - Entry(EventType type, - const base::TimeTicks& time, - Source source, - EventPhase phase, - EventParameters* extra_parameters); - ~Entry(); + struct NET_EXPORT_PRIVATE CapturedEntry { + CapturedEntry(EventType type, + const base::TimeTicks& time, + Source source, + EventPhase phase, + scoped_ptr<base::DictionaryValue> params); + // Copy constructor needed to store in a std::vector because of the + // scoped_ptr. + CapturedEntry(const CapturedEntry& entry); + + ~CapturedEntry(); + + // Equality operator needed to store in a std::vector because of the + // scoped_ptr. + CapturedEntry& operator=(const CapturedEntry& entry); + + // Attempt to retrieve an value of the specified type with the given name + // from |params|. Returns true on success, false on failure. Does not + // modify |value| on failure. + bool GetStringValue(const std::string& name, std::string* value) const; + bool GetIntegerValue(const std::string& name, int* value) const; + + // Same as GetIntegerValue, but returns the error code associated with a + // log entry. + bool GetNetErrorCode(int* value) const; EventType type; base::TimeTicks time; Source source; EventPhase phase; - scoped_refptr<EventParameters> extra_parameters; + scoped_ptr<base::DictionaryValue> params; }; // Ordered set of entries that were logged. - typedef std::vector<Entry> EntryList; + typedef std::vector<CapturedEntry> CapturedEntryList; enum { kUnbounded = -1 }; @@ -49,7 +76,7 @@ class NET_EXPORT CapturingNetLog : public NetLog { virtual ~CapturingNetLog(); // Returns the list of all entries in the log. - void GetEntries(EntryList* entry_list) const; + void GetEntries(CapturedEntryList* entry_list) const; void Clear(); @@ -77,7 +104,7 @@ class NET_EXPORT CapturingNetLog : public NetLog { base::subtle::Atomic32 last_id_; size_t max_num_entries_; - EntryList entries_; + CapturedEntryList captured_entries_; NetLog::LogLevel log_level_; @@ -99,7 +126,7 @@ class NET_EXPORT_PRIVATE CapturingBoundNetLog { BoundNetLog bound() const { return net_log_; } // Fills |entry_list| with all entries in the log. - void GetEntries(CapturingNetLog::EntryList* entry_list) const; + void GetEntries(CapturingNetLog::CapturedEntryList* entry_list) const; void Clear(); diff --git a/net/base/net_log_event_type_list.h b/net/base/net_log_event_type_list.h index 9596cb9..0b1ce83 100644 --- a/net/base/net_log_event_type_list.h +++ b/net/base/net_log_event_type_list.h @@ -1039,7 +1039,7 @@ EVENT_TYPE(SPDY_SESSION_SENT_WINDOW_UPDATE) // Sending of a SPDY CREDENTIAL frame (which sends a certificate or // certificate chain to the server). // { -// "slot" : <The slot that this certificate should be stored in >, +// "slot" : <The slot that this certificate should be stored in>, // "origin" : <The origin this certificate should be used for>, // } EVENT_TYPE(SPDY_SESSION_SEND_CREDENTIAL) @@ -1065,7 +1065,7 @@ EVENT_TYPE(SPDY_SESSION_STALLED_ON_SEND_WINDOW) // Session is closing // { -// "status" : <The error status of the closure>, +// "net_error" : <The error status of the closure>, // "description": <The textual description for the closure>, // } EVENT_TYPE(SPDY_SESSION_CLOSE) diff --git a/net/base/net_log_unittest.cc b/net/base/net_log_unittest.cc index c9258a9..6471b2d 100644 --- a/net/base/net_log_unittest.cc +++ b/net/base/net_log_unittest.cc @@ -19,7 +19,7 @@ TEST(NetLog, ScopedNetLogEventTest) { scoped_ptr<ScopedNetLogEvent> net_log_event( new ScopedNetLogEvent(net_log, NetLog::TYPE_REQUEST_ALIVE, NULL)); - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(1u, entries.size()); EXPECT_TRUE(LogContainsBeginEvent(entries, 0, NetLog::TYPE_REQUEST_ALIVE)); diff --git a/net/base/net_log_unittest.h b/net/base/net_log_unittest.h index 5e77275..2a4b458 100644 --- a/net/base/net_log_unittest.h +++ b/net/base/net_log_unittest.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -21,7 +21,7 @@ inline base::TimeTicks MakeTime(int t) { } inline ::testing::AssertionResult LogContainsEventHelper( - const CapturingNetLog::EntryList& entries, + const CapturingNetLog::CapturedEntryList& entries, int i, // Negative indices are reverse indices. const base::TimeTicks& expected_time, bool check_time, @@ -33,7 +33,7 @@ inline ::testing::AssertionResult LogContainsEventHelper( static_cast<size_t>(i); if (j >= entries.size()) return ::testing::AssertionFailure() << j << " is out of bounds."; - const CapturingNetLog::Entry& entry = entries[j]; + const CapturingNetLog::CapturedEntry& entry = entries[j]; if (expected_event != entry.type) { return ::testing::AssertionFailure() << "Actual event: " << NetLog::EventTypeToString(entry.type) @@ -57,7 +57,7 @@ inline ::testing::AssertionResult LogContainsEventHelper( } inline ::testing::AssertionResult LogContainsEventAtTime( - const CapturingNetLog::EntryList& log, + const CapturingNetLog::CapturedEntryList& log, int i, // Negative indices are reverse indices. const base::TimeTicks& expected_time, NetLog::EventType expected_event, @@ -68,7 +68,7 @@ inline ::testing::AssertionResult LogContainsEventAtTime( // Version without timestamp. inline ::testing::AssertionResult LogContainsEvent( - const CapturingNetLog::EntryList& log, + const CapturingNetLog::CapturedEntryList& log, int i, // Negative indices are reverse indices. NetLog::EventType expected_event, NetLog::EventPhase expected_phase) { @@ -78,7 +78,7 @@ inline ::testing::AssertionResult LogContainsEvent( // Version for PHASE_BEGIN (and no timestamp). inline ::testing::AssertionResult LogContainsBeginEvent( - const CapturingNetLog::EntryList& log, + const CapturingNetLog::CapturedEntryList& log, int i, // Negative indices are reverse indices. NetLog::EventType expected_event) { return LogContainsEvent(log, i, expected_event, NetLog::PHASE_BEGIN); @@ -86,14 +86,14 @@ inline ::testing::AssertionResult LogContainsBeginEvent( // Version for PHASE_END (and no timestamp). inline ::testing::AssertionResult LogContainsEndEvent( - const CapturingNetLog::EntryList& log, + const CapturingNetLog::CapturedEntryList& log, int i, // Negative indices are reverse indices. NetLog::EventType expected_event) { return LogContainsEvent(log, i, expected_event, NetLog::PHASE_END); } inline ::testing::AssertionResult LogContainsEntryWithType( - const CapturingNetLog::EntryList& entries, + const CapturingNetLog::CapturedEntryList& entries, int i, // Negative indices are reverse indices. NetLog::EventType type) { // Negative indices are reverse indices. @@ -102,7 +102,7 @@ inline ::testing::AssertionResult LogContainsEntryWithType( static_cast<size_t>(i); if (j >= entries.size()) return ::testing::AssertionFailure() << j << " is out of bounds."; - const CapturingNetLog::Entry& entry = entries[j]; + const CapturingNetLog::CapturedEntry& entry = entries[j]; if (entry.type != type) return ::testing::AssertionFailure() << "Type does not match."; return ::testing::AssertionSuccess(); @@ -113,13 +113,13 @@ inline ::testing::AssertionResult LogContainsEntryWithType( // as long as the first index where it is found is at least |min_index|. // Returns the position where the event was found. inline size_t ExpectLogContainsSomewhere( - const CapturingNetLog::EntryList& entries, + const CapturingNetLog::CapturedEntryList& entries, size_t min_index, NetLog::EventType expected_event, NetLog::EventPhase expected_phase) { size_t i = 0; for (; i < entries.size(); ++i) { - const CapturingNetLog::Entry& entry = entries[i]; + const CapturingNetLog::CapturedEntry& entry = entries[i]; if (entry.type == expected_event && entry.phase == expected_phase) break; @@ -133,13 +133,13 @@ inline size_t ExpectLogContainsSomewhere( // as long as one index where it is found is at least |min_index|. // Returns the first such position where the event was found. inline size_t ExpectLogContainsSomewhereAfter( - const CapturingNetLog::EntryList& entries, + const CapturingNetLog::CapturedEntryList& entries, size_t min_index, NetLog::EventType expected_event, NetLog::EventPhase expected_phase) { size_t i = min_index; for (; i < entries.size(); ++i) { - const CapturingNetLog::Entry& entry = entries[i]; + const CapturingNetLog::CapturedEntry& entry = entries[i]; if (entry.type == expected_event && entry.phase == expected_phase) break; diff --git a/net/http/http_auth_handler_unittest.cc b/net/http/http_auth_handler_unittest.cc index 79aa2bc..ee07437 100644 --- a/net/http/http_auth_handler_unittest.cc +++ b/net/http/http_auth_handler_unittest.cc @@ -48,7 +48,7 @@ TEST(HttpAuthHandlerTest, NetLog) { if (async) test_callback.WaitForResult(); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; capturing_net_log.GetEntries(&entries); EXPECT_EQ(2u, entries.size()); diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc index 08065f6..cd47a1a 100644 --- a/net/http/http_cache_unittest.cc +++ b/net/http/http_cache_unittest.cc @@ -436,7 +436,7 @@ TEST(HttpCache, SimpleGETNoDiskCache) { // Check that the NetLog was filled as expected. // (We attempted to both Open and Create entries, but both failed). - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(6u, entries.size()); @@ -579,7 +579,7 @@ TEST(HttpCache, SimpleGET_LoadOnlyFromCache_Hit) { log.bound()); // Check that the NetLog was filled as expected. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(8u, entries.size()); @@ -710,7 +710,7 @@ TEST(HttpCache, SimpleGET_LoadBypassCache) { RunTransactionTestWithLog(cache.http_cache(), transaction, log.bound()); // Check that the NetLog was filled as expected. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(8u, entries.size()); diff --git a/net/http/http_network_transaction_spdy2_unittest.cc b/net/http/http_network_transaction_spdy2_unittest.cc index 7ede328..ddd5367 100644 --- a/net/http/http_network_transaction_spdy2_unittest.cc +++ b/net/http/http_network_transaction_spdy2_unittest.cc @@ -13,8 +13,10 @@ #include "base/compiler_specific.h" #include "base/file_path.h" #include "base/file_util.h" +#include "base/json/json_writer.h" #include "base/memory/scoped_ptr.h" #include "base/metrics/histogram.h" +#include "base/string_util.h" #include "base/test/test_file_util.h" #include "base/utf_string_conversions.h" #include "net/base/auth.h" @@ -111,6 +113,21 @@ int GetIdleSocketCountInSSLSocketPool(net::HttpNetworkSession* session) { net::HttpNetworkSession::NORMAL_SOCKET_POOL)->IdleSocketCount(); } +// Takes in a Value created from a NetLogHttpResponseParameter, and returns +// a JSONified list of headers as a single string. Uses single quotes instead +// of double quotes for easier comparison. Returns false on failure. +bool GetHeaders(DictionaryValue* params, std::string* headers) { + if (!params) + return false; + ListValue* header_list; + if (!params->GetList("headers", &header_list)) + return false; + std::string double_quote_headers; + base::JSONWriter::Write(header_list, &double_quote_headers); + ReplaceChars(double_quote_headers, "\"", "'", headers); + return true; +} + } // namespace namespace net { @@ -242,7 +259,7 @@ class HttpNetworkTransactionSpdy2Test : public PlatformTest { rv = ReadTransaction(trans.get(), &out.response_data); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST_HEADERS, @@ -252,13 +269,13 @@ class HttpNetworkTransactionSpdy2Test : public PlatformTest { NetLog::TYPE_HTTP_TRANSACTION_READ_RESPONSE_HEADERS, NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogHttpRequestParameter* request_params = - static_cast<NetLogHttpRequestParameter*>(entry.extra_parameters.get()); - EXPECT_EQ("GET / HTTP/1.1\r\n", request_params->GetLine()); - EXPECT_EQ("Host: www.google.com\r\n" - "Connection: keep-alive\r\n\r\n", - request_params->GetHeaders().ToString()); + std::string line; + EXPECT_TRUE(entries[pos].GetStringValue("line", &line)); + EXPECT_EQ("GET / HTTP/1.1\r\n", line); + + std::string headers; + EXPECT_TRUE(GetHeaders(entries[pos].params.get(), &headers)); + EXPECT_EQ("['Host: www.google.com','Connection: keep-alive']", headers); return out; } @@ -1777,7 +1794,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, BasicAuthProxyNoKeepAlive) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -1878,7 +1895,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, BasicAuthProxyKeepAlive) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -2072,7 +2089,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, rv = callback1.WaitForResult(); EXPECT_EQ(ERR_UNEXPECTED_PROXY_AUTH, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -4987,7 +5004,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, BasicAuthSpdyProxy) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -8878,7 +8895,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, ProxyTunnelGet) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -8942,7 +8959,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, ProxyTunnelGetHangup) { rv = callback1.WaitForResult(); EXPECT_EQ(ERR_EMPTY_RESPONSE, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, diff --git a/net/http/http_network_transaction_spdy3_unittest.cc b/net/http/http_network_transaction_spdy3_unittest.cc index 992a9d2..4465a1c 100644 --- a/net/http/http_network_transaction_spdy3_unittest.cc +++ b/net/http/http_network_transaction_spdy3_unittest.cc @@ -13,8 +13,10 @@ #include "base/compiler_specific.h" #include "base/file_path.h" #include "base/file_util.h" +#include "base/json/json_writer.h" #include "base/memory/scoped_ptr.h" #include "base/metrics/histogram.h" +#include "base/string_util.h" #include "base/test/test_file_util.h" #include "base/utf_string_conversions.h" #include "net/base/auth.h" @@ -166,6 +168,21 @@ HttpNetworkSession* CreateSession(SessionDependencies* session_deps) { return new HttpNetworkSession(params); } +// Takes in a Value created from a NetLogHttpResponseParameter, and returns +// a JSONified list of headers as a single string. Uses single quotes instead +// of double quotes for easier comparison. Returns false on failure. +bool GetHeaders(DictionaryValue* params, std::string* headers) { + if (!params) + return false; + ListValue* header_list; + if (!params->GetList("headers", &header_list)) + return false; + std::string double_quote_headers; + base::JSONWriter::Write(header_list, &double_quote_headers); + ReplaceChars(double_quote_headers, "\"", "'", headers); + return true; +} + } // namespace class HttpNetworkTransactionSpdy3Test : public PlatformTest { @@ -242,7 +259,7 @@ class HttpNetworkTransactionSpdy3Test : public PlatformTest { rv = ReadTransaction(trans.get(), &out.response_data); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST_HEADERS, @@ -252,13 +269,13 @@ class HttpNetworkTransactionSpdy3Test : public PlatformTest { NetLog::TYPE_HTTP_TRANSACTION_READ_RESPONSE_HEADERS, NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogHttpRequestParameter* request_params = - static_cast<NetLogHttpRequestParameter*>(entry.extra_parameters.get()); - EXPECT_EQ("GET / HTTP/1.1\r\n", request_params->GetLine()); - EXPECT_EQ("Host: www.google.com\r\n" - "Connection: keep-alive\r\n\r\n", - request_params->GetHeaders().ToString()); + std::string line; + EXPECT_TRUE(entries[pos].GetStringValue("line", &line)); + EXPECT_EQ("GET / HTTP/1.1\r\n", line); + + std::string headers; + EXPECT_TRUE(GetHeaders(entries[pos].params.get(), &headers)); + EXPECT_EQ("['Host: www.google.com','Connection: keep-alive']", headers); return out; } @@ -1777,7 +1794,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, BasicAuthProxyNoKeepAlive) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -1878,7 +1895,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, BasicAuthProxyKeepAlive) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -2072,7 +2089,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, rv = callback1.WaitForResult(); EXPECT_EQ(ERR_UNEXPECTED_PROXY_AUTH, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -4987,7 +5004,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, BasicAuthSpdyProxy) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -8877,7 +8894,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, ProxyTunnelGet) { rv = callback1.WaitForResult(); EXPECT_EQ(OK, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, @@ -8941,7 +8958,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, ProxyTunnelGetHangup) { rv = callback1.WaitForResult(); EXPECT_EQ(ERR_EMPTY_RESPONSE, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t pos = ExpectLogContainsSomewhere( entries, 0, NetLog::TYPE_HTTP_TRANSACTION_SEND_TUNNEL_HEADERS, diff --git a/net/proxy/multi_threaded_proxy_resolver_unittest.cc b/net/proxy/multi_threaded_proxy_resolver_unittest.cc index a1a4ad6..d574178 100644 --- a/net/proxy/multi_threaded_proxy_resolver_unittest.cc +++ b/net/proxy/multi_threaded_proxy_resolver_unittest.cc @@ -291,7 +291,7 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_Basic) { // on completion, this should have been copied into |log0|. // We also have 1 log entry that was emitted by the // MultiThreadedProxyResolver. - net::CapturingNetLog::EntryList entries0; + net::CapturingNetLog::CapturedEntryList entries0; log0.GetEntries(&entries0); ASSERT_EQ(2u, entries0.size()); @@ -402,7 +402,7 @@ TEST(MultiThreadedProxyResolverTest, EXPECT_EQ(0, callback0.WaitForResult()); EXPECT_EQ("PROXY request0:80", results0.ToPacString()); - net::CapturingNetLog::EntryList entries0; + net::CapturingNetLog::CapturedEntryList entries0; log0.GetEntries(&entries0); ASSERT_EQ(2u, entries0.size()); @@ -413,7 +413,7 @@ TEST(MultiThreadedProxyResolverTest, EXPECT_EQ(1, callback1.WaitForResult()); EXPECT_EQ("PROXY request1:80", results1.ToPacString()); - net::CapturingNetLog::EntryList entries1; + net::CapturingNetLog::CapturedEntryList entries1; log1.GetEntries(&entries1); ASSERT_EQ(4u, entries1.size()); @@ -428,7 +428,7 @@ TEST(MultiThreadedProxyResolverTest, EXPECT_EQ(2, callback2.WaitForResult()); EXPECT_EQ("PROXY request2:80", results2.ToPacString()); - net::CapturingNetLog::EntryList entries2; + net::CapturingNetLog::CapturedEntryList entries2; log2.GetEntries(&entries2); ASSERT_EQ(4u, entries2.size()); diff --git a/net/proxy/proxy_resolver_js_bindings_unittest.cc b/net/proxy/proxy_resolver_js_bindings_unittest.cc index 8122ef0..0b1e2dc 100644 --- a/net/proxy/proxy_resolver_js_bindings_unittest.cc +++ b/net/proxy/proxy_resolver_js_bindings_unittest.cc @@ -281,7 +281,7 @@ TEST(ProxyResolverJSBindingsTest, NetLog) { bindings->set_current_request_context(&context); std::string ip_address; - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); ASSERT_EQ(0u, entries.size()); @@ -325,7 +325,7 @@ TEST(ProxyResolverJSBindingsTest, NetLog) { entries, 7, NetLog::TYPE_PAC_JAVASCRIPT_DNS_RESOLVE_EX)); // Nothing has been emitted globally yet. - net::CapturingNetLog::EntryList global_log_entries; + net::CapturingNetLog::CapturedEntryList global_log_entries; global_log.GetEntries(&global_log_entries); EXPECT_EQ(0u, global_log_entries.size()); diff --git a/net/proxy/proxy_resolver_v8_unittest.cc b/net/proxy/proxy_resolver_v8_unittest.cc index 6c080a7..f1621a1 100644 --- a/net/proxy/proxy_resolver_v8_unittest.cc +++ b/net/proxy/proxy_resolver_v8_unittest.cc @@ -140,7 +140,7 @@ TEST(ProxyResolverV8Test, Direct) { EXPECT_EQ(0U, resolver.mock_js_bindings()->alerts.size()); EXPECT_EQ(0U, resolver.mock_js_bindings()->errors.size()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); // No bindings were called, so no log entries. EXPECT_EQ(0u, entries.size()); diff --git a/net/proxy/proxy_script_decider_unittest.cc b/net/proxy/proxy_script_decider_unittest.cc index cece805..a068df1 100644 --- a/net/proxy/proxy_script_decider_unittest.cc +++ b/net/proxy/proxy_script_decider_unittest.cc @@ -134,7 +134,7 @@ TEST(ProxyScriptDeciderTest, CustomPacSucceeds) { EXPECT_EQ(rule.text(), decider.script_data()->utf16()); // Check the NetLog was filled correctly. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(4u, entries.size()); @@ -171,7 +171,7 @@ TEST(ProxyScriptDeciderTest, CustomPacFails1) { EXPECT_EQ(NULL, decider.script_data()); // Check the NetLog was filled correctly. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(4u, entries.size()); @@ -297,7 +297,7 @@ TEST(ProxyScriptDeciderTest, AutodetectFailCustomSuccess2) { // Check the NetLog was filled correctly. // (Note that various states are repeated since both WPAD and custom // PAC scripts are tried). - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(10u, entries.size()); @@ -397,7 +397,7 @@ TEST(ProxyScriptDeciderTest, CustomPacFails1_WithPositiveDelay) { EXPECT_EQ(NULL, decider.script_data()); // Check the NetLog was filled correctly. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(6u, entries.size()); @@ -437,7 +437,7 @@ TEST(ProxyScriptDeciderTest, CustomPacFails1_WithNegativeDelay) { EXPECT_EQ(NULL, decider.script_data()); // Check the NetLog was filled correctly. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(4u, entries.size()); diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy/proxy_service_unittest.cc index 6271809..146fec2 100644 --- a/net/proxy/proxy_service_unittest.cc +++ b/net/proxy/proxy_service_unittest.cc @@ -171,7 +171,7 @@ TEST_F(ProxyServiceTest, Direct) { EXPECT_TRUE(info.is_direct()); // Check the NetLog was filled correctly. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(3u, entries.size()); @@ -218,7 +218,7 @@ TEST_F(ProxyServiceTest, PAC) { EXPECT_EQ("foopy:80", info.proxy_server().ToURI()); // Check the NetLog was filled correctly. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(5u, entries.size()); @@ -1464,7 +1464,7 @@ TEST_F(ProxyServiceTest, CancelWhilePACFetching) { EXPECT_FALSE(callback1.have_result()); // Cancelled. EXPECT_FALSE(callback2.have_result()); // Cancelled. - CapturingNetLog::EntryList entries1; + CapturingNetLog::CapturedEntryList entries1; log1.GetEntries(&entries1); // Check the NetLog for request 1 (which was cancelled) got filled properly. @@ -1987,7 +1987,7 @@ TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { // Check that the expected events were output to the log stream. In particular // PROXY_CONFIG_CHANGED should have only been emitted once (for the initial // setup), and NOT a second time when the IP address changed. - CapturingNetLog::EntryList entries; + CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsEntryWithType(entries, 0, diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc index 078735e..eec553f 100644 --- a/net/socket/client_socket_pool_base_unittest.cc +++ b/net/socket/client_socket_pool_base_unittest.cc @@ -781,7 +781,7 @@ TEST_F(ClientSocketPoolBaseTest, ConnectJob_TimedOut) { base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1)); EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(6u, entries.size()); @@ -819,7 +819,7 @@ TEST_F(ClientSocketPoolBaseTest, BasicSynchronous) { EXPECT_TRUE(handle.socket()); handle.Reset(); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(4u, entries.size()); @@ -859,7 +859,7 @@ TEST_F(ClientSocketPoolBaseTest, InitConnectionFailure) { EXPECT_FALSE(handle.is_ssl_error()); EXPECT_TRUE(handle.ssl_error_response_info().headers.get() == NULL); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(3u, entries.size()); @@ -1683,7 +1683,7 @@ TEST_F(ClientSocketPoolBaseTest, BasicAsynchronous) { EXPECT_TRUE(handle.socket()); handle.Reset(); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(4u, entries.size()); @@ -1723,7 +1723,7 @@ TEST_F(ClientSocketPoolBaseTest, EXPECT_FALSE(handle.is_ssl_error()); EXPECT_TRUE(handle.ssl_error_response_info().headers.get() == NULL); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_EQ(3u, entries.size()); @@ -2055,7 +2055,7 @@ TEST_F(ClientSocketPoolBaseTest, DisableCleanupTimerReuse) { EXPECT_EQ(0, pool_->IdleSocketCountInGroup("a")); EXPECT_EQ(1, pool_->NumActiveSocketsInGroup("a")); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsEntryWithType( entries, 1, NetLog::TYPE_SOCKET_POOL_REUSED_AN_EXISTING_SOCKET)); @@ -2137,7 +2137,7 @@ TEST_F(ClientSocketPoolBaseTest, DisableCleanupTimerNoReuse) { EXPECT_EQ(0, pool_->IdleSocketCountInGroup("a")); EXPECT_EQ(1, pool_->NumActiveSocketsInGroup("a")); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_FALSE(LogContainsEntryWithType( entries, 1, NetLog::TYPE_SOCKET_POOL_REUSED_AN_EXISTING_SOCKET)); @@ -2209,7 +2209,7 @@ TEST_F(ClientSocketPoolBaseTest, CleanupTimedOutIdleSockets) { EXPECT_EQ(OK, rv); EXPECT_TRUE(handle.is_reused()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsEntryWithType( entries, 1, NetLog::TYPE_SOCKET_POOL_REUSED_AN_EXISTING_SOCKET)); diff --git a/net/socket/socks5_client_socket_unittest.cc b/net/socket/socks5_client_socket_unittest.cc index b5fce50..37daf190 100644 --- a/net/socket/socks5_client_socket_unittest.cc +++ b/net/socket/socks5_client_socket_unittest.cc @@ -136,7 +136,7 @@ TEST_F(SOCKS5ClientSocketTest, CompleteHandshake) { EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_FALSE(user_sock_->IsConnected()); - net::CapturingNetLog::EntryList net_log_entries; + net::CapturingNetLog::CapturedEntryList net_log_entries; net_log_.GetEntries(&net_log_entries); EXPECT_TRUE(LogContainsBeginEvent(net_log_entries, 0, NetLog::TYPE_SOCKS5_CONNECT)); @@ -258,7 +258,7 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList net_log_entries; + net::CapturingNetLog::CapturedEntryList net_log_entries; net_log_.GetEntries(&net_log_entries); EXPECT_TRUE(LogContainsBeginEvent(net_log_entries, 0, NetLog::TYPE_SOCKS5_CONNECT)); @@ -289,7 +289,7 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList net_log_entries; + net::CapturingNetLog::CapturedEntryList net_log_entries; net_log_.GetEntries(&net_log_entries); EXPECT_TRUE(LogContainsBeginEvent(net_log_entries, 0, NetLog::TYPE_SOCKS5_CONNECT)); @@ -318,7 +318,7 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { hostname, 80, &net_log_)); int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList net_log_entries; + net::CapturingNetLog::CapturedEntryList net_log_entries; net_log_.GetEntries(&net_log_entries); EXPECT_TRUE(LogContainsBeginEvent(net_log_entries, 0, NetLog::TYPE_SOCKS5_CONNECT)); @@ -349,7 +349,7 @@ TEST_F(SOCKS5ClientSocketTest, PartialReadWrites) { hostname, 80, &net_log_)); int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList net_log_entries; + net::CapturingNetLog::CapturedEntryList net_log_entries; net_log_.GetEntries(&net_log_entries); EXPECT_TRUE(LogContainsBeginEvent(net_log_entries, 0, NetLog::TYPE_SOCKS5_CONNECT)); diff --git a/net/socket/socks_client_socket_unittest.cc b/net/socket/socks_client_socket_unittest.cc index 559b373..6a42faa 100644 --- a/net/socket/socks_client_socket_unittest.cc +++ b/net/socket/socks_client_socket_unittest.cc @@ -147,7 +147,7 @@ TEST_F(SOCKSClientSocketTest, CompleteHandshake) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE( LogContainsBeginEvent(entries, 0, NetLog::TYPE_SOCKS_CONNECT)); @@ -217,7 +217,7 @@ TEST_F(SOCKSClientSocketTest, HandshakeFailures) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsBeginEvent( entries, 0, NetLog::TYPE_SOCKS_CONNECT)); @@ -253,7 +253,7 @@ TEST_F(SOCKSClientSocketTest, PartialServerReads) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsBeginEvent( entries, 0, NetLog::TYPE_SOCKS_CONNECT)); @@ -291,7 +291,7 @@ TEST_F(SOCKSClientSocketTest, PartialClientWrites) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsBeginEvent( entries, 0, NetLog::TYPE_SOCKS_CONNECT)); @@ -323,7 +323,7 @@ TEST_F(SOCKSClientSocketTest, FailedSocketRead) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsBeginEvent( entries, 0, NetLog::TYPE_SOCKS_CONNECT)); @@ -353,7 +353,7 @@ TEST_F(SOCKSClientSocketTest, FailedDNS) { int rv = user_sock_->Connect(callback_.callback()); EXPECT_EQ(ERR_IO_PENDING, rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(LogContainsBeginEvent( entries, 0, NetLog::TYPE_SOCKS_CONNECT)); diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc index 10f33ec..d55dc78 100644 --- a/net/socket/ssl_client_socket_unittest.cc +++ b/net/socket/ssl_client_socket_unittest.cc @@ -63,7 +63,7 @@ class SSLClientSocketTest : public PlatformTest { // timeout. This means that an SSL connect end event may appear as a socket // write. static bool LogContainsSSLConnectEndEvent( - const net::CapturingNetLog::EntryList& log, int i) { + const net::CapturingNetLog::CapturedEntryList& log, int i) { return net::LogContainsEndEvent(log, i, net::NetLog::TYPE_SSL_CONNECT) || net::LogContainsEvent(log, i, net::NetLog::TYPE_SOCKET_BYTES_SENT, net::NetLog::PHASE_NONE); @@ -95,7 +95,7 @@ TEST_F(SSLClientSocketTest, Connect) { rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); @@ -138,7 +138,7 @@ TEST_F(SSLClientSocketTest, ConnectExpired) { rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); @@ -183,7 +183,7 @@ TEST_F(SSLClientSocketTest, ConnectMismatched) { rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); @@ -228,7 +228,7 @@ TEST_F(SSLClientSocketTest, ConnectClientAuthCertRequested) { rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); @@ -294,7 +294,7 @@ TEST_F(SSLClientSocketTest, ConnectClientAuthSendNullCert) { // TODO(davidben): Add a test which requires them and verify the error. rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); @@ -581,7 +581,7 @@ TEST_F(SSLClientSocketTest, Read_FullLogging) { rv = callback.WaitForResult(); EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); size_t last_index = net::ExpectLogContainsSomewhereAfter( entries, 5, net::NetLog::TYPE_SSL_SOCKET_BYTES_SENT, @@ -696,7 +696,7 @@ TEST_F(SSLClientSocketTest, CipherSuiteDisables) { EXPECT_FALSE(sock->IsConnected()); rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); @@ -892,7 +892,7 @@ TEST_F(SSLClientSocketTest, VerifyReturnChainProperlyOrdered) { EXPECT_FALSE(sock->IsConnected()); rv = sock->Connect(callback.callback()); - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_TRUE(net::LogContainsBeginEvent( entries, 5, net::NetLog::TYPE_SSL_CONNECT)); diff --git a/net/socket/transport_client_socket_unittest.cc b/net/socket/transport_client_socket_unittest.cc index e227fec..424d587 100644 --- a/net/socket/transport_client_socket_unittest.cc +++ b/net/socket/transport_client_socket_unittest.cc @@ -185,7 +185,7 @@ TEST_P(TransportClientSocketTest, Connect) { int rv = sock_->Connect(callback.callback()); - net::CapturingNetLog::EntryList net_log_entries; + net::CapturingNetLog::CapturedEntryList net_log_entries; net_log_.GetEntries(&net_log_entries); EXPECT_TRUE(net::LogContainsBeginEvent( net_log_entries, 0, net::NetLog::TYPE_SOCKET_ALIVE)); diff --git a/net/spdy/spdy_network_transaction_spdy2_unittest.cc b/net/spdy/spdy_network_transaction_spdy2_unittest.cc index 85c22ea..9395631 100644 --- a/net/spdy/spdy_network_transaction_spdy2_unittest.cc +++ b/net/spdy/spdy_network_transaction_spdy2_unittest.cc @@ -3558,7 +3558,7 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, NetLog) { // This test is intentionally non-specific about the exact ordering of the // log; instead we just check to make sure that certain events exist, and that // they are in the right order. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_LT(0u, entries.size()); @@ -3587,25 +3587,25 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, NetLog) { entries, 0, net::NetLog::TYPE_SPDY_SESSION_SYN_STREAM, net::NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogSpdySynParameter* request_params = - static_cast<NetLogSpdySynParameter*>(entry.extra_parameters.get()); - SpdyHeaderBlock* headers = - request_params->GetHeaders().get(); - - SpdyHeaderBlock expected; - expected["host"] = "www.google.com"; - expected["url"] = "/"; - expected["scheme"] = "http"; - expected["version"] = "HTTP/1.1"; - expected["method"] = "GET"; - expected["user-agent"] = "Chrome"; - EXPECT_EQ(expected.size(), headers->size()); - SpdyHeaderBlock::const_iterator end = expected.end(); - for (SpdyHeaderBlock::const_iterator it = expected.begin(); - it != end; - ++it) { - EXPECT_EQ(it->second, (*headers)[it->first]); + + ListValue* header_list; + ASSERT_TRUE(entries[pos].params.get()); + ASSERT_TRUE(entries[pos].params->GetList("headers", &header_list)); + + std::vector<std::string> expected; + expected.push_back("host: www.google.com"); + expected.push_back("url: /"); + expected.push_back("scheme: http"); + expected.push_back("version: HTTP/1.1"); + expected.push_back("method: GET"); + expected.push_back("user-agent: Chrome"); + EXPECT_EQ(expected.size(), header_list->GetSize()); + for (std::vector<std::string>::const_iterator it = expected.begin(); + it != expected.end(); + ++it) { + base::StringValue header(*it); + EXPECT_NE(header_list->end(), header_list->Find(header)) << + "Header not found: " << *it; } } diff --git a/net/spdy/spdy_network_transaction_spdy3_unittest.cc b/net/spdy/spdy_network_transaction_spdy3_unittest.cc index 72c3843..8fc1997 100644 --- a/net/spdy/spdy_network_transaction_spdy3_unittest.cc +++ b/net/spdy/spdy_network_transaction_spdy3_unittest.cc @@ -4133,7 +4133,7 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, NetLog) { // This test is intentionally non-specific about the exact ordering of the // log; instead we just check to make sure that certain events exist, and that // they are in the right order. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_LT(0u, entries.size()); @@ -4162,25 +4162,25 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, NetLog) { entries, 0, net::NetLog::TYPE_SPDY_SESSION_SYN_STREAM, net::NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogSpdySynParameter* request_params = - static_cast<NetLogSpdySynParameter*>(entry.extra_parameters.get()); - SpdyHeaderBlock* headers = - request_params->GetHeaders().get(); - - SpdyHeaderBlock expected; - expected[":host"] = "www.google.com"; - expected[":path"] = "/"; - expected[":scheme"] = "http"; - expected[":version"] = "HTTP/1.1"; - expected[":method"] = "GET"; - expected["user-agent"] = "Chrome"; - EXPECT_EQ(expected.size(), headers->size()); - SpdyHeaderBlock::const_iterator end = expected.end(); - for (SpdyHeaderBlock::const_iterator it = expected.begin(); - it != end; - ++it) { - EXPECT_EQ(it->second, (*headers)[it->first]); + + ListValue* header_list; + ASSERT_TRUE(entries[pos].params.get()); + ASSERT_TRUE(entries[pos].params->GetList("headers", &header_list)); + + std::vector<std::string> expected; + expected.push_back(":host: www.google.com"); + expected.push_back(":path: /"); + expected.push_back(":scheme: http"); + expected.push_back(":version: HTTP/1.1"); + expected.push_back(":method: GET"); + expected.push_back("user-agent: Chrome"); + EXPECT_EQ(expected.size(), header_list->GetSize()); + for (std::vector<std::string>::const_iterator it = expected.begin(); + it != expected.end(); + ++it) { + base::StringValue header(*it); + EXPECT_NE(header_list->end(), header_list->Find(header)) << + "Header not found: " << *it; } } diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc index 050d35b..a284eaf 100644 --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc @@ -84,15 +84,15 @@ Value* NetLogSpdyCredentialParameter::ToValue() const { NetLogSpdyCredentialParameter::~NetLogSpdyCredentialParameter() {} NetLogSpdySessionCloseParameter::NetLogSpdySessionCloseParameter( - int status, + int net_error, const std::string& description) - : status_(status), + : net_error_(net_error), description_(description) { } Value* NetLogSpdySessionCloseParameter::ToValue() const { DictionaryValue* dict = new DictionaryValue(); - dict->SetInteger("status", status_); + dict->SetInteger("net_error", net_error_); dict->SetString("description", description_); return dict; } diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h index 2b55528..ce19a4f 100644 --- a/net/spdy/spdy_session.h +++ b/net/spdy/spdy_session.h @@ -668,10 +668,6 @@ class NetLogSpdySynParameter : public NetLog::EventParameters { SpdyStreamId id, SpdyStreamId associated_stream); - const linked_ptr<SpdyHeaderBlock>& GetHeaders() const { - return headers_; - } - virtual base::Value* ToValue() const OVERRIDE; protected: @@ -704,17 +700,16 @@ class NetLogSpdyCredentialParameter : public NetLog::EventParameters { class NetLogSpdySessionCloseParameter : public NetLog::EventParameters { public: - NetLogSpdySessionCloseParameter(int status, + NetLogSpdySessionCloseParameter(int net_error, const std::string& description); - int status() const { return status_; } virtual base::Value* ToValue() const OVERRIDE; protected: virtual ~NetLogSpdySessionCloseParameter(); private: - const int status_; + const int net_error_; const std::string description_; DISALLOW_COPY_AND_ASSIGN(NetLogSpdySessionCloseParameter); diff --git a/net/spdy/spdy_session_spdy2_unittest.cc b/net/spdy/spdy_session_spdy2_unittest.cc index 311da640..450dba4 100644 --- a/net/spdy/spdy_session_spdy2_unittest.cc +++ b/net/spdy/spdy_session_spdy2_unittest.cc @@ -1019,7 +1019,7 @@ TEST_F(SpdySessionSpdy2Test, CloseSessionOnError) { EXPECT_FALSE(spdy_session_pool->HasSession(pair)); // Check that the NetLog was filled reasonably. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_LT(0u, entries.size()); @@ -1029,11 +1029,10 @@ TEST_F(SpdySessionSpdy2Test, CloseSessionOnError) { net::NetLog::TYPE_SPDY_SESSION_CLOSE, net::NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogSpdySessionCloseParameter* request_params = - static_cast<NetLogSpdySessionCloseParameter*>( - entry.extra_parameters.get()); - EXPECT_EQ(ERR_CONNECTION_CLOSED, request_params->status()); + CapturingNetLog::CapturedEntry entry = entries[pos]; + int error_code = 0; + ASSERT_TRUE(entry.GetNetErrorCode(&error_code)); + EXPECT_EQ(ERR_CONNECTION_CLOSED, error_code); } TEST_F(SpdySessionSpdy2Test, OutOfOrderSynStreams) { diff --git a/net/spdy/spdy_session_spdy3_unittest.cc b/net/spdy/spdy_session_spdy3_unittest.cc index 545e36b..699c59c 100644 --- a/net/spdy/spdy_session_spdy3_unittest.cc +++ b/net/spdy/spdy_session_spdy3_unittest.cc @@ -1087,7 +1087,7 @@ TEST_F(SpdySessionSpdy3Test, CloseSessionOnError) { EXPECT_FALSE(spdy_session_pool->HasSession(pair)); // Check that the NetLog was filled reasonably. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_LT(0u, entries.size()); @@ -1097,11 +1097,10 @@ TEST_F(SpdySessionSpdy3Test, CloseSessionOnError) { net::NetLog::TYPE_SPDY_SESSION_CLOSE, net::NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogSpdySessionCloseParameter* request_params = - static_cast<NetLogSpdySessionCloseParameter*>( - entry.extra_parameters.get()); - EXPECT_EQ(ERR_CONNECTION_CLOSED, request_params->status()); + CapturingNetLog::CapturedEntry entry = entries[pos]; + int error_code = 0; + ASSERT_TRUE(entry.GetNetErrorCode(&error_code)); + EXPECT_EQ(ERR_CONNECTION_CLOSED, error_code); } TEST_F(SpdySessionSpdy3Test, UpdateStreamsSendWindowSize) { diff --git a/net/spdy/spdy_stream_spdy2_unittest.cc b/net/spdy/spdy_stream_spdy2_unittest.cc index cd03897..1ca21d4 100644 --- a/net/spdy/spdy_stream_spdy2_unittest.cc +++ b/net/spdy/spdy_stream_spdy2_unittest.cc @@ -416,7 +416,7 @@ TEST_F(SpdyStreamSpdy2Test, StreamError) { EXPECT_TRUE(delegate->closed()); // Check that the NetLog was filled reasonably. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_LT(0u, entries.size()); @@ -426,11 +426,9 @@ TEST_F(SpdyStreamSpdy2Test, StreamError) { net::NetLog::TYPE_SPDY_STREAM_ERROR, net::NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogSpdyStreamErrorParameter* request_params = - static_cast<NetLogSpdyStreamErrorParameter*>( - entry.extra_parameters.get()); - EXPECT_EQ(stream_id, request_params->stream_id()); + int stream_id2; + ASSERT_TRUE(entries[pos].GetIntegerValue("stream_id", &stream_id2)); + EXPECT_EQ(static_cast<int>(stream_id), stream_id2); } } // namespace net diff --git a/net/spdy/spdy_stream_spdy3_unittest.cc b/net/spdy/spdy_stream_spdy3_unittest.cc index 5d01889..1c67271 100644 --- a/net/spdy/spdy_stream_spdy3_unittest.cc +++ b/net/spdy/spdy_stream_spdy3_unittest.cc @@ -421,7 +421,7 @@ TEST_F(SpdyStreamSpdy3Test, StreamError) { EXPECT_TRUE(delegate->closed()); // Check that the NetLog was filled reasonably. - net::CapturingNetLog::EntryList entries; + net::CapturingNetLog::CapturedEntryList entries; log.GetEntries(&entries); EXPECT_LT(0u, entries.size()); @@ -431,11 +431,9 @@ TEST_F(SpdyStreamSpdy3Test, StreamError) { net::NetLog::TYPE_SPDY_STREAM_ERROR, net::NetLog::PHASE_NONE); - CapturingNetLog::Entry entry = entries[pos]; - NetLogSpdyStreamErrorParameter* request_params = - static_cast<NetLogSpdyStreamErrorParameter*>( - entry.extra_parameters.get()); - EXPECT_EQ(stream_id, request_params->stream_id()); + int stream_id2; + ASSERT_TRUE(entries[pos].GetIntegerValue("stream_id", &stream_id2)); + EXPECT_EQ(static_cast<int>(stream_id), stream_id2); } } // namespace net diff --git a/net/udp/udp_socket_unittest.cc b/net/udp/udp_socket_unittest.cc index ea8791a..b0af0bf 100644 --- a/net/udp/udp_socket_unittest.cc +++ b/net/udp/udp_socket_unittest.cc @@ -171,7 +171,7 @@ TEST_F(UDPSocketTest, Connect) { client.reset(); // Check the server's log. - CapturingNetLog::EntryList server_entries; + CapturingNetLog::CapturedEntryList server_entries; server_log.GetEntries(&server_entries); EXPECT_EQ(4u, server_entries.size()); EXPECT_TRUE(LogContainsBeginEvent( @@ -184,7 +184,7 @@ TEST_F(UDPSocketTest, Connect) { server_entries, 3, NetLog::TYPE_SOCKET_ALIVE)); // Check the client's log. - CapturingNetLog::EntryList client_entries; + CapturingNetLog::CapturedEntryList client_entries; client_log.GetEntries(&client_entries); EXPECT_EQ(6u, client_entries.size()); EXPECT_TRUE(LogContainsBeginEvent( |