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

Side by Side 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: 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/data_usage/external_data_use_observer.h" 5 #include "chrome/browser/android/data_usage/external_data_use_observer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 external_data_use_observer()->last_matching_rules_fetch_time_ = 392 external_data_use_observer()->last_matching_rules_fetch_time_ =
393 base::TimeTicks(); 393 base::TimeTicks();
394 external_data_use_observer()->data_use_tab_model_->is_control_app_installed_ = 394 external_data_use_observer()->data_use_tab_model_->is_control_app_installed_ =
395 false; 395 false;
396 external_data_use_observer()->data_use_tab_model_->OnNavigationEvent( 396 external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
397 kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL), 397 kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
398 std::string()); 398 std::string());
399 EXPECT_TRUE( 399 EXPECT_TRUE(
400 external_data_use_observer()->last_matching_rules_fetch_time_.is_null()); 400 external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
401 401
402 // Matching rules are fetched when control app gets installed.
403 external_data_use_observer()
404 ->data_use_tab_model_->OnControlAppInstallStateChange(true);
405 base::RunLoop().RunUntilIdle();
406 EXPECT_TRUE(
407 external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
408
402 // Matching rules fetched on every navigation if control app is installed and 409 // Matching rules fetched on every navigation if control app is installed and
403 // zero rules are available. 410 // zero rules are available.
404 external_data_use_observer() 411 external_data_use_observer()->last_matching_rules_fetch_time_ =
405 ->data_use_tab_model_->OnControlAppInstallStateChange(true); 412 base::TimeTicks();
406 external_data_use_observer()->data_use_tab_model_->OnNavigationEvent( 413 external_data_use_observer()->data_use_tab_model_->OnNavigationEvent(
407 kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL), 414 kDefaultTabId, DataUseTabModel::TRANSITION_LINK, GURL(kDefaultURL),
408 std::string()); 415 std::string());
409 base::RunLoop().RunUntilIdle(); 416 base::RunLoop().RunUntilIdle();
410 EXPECT_FALSE( 417 EXPECT_FALSE(
411 external_data_use_observer()->last_matching_rules_fetch_time_.is_null()); 418 external_data_use_observer()->last_matching_rules_fetch_time_.is_null());
412 419
413 // Matching rules not fetched on navigation if control app is installed and 420 // Matching rules not fetched on navigation if control app is installed and
414 // more than zero rules are available. 421 // more than zero rules are available.
415 AddDefaultMatchingRule(); 422 AddDefaultMatchingRule();
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 586
580 // Tests if the metrics are recorded correctly. 587 // Tests if the metrics are recorded correctly.
581 TEST_F(ExternalDataUseObserverTest, DataUseReportTimedOut) { 588 TEST_F(ExternalDataUseObserverTest, DataUseReportTimedOut) {
582 base::HistogramTester histogram_tester; 589 base::HistogramTester histogram_tester;
583 std::map<std::string, std::string> variation_params; 590 std::map<std::string, std::string> variation_params;
584 variation_params["data_report_submit_timeout_msec"] = "0"; 591 variation_params["data_report_submit_timeout_msec"] = "0";
585 variation_params["data_use_report_min_bytes"] = "0"; 592 variation_params["data_use_report_min_bytes"] = "0";
586 593
587 // Create another ExternalDataUseObserver object. 594 // Create another ExternalDataUseObserver object.
588 ReplaceExternalDataUseObserver(variation_params); 595 ReplaceExternalDataUseObserver(variation_params);
596 histogram_tester.ExpectTotalCount(kUMAMatchingRuleFirstFetchDurationHistogram,
597 0);
589 598
590 // Trigger the control app install. 599 // Trigger the control app install, which will fetch the matching rules.
591 external_data_use_observer() 600 external_data_use_observer()
592 ->GetDataUseTabModel() 601 ->GetDataUseTabModel()
593 ->OnControlAppInstallStateChange(true); 602 ->OnControlAppInstallStateChange(true);
594 histogram_tester.ExpectTotalCount(kUMAMatchingRuleFirstFetchDurationHistogram, 603 histogram_tester.ExpectTotalCount(kUMAMatchingRuleFirstFetchDurationHistogram,
595 0); 604 1);
596 605
597 // Verify that matching rules are fetched on the first navigation after the 606 // Verify that matching rules are fetched on the first navigation after the
598 // control app is installed. 607 // control app is installed.
599 external_data_use_observer()->GetDataUseTabModel()->OnNavigationEvent( 608 external_data_use_observer()->GetDataUseTabModel()->OnNavigationEvent(
600 kDefaultTabId, DataUseTabModel::TRANSITION_OMNIBOX_SEARCH, 609 kDefaultTabId, DataUseTabModel::TRANSITION_OMNIBOX_SEARCH,
601 GURL(kDefaultURL), std::string()); 610 GURL(kDefaultURL), std::string());
602 base::RunLoop().RunUntilIdle(); 611 base::RunLoop().RunUntilIdle();
603 histogram_tester.ExpectTotalCount(kUMAMatchingRuleFirstFetchDurationHistogram, 612 histogram_tester.ExpectTotalCount(kUMAMatchingRuleFirstFetchDurationHistogram,
604 1); 613 1);
605 614
606 AddDefaultMatchingRule(); 615 AddDefaultMatchingRule();
607 TriggerTabTrackingOnDefaultTab(); 616 TriggerTabTrackingOnDefaultTab();
608 OnDataUse(default_data_use()); 617 OnDataUse(default_data_use());
609 OnDataUse(default_data_use()); 618 OnDataUse(default_data_use());
610 // First data use report should be marked as timed out. 619 // First data use report should be marked as timed out.
611 histogram_tester.ExpectUniqueSample( 620 histogram_tester.ExpectUniqueSample(
612 "DataUsage.ReportSubmissionResult", 621 "DataUsage.ReportSubmissionResult",
613 ExternalDataUseObserver::DATAUSAGE_REPORT_SUBMISSION_TIMED_OUT, 1); 622 ExternalDataUseObserver::DATAUSAGE_REPORT_SUBMISSION_TIMED_OUT, 1);
614 histogram_tester.ExpectUniqueSample( 623 histogram_tester.ExpectUniqueSample(
615 "DataUsage.ReportSubmission.Bytes.TimedOut", 624 "DataUsage.ReportSubmission.Bytes.TimedOut",
616 default_upload_bytes() + default_download_bytes(), 1); 625 default_upload_bytes() + default_download_bytes(), 1);
617 histogram_tester.ExpectTotalCount(kUMAReportSubmissionDurationHistogram, 0); 626 histogram_tester.ExpectTotalCount(kUMAReportSubmissionDurationHistogram, 0);
618 } 627 }
619 628
620 } // namespace android 629 } // namespace android
621 630
622 } // namespace chrome 631 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698