| Index: chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc
|
| diff --git a/chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc b/chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc
|
| index 46a3a1bce66dd3c08e24cc4c916b9a441c0c9c72..e5dbaed07f89108eaed465b067d348828965ec6e 100644
|
| --- a/chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc
|
| +++ b/chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc
|
| @@ -19,6 +19,7 @@ using base::Bucket;
|
| using ntp_tiles::NTPTileSource;
|
| using testing::ElementsAre;
|
| using testing::IsEmpty;
|
| +using testing::SizeIs;
|
|
|
| namespace {
|
|
|
| @@ -211,3 +212,94 @@ TEST(NTPUserDataLoggerTest, TestLogMostVisitedNavigation) {
|
| histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"),
|
| ElementsAre(Bucket(1, 1), Bucket(2, 1), Bucket(3, 2)));
|
| }
|
| +
|
| +TEST(NTPUserDataLoggerTest, TestLoadTime) {
|
| + base::StatisticsRecorder::Initialize();
|
| +
|
| + base::HistogramTester histogram_tester;
|
| +
|
| + TestNTPUserDataLogger logger;
|
| + logger.ntp_url_ = GURL("chrome://newtab/");
|
| +
|
| + base::TimeDelta delta_tiles_received = base::TimeDelta::FromMilliseconds(10);
|
| + base::TimeDelta delta_tiles_loaded = base::TimeDelta::FromMilliseconds(100);
|
| +
|
| + // Send the ALL_TILES_RECEIVED event.
|
| + logger.LogEvent(NTP_ALL_TILES_RECEIVED, delta_tiles_received);
|
| +
|
| + // Log a TOP_SITES impression (for the .MostVisited vs .MostLikely split in
|
| + // the time histograms).
|
| + logger.LogMostVisitedImpression(0, NTPTileSource::TOP_SITES);
|
| +
|
| + // Send the ALL_TILES_LOADED event, this should trigger emitting histograms.
|
| + logger.LogEvent(NTP_ALL_TILES_LOADED, delta_tiles_loaded);
|
| +
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.TilesReceivedTime"),
|
| + SizeIs(1));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples(
|
| + "NewTabPage.TilesReceivedTime.MostVisited"),
|
| + SizeIs(1));
|
| + EXPECT_THAT(
|
| + histogram_tester.GetAllSamples("NewTabPage.TilesReceivedTime.MostLikely"),
|
| + IsEmpty());
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime"), SizeIs(1));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.MostVisited"),
|
| + SizeIs(1));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.MostLikely"),
|
| + IsEmpty());
|
| +
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.TilesReceivedTime",
|
| + delta_tiles_received, 1);
|
| + histogram_tester.ExpectTimeBucketCount(
|
| + "NewTabPage.TilesReceivedTime.MostVisited", delta_tiles_received, 1);
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime",
|
| + delta_tiles_loaded, 1);
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.MostVisited",
|
| + delta_tiles_loaded, 1);
|
| +
|
| + // We should not log again for the same NTP.
|
| + logger.LogEvent(NTP_ALL_TILES_RECEIVED, delta_tiles_received);
|
| + logger.LogEvent(NTP_ALL_TILES_LOADED, delta_tiles_loaded);
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.TilesReceivedTime",
|
| + delta_tiles_received, 1);
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime",
|
| + delta_tiles_loaded, 1);
|
| +
|
| + // After navigating away from the NTP and back, we record again.
|
| + logger.NavigatedFromURLToURL(GURL("chrome://newtab/"),
|
| + GURL("http://chromium.org"));
|
| + logger.NavigatedFromURLToURL(GURL("http://chromium.org"),
|
| + GURL("chrome://newtab/"));
|
| +
|
| + // This time, log a SUGGESTIONS_SERVICE impression, so the times will end up
|
| + // in .MostLikely.
|
| + logger.LogMostVisitedImpression(0, NTPTileSource::SUGGESTIONS_SERVICE);
|
| +
|
| + base::TimeDelta delta_tiles_received2 = base::TimeDelta::FromMilliseconds(50);
|
| + base::TimeDelta delta_tiles_loaded2 = base::TimeDelta::FromMilliseconds(500);
|
| + logger.LogEvent(NTP_ALL_TILES_RECEIVED, delta_tiles_received2);
|
| + logger.LogEvent(NTP_ALL_TILES_LOADED, delta_tiles_loaded2);
|
| +
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.TilesReceivedTime"),
|
| + SizeIs(2));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples(
|
| + "NewTabPage.TilesReceivedTime.MostVisited"),
|
| + SizeIs(1));
|
| + EXPECT_THAT(
|
| + histogram_tester.GetAllSamples("NewTabPage.TilesReceivedTime.MostLikely"),
|
| + SizeIs(1));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime"), SizeIs(2));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.MostVisited"),
|
| + SizeIs(1));
|
| + EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.MostLikely"),
|
| + SizeIs(1));
|
| +
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.TilesReceivedTime",
|
| + delta_tiles_received2, 1);
|
| + histogram_tester.ExpectTimeBucketCount(
|
| + "NewTabPage.TilesReceivedTime.MostLikely", delta_tiles_received2, 1);
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime",
|
| + delta_tiles_loaded2, 1);
|
| + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.MostLikely",
|
| + delta_tiles_loaded2, 1);
|
| +}
|
|
|