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

Unified Diff: chrome/browser/net/chrome_network_delegate_unittest.cc

Issue 1373373002: Create component to expose network usage stats to consumers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Polished and added tests Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: 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()

Powered by Google App Engine
This is Rietveld 408576698