| 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 5768b3f5ab0331aec50414919c33b0b3a3181fb9..ae69a61d597d961c89b3d0ad07a4edfa1725af1c 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
|
| @@ -389,47 +389,57 @@ TEST_F(ExternalDataUseObserverTest, PeriodicFetchMatchingRules) {
|
| // control app is not installed or if more than zero valid rules have been
|
| // fetched.
|
| TEST_F(ExternalDataUseObserverTest, MatchingRuleFetchOnControlAppInstall) {
|
| - // Matching rules not fetched on navigation if control app is not installed.
|
| - external_data_use_observer()->last_matching_rules_fetch_time_ =
|
| - base::TimeTicks();
|
| - external_data_use_observer()->data_use_tab_model_->is_control_app_installed_ =
|
| - false;
|
| - external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
|
| - kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
|
| - std::string());
|
| - EXPECT_TRUE(
|
| - external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
|
| + {
|
| + // Matching rules not fetched on navigation if control app is not installed.
|
| + external_data_use_observer()->last_matching_rules_fetch_time_ =
|
| + base::TimeTicks();
|
| + external_data_use_observer()
|
| + ->data_use_tab_model_->is_control_app_installed_ = false;
|
| + base::HistogramTester histogram_tester;
|
| + external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
|
| + kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
|
| + std::string());
|
| + base::RunLoop().RunUntilIdle();
|
| + histogram_tester.ExpectTotalCount("DataUsage.MatchingRulesCount.Valid", 0);
|
| + }
|
|
|
| - // Matching rules are fetched when control app is installed.
|
| - external_data_use_observer()
|
| - ->data_use_tab_model_->OnControlAppInstallStateChange(true);
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_FALSE(
|
| - external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
|
| + {
|
| + // Matching rules are fetched when control app is installed.
|
| + base::HistogramTester histogram_tester;
|
| + external_data_use_observer()
|
| + ->data_use_tab_model_->OnControlAppInstallStateChange(true);
|
| + base::RunLoop().RunUntilIdle();
|
| + histogram_tester.ExpectTotalCount("DataUsage.MatchingRulesCount.Valid", 1);
|
| + }
|
|
|
| - // Matching rules fetched on every navigation if control app is installed and
|
| - // zero rules are available.
|
| - external_data_use_observer()->last_matching_rules_fetch_time_ =
|
| - base::TimeTicks();
|
| - external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
|
| - kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
|
| - std::string());
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_FALSE(
|
| - external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
|
| + {
|
| + // Matching rules fetched on every navigation if control app is installed
|
| + // and zero rules are available.
|
| + external_data_use_observer()->last_matching_rules_fetch_time_ =
|
| + base::TimeTicks();
|
| + base::HistogramTester histogram_tester;
|
| + external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
|
| + kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
|
| + std::string());
|
| + base::RunLoop().RunUntilIdle();
|
| + histogram_tester.ExpectTotalCount("DataUsage.MatchingRulesCount.Valid", 1);
|
| + }
|
|
|
| - // Matching rules not fetched on navigation if control app is installed and
|
| - // more than zero rules are available.
|
| - AddDefaultMatchingRule();
|
| - external_data_use_observer()->last_matching_rules_fetch_time_ =
|
| - base::TimeTicks();
|
| - EXPECT_TRUE(
|
| - external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
|
| - external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
|
| - kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
|
| - std::string());
|
| - EXPECT_TRUE(
|
| - external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
|
| + {
|
| + // Matching rules not fetched on navigation if control app is installed and
|
| + // more than zero rules are available.
|
| + AddDefaultMatchingRule();
|
| + external_data_use_observer()->last_matching_rules_fetch_time_ =
|
| + base::TimeTicks();
|
| + EXPECT_TRUE(external_data_use_observer()
|
| + ->last_matching_rules_fetch_time_.is_null());
|
| + base::HistogramTester histogram_tester;
|
| + external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
|
| + kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
|
| + std::string());
|
| + base::RunLoop().RunUntilIdle();
|
| + histogram_tester.ExpectTotalCount("DataUsage.MatchingRulesCount.Valid", 0);
|
| + }
|
| }
|
|
|
| // Tests if data use reports are sent only after the total bytes sent/received
|
| @@ -594,6 +604,8 @@ TEST_F(ExternalDataUseObserverTest, DataUseReportTimedOut) {
|
|
|
| // Create another ExternalDataUseObserver object.
|
| ReplaceExternalDataUseObserver(variation_params);
|
| + histogram_tester.ExpectTotalCount(kUMAMatchingRuleFirstFetchDurationHistogram,
|
| + 0);
|
|
|
| // Trigger the control app install, and matching rules will be fetched.
|
| external_data_use_observer()
|
|
|