| Index: chrome/browser/android/data_usage/external_data_use_observer_unittest.cc
|
| diff --git a/chrome/browser/android/data_usage/external_data_use_observer_unittest.cc b/chrome/browser/android/data_usage/external_data_use_observer_unittest.cc
|
| index 11b9e285a7d8562914e52791b37ee624a7a3aec3..6c2405f7fdb5f721e6baa56fedaa1c3ce103408c 100644
|
| --- a/chrome/browser/android/data_usage/external_data_use_observer_unittest.cc
|
| +++ b/chrome/browser/android/data_usage/external_data_use_observer_unittest.cc
|
| @@ -375,7 +375,7 @@ TEST_F(ExternalDataUseObserverTest, PeriodicFetchMatchingRules) {
|
| external_data_use_observer()->fetch_matching_rules_duration_);
|
| }
|
|
|
| -// Tests if data use reports are sent only after the total bytes send/received
|
| +// Tests if data use reports are sent only after the total bytes sent/received
|
| // across all buffered reports have reached the specified threshold.
|
| TEST_F(ExternalDataUseObserverTest, BufferDataUseReports) {
|
| AddDefaultMatchingRule();
|
| @@ -396,7 +396,7 @@ TEST_F(ExternalDataUseObserverTest, BufferDataUseReports) {
|
|
|
| if (i != num_iterations - 1) {
|
| // Total buffered bytes is less than the minimum threshold. Data use
|
| - // report should not be send.
|
| + // report should not be sent.
|
| EXPECT_TRUE(external_data_use_observer()
|
| ->last_data_report_submitted_ticks_.is_null());
|
| EXPECT_EQ(static_cast<int64_t>(i + 1),
|
| @@ -440,6 +440,63 @@ TEST_F(ExternalDataUseObserverTest, BufferDataUseReports) {
|
| external_data_use_observer()->data_use_report_min_bytes_, 1);
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +// Tests data use report submission when application status callback is called.
|
| +// Report should be submitted even if the number of bytes is less than the
|
| +// threshold. Report should not be submitted if there is a pending report.
|
| +TEST_F(ExternalDataUseObserverTest, DataUseReportingOnApplicationStatusChange) {
|
| + AddDefaultMatchingRule();
|
| + TriggerTabTrackingOnDefaultTab();
|
| +
|
| + // Report with less than threshold bytes should be reported, on application
|
| + // state change to background.
|
| + data_usage::DataUse data_use = default_data_use();
|
| + data_use.tx_bytes = 1;
|
| + data_use.rx_bytes = 1;
|
| + OnDataUse(data_use);
|
| + EXPECT_TRUE(external_data_use_observer()
|
| + ->last_data_report_submitted_ticks_.is_null());
|
| + EXPECT_EQ(2, external_data_use_observer()->total_bytes_buffered_);
|
| + EXPECT_EQ(0, external_data_use_observer()->pending_report_bytes_);
|
| +
|
| + external_data_use_observer()->OnApplicationStateChange(
|
| + base::android::APPLICATION_STATE_HAS_PAUSED_ACTIVITIES);
|
| + EXPECT_FALSE(external_data_use_observer()
|
| + ->last_data_report_submitted_ticks_.is_null());
|
| + EXPECT_EQ(0, external_data_use_observer()->total_bytes_buffered_);
|
| + EXPECT_EQ(2, external_data_use_observer()->pending_report_bytes_);
|
| + external_data_use_observer()->OnReportDataUseDone(true);
|
| +
|
| + // Create pending report.
|
| + OnDataUse(default_data_use());
|
| + EXPECT_FALSE(external_data_use_observer()
|
| + ->last_data_report_submitted_ticks_.is_null());
|
| + EXPECT_EQ(0, external_data_use_observer()->total_bytes_buffered_);
|
| + EXPECT_EQ(default_upload_bytes() + default_download_bytes(),
|
| + external_data_use_observer()->pending_report_bytes_);
|
| +
|
| + // Application state change should not submit if there is a pending report.
|
| + data_use.tx_bytes = 1;
|
| + data_use.rx_bytes = 1;
|
| + OnDataUse(data_use);
|
| + external_data_use_observer()->OnApplicationStateChange(
|
| + base::android::APPLICATION_STATE_HAS_PAUSED_ACTIVITIES);
|
| + EXPECT_FALSE(external_data_use_observer()
|
| + ->last_data_report_submitted_ticks_.is_null());
|
| + EXPECT_EQ(2, external_data_use_observer()->total_bytes_buffered_);
|
| + EXPECT_EQ(default_upload_bytes() + default_download_bytes(),
|
| + external_data_use_observer()->pending_report_bytes_);
|
| +
|
| + // Once pending report submission done callback was received, report should be
|
| + // submitted on next application state change.
|
| + external_data_use_observer()->OnReportDataUseDone(true);
|
| + external_data_use_observer()->OnApplicationStateChange(
|
| + base::android::APPLICATION_STATE_HAS_PAUSED_ACTIVITIES);
|
| + EXPECT_EQ(0, external_data_use_observer()->total_bytes_buffered_);
|
| + EXPECT_EQ(2, external_data_use_observer()->pending_report_bytes_);
|
| +}
|
| +#endif // OS_ANDROID
|
| +
|
| // Tests if the parameters from the field trial are populated correctly.
|
| TEST_F(ExternalDataUseObserverTest, Variations) {
|
| std::map<std::string, std::string> variation_params;
|
|
|