| 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 a7c674d5a5f39a19c6e4ae2c8e11adbc8b56faf0..29b5717f9330b1f04139cc77f9a5e59f897ff706 100644
|
| --- a/components/data_use_measurement/content/data_use_measurement_unittest.cc
|
| +++ b/components/data_use_measurement/content/data_use_measurement_unittest.cc
|
| @@ -38,9 +38,8 @@ class DataUseMeasurementTest : public testing::Test {
|
| net::NetworkChangeNotifier::GetConnectionType()));
|
| }
|
|
|
| - // Sends a request and reports data use attaching either user data or service
|
| - // data based on |is_user_request|.
|
| - void SendRequest(bool is_user_request) {
|
| + // Creates a test request.
|
| + std::unique_ptr<net::URLRequest> CreateTestRequest(bool is_user_request) {
|
| net::TestDelegate test_delegate;
|
| InitializeContext();
|
| net::MockRead reads[] = {net::MockRead("HTTP/1.1 200 OK\r\n"
|
| @@ -66,7 +65,17 @@ class DataUseMeasurementTest : public testing::Test {
|
|
|
| request->Start();
|
| base::RunLoop().RunUntilIdle();
|
| + return request;
|
| + }
|
|
|
| + // Sends a request and reports data use attaching either user data or service
|
| + // data based on |is_user_request|.
|
| + void SendRequest(bool is_user_request) {
|
| + std::unique_ptr<net::URLRequest> request =
|
| + CreateTestRequest(is_user_request);
|
| + data_use_measurement_.OnBeforeURLRequest(request.get());
|
| + data_use_measurement_.OnNetworkBytesReceived(*request, 1000);
|
| + data_use_measurement_.OnNetworkBytesSent(*request, 100);
|
| data_use_measurement_.OnCompleted(*request, true);
|
| }
|
|
|
| @@ -110,7 +119,7 @@ class DataUseMeasurementTest : public testing::Test {
|
|
|
| bool IsDataUseForwarderCalled() { return is_data_use_forwarder_called_; }
|
|
|
| - private:
|
| + protected:
|
| void InitializeContext() {
|
| context_.reset(new net::TestURLRequestContext(true));
|
| socket_factory_.reset(new net::MockClientSocketFactory());
|
| @@ -166,4 +175,42 @@ TEST_F(DataUseMeasurementTest, DataUseForwarderIsCalled) {
|
| EXPECT_TRUE(IsDataUseForwarderCalled());
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(DataUseMeasurementTest, AppStateUnknown) {
|
| + base::HistogramTester histogram_tester;
|
| + std::unique_ptr<net::URLRequest> request = CreateTestRequest(false);
|
| + data_use_measurement_.OnBeforeURLRequest(request.get());
|
| +
|
| + {
|
| + base::HistogramTester histogram_tester;
|
| + data_use_measurement()->OnApplicationStateChangeForTesting(
|
| + base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES);
|
| + data_use_measurement_.OnNetworkBytesSent(*request, 100);
|
| + data_use_measurement_.OnNetworkBytesReceived(*request, 1000);
|
| + histogram_tester.ExpectTotalCount(
|
| + "DataUse.TrafficSize.User.Downstream.Foreground." + kConnectionType, 1);
|
| + histogram_tester.ExpectTotalCount(
|
| + "DataUse.TrafficSize.User.Upstream.Foreground." + kConnectionType, 1);
|
| + }
|
| +
|
| + {
|
| + base::HistogramTester histogram_tester;
|
| + data_use_measurement()->OnApplicationStateChangeForTesting(
|
| + base::android::APPLICATION_STATE_HAS_STOPPED_ACTIVITIES);
|
| + data_use_measurement_.OnNetworkBytesReceived(*request, 1000);
|
| + histogram_tester.ExpectTotalCount(
|
| + "DataUse.TrafficSize.User.Downstream.Unknown." + kConnectionType, 1);
|
| + }
|
| +
|
| + {
|
| + base::HistogramTester histogram_tester;
|
| + data_use_measurement()->OnApplicationStateChangeForTesting(
|
| + base::android::APPLICATION_STATE_HAS_STOPPED_ACTIVITIES);
|
| + data_use_measurement_.OnNetworkBytesReceived(*request, 1000);
|
| + histogram_tester.ExpectTotalCount(
|
| + "DataUse.TrafficSize.User.Downstream.Background." + kConnectionType, 1);
|
| + }
|
| +}
|
| +#endif
|
| +
|
| } // namespace data_use_measurement
|
|
|