| 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
|
|
|