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

Unified Diff: components/data_use_measurement/content/data_use_measurement_unittest.cc

Issue 1818613002: Implement UMA log throttling for cellular connections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: components/data_use_measurement/content/data_use_measurement_unittest.cc
diff --git a/components/data_use_measurement/content/data_use_measurement_unittest.cc b/components/data_use_measurement/content/data_use_measurement_unittest.cc
index 242a1aedfc50ebe0fa7f33aa92dea3ac87c841c9..a70bd19334038df261fdaa9067b9eed117541c23 100644
--- a/components/data_use_measurement/content/data_use_measurement_unittest.cc
+++ b/components/data_use_measurement/content/data_use_measurement_unittest.cc
@@ -27,18 +27,18 @@ namespace data_use_measurement {
class DataUseMeasurementTest : public testing::Test {
public:
- DataUseMeasurementTest() {
+ DataUseMeasurementTest()
+ : data_use_measurement_(
+ base::Bind(&DataUseMeasurementTest::FakeDataUseforwarder,
+ base::Unretained(this))) {
// During the test it is expected to not have cellular connection.
DCHECK(!net::NetworkChangeNotifier::IsConnectionCellular(
net::NetworkChangeNotifier::GetConnectionType()));
}
- // This function makes a user request and confirms that its effect is
- // reflected in proper histograms.
- void TestForAUserRequest(const std::string& target_dimension) {
+ void SendRequest(bool is_user_request) {
Alexei Svitkine (slow) 2016/04/07 15:43:29 Add a comment and mention what the param means.
gayane -on leave until 09-2017 2016/04/07 18:53:49 Done.
net::TestDelegate test_delegate;
InitializeContext();
- base::HistogramTester histogram_tester;
net::MockRead reads[] = {net::MockRead("HTTP/1.1 200 OK\r\n"
"Content-Length: 12\r\n\r\n"),
net::MockRead("Test Content")};
@@ -48,14 +48,28 @@ class DataUseMeasurementTest : public testing::Test {
scoped_ptr<net::URLRequest> request(context_->CreateRequest(
GURL("http://foo.com"), net::DEFAULT_PRIORITY, &test_delegate));
- request->SetUserData(
- data_use_measurement::DataUseUserData::kUserDataKey,
- new data_use_measurement::DataUseUserData(
- data_use_measurement::DataUseUserData::SUGGESTIONS));
+ if (is_user_request) {
+ request->SetUserData(
+ data_use_measurement::DataUseUserData::kUserDataKey,
+ new data_use_measurement::DataUseUserData(
+ data_use_measurement::DataUseUserData::SUGGESTIONS));
+ } else {
+ content::ResourceRequestInfo::AllocateForTesting(
+ request.get(), content::RESOURCE_TYPE_MAIN_FRAME, nullptr, -2, -2, -2,
+ true, false, true, true, false);
+ }
+
request->Start();
loop_.RunUntilIdle();
data_use_measurement_.ReportDataUseUMA(request.get());
+ }
+
+ // This function makes a user request and confirms that its effect is
+ // reflected in proper histograms.
+ void TestForAUserRequest(const std::string& target_dimension) {
+ base::HistogramTester histogram_tester;
+ SendRequest(true);
histogram_tester.ExpectTotalCount("DataUse.TrafficSize.System.Downstream." +
target_dimension + kConnectionType,
1);
@@ -69,26 +83,8 @@ class DataUseMeasurementTest : public testing::Test {
// This function makes a service request and confirms that its effect is
// reflected in proper histograms.
void TestForAServiceRequest(const std::string& target_dimension) {
- net::TestDelegate test_delegate;
- InitializeContext();
base::HistogramTester histogram_tester;
-
- net::MockRead reads[] = {net::MockRead("HTTP/1.1 200 OK\r\n"
- "Content-Length: 12\r\n\r\n"),
- net::MockRead("Test Content")};
- net::StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr,
- 0);
- socket_factory_->AddSocketDataProvider(&socket_data);
-
- scoped_ptr<net::URLRequest> request(context_->CreateRequest(
- GURL("http://foo.com"), net::DEFAULT_PRIORITY, &test_delegate));
- content::ResourceRequestInfo::AllocateForTesting(
- request.get(), content::RESOURCE_TYPE_MAIN_FRAME, nullptr, -2, -2, -2,
- true, false, true, true, false);
- request->Start();
- loop_.RunUntilIdle();
-
- data_use_measurement_.ReportDataUseUMA(request.get());
+ SendRequest(false);
histogram_tester.ExpectTotalCount("DataUse.TrafficSize.User.Downstream." +
target_dimension + kConnectionType,
1);
@@ -107,6 +103,8 @@ class DataUseMeasurementTest : public testing::Test {
DataUseMeasurement* data_use_measurement() { return &data_use_measurement_; }
+ bool IsDataUseForwarderCalled() { return is_data_use_forwarder_called_; }
+
private:
void InitializeContext() {
context_.reset(new net::TestURLRequestContext(true));
@@ -115,11 +113,18 @@ class DataUseMeasurementTest : public testing::Test {
context_->Init();
}
+ void FakeDataUseforwarder(const std::string& service_name,
+ int message_size,
+ bool is_celllular) {
+ is_data_use_forwarder_called_ = true;
+ }
+
base::MessageLoopForIO loop_;
DataUseMeasurement data_use_measurement_;
scoped_ptr<net::MockClientSocketFactory> socket_factory_;
scoped_ptr<net::TestURLRequestContext> context_;
const std::string kConnectionType = "NotCellular";
+ bool is_data_use_forwarder_called_ = false;
DISALLOW_COPY_AND_ASSIGN(DataUseMeasurementTest);
};
@@ -150,4 +155,10 @@ TEST_F(DataUseMeasurementTest, ApplicationStateTest) {
}
#endif
+TEST_F(DataUseMeasurementTest, DataUseForwarderIsCalled) {
+ EXPECT_FALSE(IsDataUseForwarderCalled());
+ SendRequest(true);
+ EXPECT_TRUE(IsDataUseForwarderCalled());
+}
+
} // namespace data_use_measurement

Powered by Google App Engine
This is Rietveld 408576698