| 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 fa217eb1ed141fd766ebca4ad8eb44339ce08971..b389fdddbcfa97b861913f94abeee90d88e81ebe 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
|
| @@ -21,32 +21,30 @@ class TestNTPUserDataLogger : public NTPUserDataLogger {
|
| base::HistogramBase::Count GetTotalCount(const std::string& histogram_name) {
|
| base::HistogramBase* histogram = base::StatisticsRecorder::FindHistogram(
|
| histogram_name);
|
| - return histogram->SnapshotSamples()->TotalCount();
|
| + // Return 0 if history is uninitialized.
|
| + return histogram ? histogram->SnapshotSamples()->TotalCount() : 0;
|
| }
|
|
|
| base::HistogramBase::Count GetBinCount(const std::string& histogram_name,
|
| base::HistogramBase::Sample value) {
|
| base::HistogramBase* histogram = base::StatisticsRecorder::FindHistogram(
|
| histogram_name);
|
| - return histogram->SnapshotSamples()->GetCount(value);
|
| + // Return 0 if history is uninitialized.
|
| + return histogram ? histogram->SnapshotSamples()->GetCount(value) : 0;
|
| }
|
|
|
| } // namespace
|
|
|
| TEST(NTPUserDataLoggerTest, TestLogging) {
|
| base::StatisticsRecorder::Initialize();
|
| - TestNTPUserDataLogger logger;
|
|
|
| - // Ensure it works when the statistics are all empty. Only the mouseover
|
| - // should be logged in this case. The other histograms are not created yet so
|
| - // we can't query them.
|
| - logger.EmitNtpStatistics();
|
| + // Ensure empty statistics.
|
| + EXPECT_EQ(0, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
|
|
|
| - EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
|
| - EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
|
| + // Enusure non-zero statistics.
|
| + TestNTPUserDataLogger logger;
|
|
|
| - // Ensure it works with some non-zero statistics. All statistics should now
|
| - // be logged.
|
| for (int i = 0; i < 20; ++i)
|
| logger.LogEvent(NTP_MOUSEOVER);
|
| for (int i = 0; i < 8; ++i)
|
| @@ -62,10 +60,11 @@ TEST(NTPUserDataLoggerTest, TestLogging) {
|
| for (int i = 0; i < 2; ++i)
|
| logger.LogEvent(NTP_GRAY_TILE);
|
| logger.LogEvent(NTP_SERVER_SIDE_SUGGESTION);
|
| +
|
| logger.EmitNtpStatistics();
|
|
|
| - EXPECT_EQ(2, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
|
| - EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
|
| + EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
|
| EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 20));
|
| EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfTiles"));
|
| EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfTiles", 8));
|
| @@ -86,8 +85,8 @@ TEST(NTPUserDataLoggerTest, TestLogging) {
|
|
|
| // Statistics should be reset to 0, so we should not log anything else.
|
| logger.EmitNtpStatistics();
|
| - EXPECT_EQ(3, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
|
| - EXPECT_EQ(2, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
|
| + EXPECT_EQ(2, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
|
| EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 20));
|
| EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfTiles"));
|
| EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfThumbnailTiles"));
|
| @@ -98,3 +97,60 @@ TEST(NTPUserDataLoggerTest, TestLogging) {
|
| EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfGrayTiles"));
|
| EXPECT_EQ(1, GetTotalCount("NewTabPage.SuggestionsType"));
|
| }
|
| +
|
| +TEST(NTPUserDataLoggerTest, TestLogImpression) {
|
| + base::StatisticsRecorder::Initialize();
|
| +
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 1));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 5));
|
| +
|
| + TestNTPUserDataLogger logger;
|
| +
|
| + logger.LogImpression(1, L"foobar");
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 1));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 5));
|
| +
|
| + logger.LogImpression(5, L"foobar");
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 1));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 5));
|
| +
|
| + // Try without provider. Only total increases.
|
| + logger.LogImpression(5, L"");
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 1));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 5));
|
| +
|
| + logger.LogImpression(1, L"foobar");
|
| + EXPECT_EQ(2, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 1));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsImpression.foobar", 5));
|
| +}
|
| +
|
| +TEST(NTPUserDataLoggerTest, TestLogNavigation) {
|
| + base::StatisticsRecorder::Initialize();
|
| +
|
| + EXPECT_EQ(0, GetTotalCount("NewTabPage.MostVisited"));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.MostVisited.foobar", 1));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.MostVisited.foobar", 5));
|
| +
|
| + TestNTPUserDataLogger logger;
|
| +
|
| + logger.LogNavigation(1, L"foobar");
|
| + EXPECT_EQ(1, GetTotalCount("NewTabPage.MostVisited"));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.MostVisited.foobar", 1));
|
| + EXPECT_EQ(0, GetBinCount("NewTabPage.MostVisited.foobar", 5));
|
| +
|
| + logger.LogNavigation(5, L"foobar");
|
| + EXPECT_EQ(2, GetTotalCount("NewTabPage.MostVisited"));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.MostVisited.foobar", 1));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.MostVisited.foobar", 5));
|
| +
|
| + // Try without provider. Only total increases.
|
| + logger.LogNavigation(5, L"");
|
| + EXPECT_EQ(3, GetTotalCount("NewTabPage.MostVisited"));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.MostVisited.foobar", 1));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.MostVisited.foobar", 5));
|
| +
|
| + logger.LogNavigation(1, L"foobar");
|
| + EXPECT_EQ(4, GetTotalCount("NewTabPage.MostVisited"));
|
| + EXPECT_EQ(2, GetBinCount("NewTabPage.MostVisited.foobar", 1));
|
| + EXPECT_EQ(1, GetBinCount("NewTabPage.MostVisited.foobar", 5));
|
| +}
|
|
|