Chromium Code Reviews| Index: chrome/browser/net/chrome_network_delegate_unittest.cc |
| diff --git a/chrome/browser/net/chrome_network_delegate_unittest.cc b/chrome/browser/net/chrome_network_delegate_unittest.cc |
| index 07dac2b19e965c50faf880b3e67b9b782f461b8d..7efca38f5af39b9788e5fc51127e836a06ea4329 100644 |
| --- a/chrome/browser/net/chrome_network_delegate_unittest.cc |
| +++ b/chrome/browser/net/chrome_network_delegate_unittest.cc |
| @@ -20,6 +20,7 @@ |
| #include "chrome/test/base/testing_profile_manager.h" |
| #include "components/content_settings/core/browser/cookie_settings.h" |
| #include "components/content_settings/core/common/pref_names.h" |
| +#include "components/data_usage/core/data_use_aggregator.h" |
| #include "components/syncable_prefs/testing_pref_service_syncable.h" |
| #include "content/public/browser/resource_request_info.h" |
| #include "content/public/common/content_switches.h" |
| @@ -89,6 +90,38 @@ void RequestURL(net::URLRequestContext* context, |
| base::RunLoop().RunUntilIdle(); |
| } |
| +// A fake DataUseAggregator for testing that only counts how many times its |
| +// respective methods have been called. |
| +class FakeDataUseAggregator : public data_usage::DataUseAggregator { |
| + public: |
| + FakeDataUseAggregator() |
| + : num_report_data_use_calls_(0), |
| + num_report_off_the_record_data_use_calls_(0) {} |
| + |
| + ~FakeDataUseAggregator() override {} |
| + |
| + void ReportDataUse(const net::URLRequest& request, |
| + int tab_id, |
| + int64_t tx_bytes, |
| + int64_t rx_bytes) override { |
| + ++num_report_data_use_calls_; |
|
bengr
2015/10/06 19:30:28
Is this sufficient for testing? You could add the
sclittle
2015/10/07 01:07:55
Changed to keep track of the bytes. The main thing
|
| + } |
| + |
| + void ReportOffTheRecordDataUse(int64_t tx_bytes, int64_t rx_bytes) override { |
| + ++num_report_off_the_record_data_use_calls_; |
|
bengr
2015/10/06 19:30:28
Here too.
sclittle
2015/10/07 01:07:55
Changed this to keep track of the bytes too.
|
| + } |
| + |
| + int num_report_data_use_calls() const { return num_report_data_use_calls_; } |
| + |
| + int num_report_off_the_record_data_use_calls() const { |
| + return num_report_off_the_record_data_use_calls_; |
| + } |
| + |
| + private: |
| + int num_report_data_use_calls_; |
| + int num_report_off_the_record_data_use_calls_; |
| +}; |
| + |
| } // namespace |
| class ChromeNetworkDelegateTest : public testing::Test { |
| @@ -122,6 +155,10 @@ class ChromeNetworkDelegateTest : public testing::Test { |
| net::NetworkDelegate* network_delegate() { return network_delegate_.get(); } |
| net::MockClientSocketFactory* socket_factory() { return &socket_factory_; } |
| + ChromeNetworkDelegate* chrome_network_delegate() { |
| + return network_delegate_.get(); |
| + } |
| + |
| extensions::EventRouterForwarder* forwarder() { |
| #if defined(ENABLE_EXTENSIONS) |
| return forwarder_.get(); |
| @@ -138,7 +175,7 @@ class ChromeNetworkDelegateTest : public testing::Test { |
| #endif |
| TestingProfile profile_; |
| BooleanPrefMember enable_referrers_; |
| - scoped_ptr<net::NetworkDelegate> network_delegate_; |
| + scoped_ptr<ChromeNetworkDelegate> network_delegate_; |
| net::MockClientSocketFactory socket_factory_; |
| scoped_ptr<net::TestURLRequestContext> context_; |
| }; |
| @@ -247,6 +284,28 @@ TEST_F(ChromeNetworkDelegateTest, EnableFirstPartyOnlyCookiesIffFlagEnabled) { |
| EXPECT_TRUE(network_delegate()->FirstPartyOnlyCookieExperimentEnabled()); |
| } |
| +TEST_F(ChromeNetworkDelegateTest, ReportDataUseToAggregator) { |
| + FakeDataUseAggregator fake_aggregator; |
| + Initialize(); |
| + |
| + chrome_network_delegate()->set_data_use_aggregator( |
| + &fake_aggregator, false /* is_data_usage_off_the_record */); |
| + RequestURL(context(), socket_factory(), true, false); |
| + EXPECT_GT(fake_aggregator.num_report_data_use_calls(), 0); |
| + EXPECT_EQ(0, fake_aggregator.num_report_off_the_record_data_use_calls()); |
| +} |
| + |
| +TEST_F(ChromeNetworkDelegateTest, ReportOffTheRecordDataUseToAggregator) { |
| + FakeDataUseAggregator fake_aggregator; |
| + Initialize(); |
| + |
| + chrome_network_delegate()->set_data_use_aggregator( |
| + &fake_aggregator, true /* is_data_usage_off_the_record */); |
| + RequestURL(context(), socket_factory(), true, false); |
| + EXPECT_EQ(0, fake_aggregator.num_report_data_use_calls()); |
| + EXPECT_GT(fake_aggregator.num_report_off_the_record_data_use_calls(), 0); |
| +} |
| + |
| class ChromeNetworkDelegateSafeSearchTest : public testing::Test { |
| public: |
| ChromeNetworkDelegateSafeSearchTest() |