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

Unified Diff: chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc

Issue 2696223004: Desktop NTP: Add a UMA metric NewTabPage.TilesReceivedTime (Closed)
Patch Set: review Created 3 years, 10 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
« no previous file with comments | « chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc ('k') | chrome/common/search/ntp_logging_events.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+}
« no previous file with comments | « chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc ('k') | chrome/common/search/ntp_logging_events.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698