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

Unified Diff: chrome/browser/android/data_usage/external_data_use_observer_unittest.cc

Issue 1772273002: Remove one thread hop while fetching matching rules (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed tbansal comments Created 4 years, 9 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: 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()

Powered by Google App Engine
This is Rietveld 408576698