Chromium Code Reviews| Index: components/data_use_measurement/core/data_use_measurement_unittest.cc |
| diff --git a/components/data_use_measurement/content/data_use_measurement_unittest.cc b/components/data_use_measurement/core/data_use_measurement_unittest.cc |
| similarity index 92% |
| rename from components/data_use_measurement/content/data_use_measurement_unittest.cc |
| rename to components/data_use_measurement/core/data_use_measurement_unittest.cc |
| index de40494d97a54582de50930de4a9d794a2f0c4fa..707577b65152c325c2be79799df4f81bcd91c650 100644 |
| --- a/components/data_use_measurement/content/data_use_measurement_unittest.cc |
| +++ b/components/data_use_measurement/core/data_use_measurement_unittest.cc |
| @@ -2,7 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "components/data_use_measurement/content/data_use_measurement.h" |
| +#include "components/data_use_measurement/core/data_use_measurement.h" |
| #include <memory> |
| #include <string> |
| @@ -12,7 +12,7 @@ |
| #include "base/run_loop.h" |
| #include "base/test/histogram_tester.h" |
| #include "build/build_config.h" |
| -#include "content/public/browser/resource_request_info.h" |
| +#include "components/data_use_measurement/core/url_request_classifier.h" |
| #include "net/base/network_change_notifier.h" |
| #include "net/base/request_priority.h" |
| #include "net/socket/socket_test_util.h" |
| @@ -27,10 +27,29 @@ |
| namespace data_use_measurement { |
| +class UserRequestUserDataForTesting : public base::SupportsUserData::Data, |
| + public URLRequestClassifier { |
| + public: |
| + static const void* const kUserDataKey; |
| + |
| + bool IsUserRequest(const net::URLRequest& request) const override { |
| + return request.GetUserData(kUserDataKey) != nullptr; |
| + } |
| + |
| + static void MarkAsUserRequest(net::URLRequest* request) { |
| + request->SetUserData(kUserDataKey, new UserRequestUserDataForTesting()); |
| + } |
| +}; |
| + |
| +// static |
| +const void* const UserRequestUserDataForTesting::kUserDataKey = |
| + &UserRequestUserDataForTesting::kUserDataKey; |
| + |
| class DataUseMeasurementTest : public testing::Test { |
| public: |
| DataUseMeasurementTest() |
| : data_use_measurement_( |
| + base::MakeUnique<UserRequestUserDataForTesting>(), |
| base::Bind(&DataUseMeasurementTest::FakeDataUseforwarder, |
| base::Unretained(this))) { |
| // During the test it is expected to not have cellular connection. |
| @@ -52,15 +71,13 @@ class DataUseMeasurementTest : public testing::Test { |
| std::unique_ptr<net::URLRequest> request(context_->CreateRequest( |
| GURL("http://foo.com"), net::DEFAULT_PRIORITY, &test_delegate)); |
| if (is_user_request) { |
| + UserRequestUserDataForTesting::MarkAsUserRequest(request.get()); |
|
Not at Google. Contact bengr
2016/11/11 00:09:49
Do you need this? Seems like you could use data_us
Raj
2016/11/11 19:10:39
DataUseUserData::kUserDataKey only has services in
|
| + } else { |
| request->SetUserData( |
| data_use_measurement::DataUseUserData::kUserDataKey, |
| new data_use_measurement::DataUseUserData( |
| data_use_measurement::DataUseUserData::SUGGESTIONS, |
| data_use_measurement_.CurrentAppState())); |
| - } else { |
| - content::ResourceRequestInfo::AllocateForTesting( |
| - request.get(), content::RESOURCE_TYPE_MAIN_FRAME, nullptr, -2, -2, -2, |
| - true, false, true, true, false); |
| } |
| request->Start(); |
| @@ -84,14 +101,20 @@ class DataUseMeasurementTest : public testing::Test { |
| void TestForAUserRequest(const std::string& target_dimension) { |
| base::HistogramTester histogram_tester; |
| SendRequest(true); |
| - histogram_tester.ExpectTotalCount("DataUse.TrafficSize.System.Downstream." + |
| + histogram_tester.ExpectTotalCount("DataUse.TrafficSize.User.Downstream." + |
| target_dimension + kConnectionType, |
| 1); |
| - histogram_tester.ExpectTotalCount("DataUse.TrafficSize.System.Upstream." + |
| + histogram_tester.ExpectTotalCount("DataUse.TrafficSize.User.Upstream." + |
| target_dimension + kConnectionType, |
| 1); |
| - // One upload and one download message, so total count should be 2. |
| - histogram_tester.ExpectTotalCount("DataUse.MessageSize.Suggestions", 2); |
| + histogram_tester.ExpectTotalCount( |
| + "DataUse.MessageSize.AllServices.Upstream." + target_dimension + |
| + kConnectionType, |
| + 0); |
| + histogram_tester.ExpectTotalCount( |
| + "DataUse.MessageSize.AllServices.Downstream." + target_dimension + |
| + kConnectionType, |
| + 0); |
| } |
| // This function makes a service request and confirms that its effect is |
| @@ -99,20 +122,14 @@ class DataUseMeasurementTest : public testing::Test { |
| void TestForAServiceRequest(const std::string& target_dimension) { |
| base::HistogramTester histogram_tester; |
| SendRequest(false); |
| - histogram_tester.ExpectTotalCount("DataUse.TrafficSize.User.Downstream." + |
| + histogram_tester.ExpectTotalCount("DataUse.TrafficSize.System.Downstream." + |
| target_dimension + kConnectionType, |
| 1); |
| - histogram_tester.ExpectTotalCount("DataUse.TrafficSize.User.Upstream." + |
| + histogram_tester.ExpectTotalCount("DataUse.TrafficSize.System.Upstream." + |
| target_dimension + kConnectionType, |
| 1); |
| - histogram_tester.ExpectTotalCount( |
| - "DataUse.MessageSize.AllServices.Upstream." + target_dimension + |
| - kConnectionType, |
| - 0); |
| - histogram_tester.ExpectTotalCount( |
| - "DataUse.MessageSize.AllServices.Downstream." + target_dimension + |
| - kConnectionType, |
| - 0); |
| + // One upload and one download message, so total count should be 2. |
| + histogram_tester.ExpectTotalCount("DataUse.MessageSize.Suggestions", 2); |
| } |
| DataUseMeasurement* data_use_measurement() { return &data_use_measurement_; } |
| @@ -178,7 +195,7 @@ TEST_F(DataUseMeasurementTest, DataUseForwarderIsCalled) { |
| #if defined(OS_ANDROID) |
| TEST_F(DataUseMeasurementTest, AppStateUnknown) { |
| base::HistogramTester histogram_tester; |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| { |
| @@ -214,7 +231,7 @@ TEST_F(DataUseMeasurementTest, AppStateUnknown) { |
| TEST_F(DataUseMeasurementTest, TimeOfBackgroundDownstreamBytes) { |
| { |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| base::HistogramTester histogram_tester; |
| data_use_measurement()->OnApplicationStateChange( |
| @@ -232,7 +249,7 @@ TEST_F(DataUseMeasurementTest, TimeOfBackgroundDownstreamBytes) { |
| { |
| // Create new request when app is in foreground.. |
| base::HistogramTester histogram_tester; |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| data_use_measurement_.OnNetworkBytesSent(*request, 100); |
| data_use_measurement_.OnNetworkBytesReceived(*request, 1000); |
| @@ -245,7 +262,7 @@ TEST_F(DataUseMeasurementTest, TimeOfBackgroundDownstreamBytes) { |
| } |
| { |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| base::HistogramTester histogram_tester; |
| data_use_measurement()->OnApplicationStateChange( |
| @@ -263,7 +280,7 @@ TEST_F(DataUseMeasurementTest, TimeOfBackgroundDownstreamBytes) { |
| { |
| // Create new request when app is in background. |
| base::HistogramTester histogram_tester; |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| data_use_measurement_.OnNetworkBytesSent(*request, 100); |
| data_use_measurement_.OnNetworkBytesReceived(*request, 1000); |
| @@ -278,7 +295,7 @@ TEST_F(DataUseMeasurementTest, TimeOfBackgroundDownstreamBytes) { |
| { |
| // Create new request when app is in background. |
| base::HistogramTester histogram_tester; |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| data_use_measurement_.OnNetworkBytesSent(*request, 100); |
| data_use_measurement_.OnNetworkBytesReceived(*request, 1000); |
| @@ -295,7 +312,7 @@ TEST_F(DataUseMeasurementTest, TimeOfBackgroundDownstreamBytes) { |
| } |
| { |
| - std::unique_ptr<net::URLRequest> request = CreateTestRequest(false); |
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(true); |
| data_use_measurement_.OnBeforeURLRequest(request.get()); |
| base::HistogramTester histogram_tester; |
| data_use_measurement()->OnApplicationStateChange( |