Index: chrome/browser/resource_coordinator/tab_manager_unittest.cc |
diff --git a/chrome/browser/resource_coordinator/tab_manager_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_unittest.cc |
index 238610c99fd9b59476d9d3d0e6fa86bf0d2c2cee..128e305ba67812fcbde5029ecf8900832b452f17 100644 |
--- a/chrome/browser/resource_coordinator/tab_manager_unittest.cc |
+++ b/chrome/browser/resource_coordinator/tab_manager_unittest.cc |
@@ -14,6 +14,7 @@ |
#include "base/memory/ptr_util.h" |
#include "base/metrics/field_trial.h" |
#include "base/strings/string16.h" |
+#include "base/test/histogram_tester.h" |
#include "base/test/mock_entropy_provider.h" |
#include "base/test/simple_test_tick_clock.h" |
#include "base/time/time.h" |
@@ -601,4 +602,50 @@ TEST_F(TabManagerTest, OnSessionRestoreStartedAndFinishedLoadingTabs) { |
EXPECT_FALSE(tab_manager->IsSessionRestoreLoadingTabs()); |
} |
+TEST_F(TabManagerTest, HistogramsSessionRestoreSwitchToTab) { |
+ const char kHistogramName[] = "TabManager.SessionRestore.SwitchToTab"; |
+ |
+ TabManager tab_manager; |
+ WebContents* tab = CreateWebContents(); |
+ auto* data = tab_manager.GetWebContentsData(tab); |
+ |
+ base::HistogramTester histograms; |
+ histograms.ExpectTotalCount(kHistogramName, 0); |
+ |
+ data->SetTabLoadingState(TAB_IS_LOADING); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ |
+ // Nothing should happen until we're in a session restore |
+ histograms.ExpectTotalCount(kHistogramName, 0); |
+ |
+ tab_manager.OnSessionRestoreStartedLoadingTabs(); |
+ |
+ data->SetTabLoadingState(TAB_IS_NOT_LOADING); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ histograms.ExpectTotalCount(kHistogramName, 2); |
+ histograms.ExpectBucketCount(kHistogramName, TAB_IS_NOT_LOADING, 2); |
+ |
+ data->SetTabLoadingState(TAB_IS_LOADING); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ |
+ histograms.ExpectTotalCount(kHistogramName, 5); |
+ histograms.ExpectBucketCount(kHistogramName, TAB_IS_NOT_LOADING, 2); |
+ histograms.ExpectBucketCount(kHistogramName, TAB_IS_LOADING, 3); |
+ |
+ data->SetTabLoadingState(TAB_IS_LOADED); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ tab_manager.RecordSwitchToTab(tab); |
+ |
+ histograms.ExpectTotalCount(kHistogramName, 9); |
+ histograms.ExpectBucketCount(kHistogramName, TAB_IS_NOT_LOADING, 2); |
+ histograms.ExpectBucketCount(kHistogramName, TAB_IS_LOADING, 3); |
+ histograms.ExpectBucketCount(kHistogramName, TAB_IS_LOADED, 4); |
+} |
+ |
} // namespace resource_coordinator |