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

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

Issue 102433009: Most visited iframe now postMessage to signal the iframing page that the link has been displayed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Answered comments. Created 6 years, 11 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/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 d38b1bfc0ab2d94ebdf8135cfc3b7d191208d0c7..cf3396d66a348de73eaf107568a556123e9d8a62 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
@@ -5,26 +5,96 @@
#include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h"
#include "base/basictypes.h"
-#include "testing/gmock/include/gmock/gmock.h"
+#include "base/metrics/histogram.h"
+#include "base/metrics/statistics_recorder.h"
+#include "chrome/common/ntp_logging_events.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
-class MockNTPUserDataLogger : public NTPUserDataLogger {
+class TestNTPUserDataLogger : public NTPUserDataLogger {
public:
- MockNTPUserDataLogger() : NTPUserDataLogger(NULL) {}
- virtual ~MockNTPUserDataLogger() {}
+ TestNTPUserDataLogger() : NTPUserDataLogger(NULL) {}
+ virtual ~TestNTPUserDataLogger() {}
+};
- MOCK_CONST_METHOD2(GetPercentError, size_t(size_t errors, size_t events));
+base::HistogramBase::Count GetTotalCount(const std::string& histogram_name) {
+ base::HistogramBase* histogram = base::StatisticsRecorder::FindHistogram(
+ histogram_name);
+ return histogram->SnapshotSamples()->TotalCount();
+}
- private:
- DISALLOW_COPY_AND_ASSIGN(MockNTPUserDataLogger);
-};
+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);
+}
} // namespace
-TEST(NTPUserDataLoggerTest, ThumbnailErrorRateDoesNotDivideByZero) {
- MockNTPUserDataLogger logger;
- EXPECT_CALL(logger, GetPercentError(testing::_, testing::_)).Times(0);
- logger.EmitThumbnailErrorRate();
+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();
+
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfMouseOvers"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 0));
+
+ // Ensure it works with some non-zero statistics. All statistics should now
+ // be logged.
+ for (int i=0; i<20; ++i)
Evan Stade 2014/01/16 00:51:41 spaces around binary operators.
beaudoin 2014/01/16 15:57:05 Done.
+ logger.LogEvent(NTP_MOUSEOVER);
+ for (int i=0; i<8; ++i)
+ logger.LogEvent(NTP_TILE);
+ for (int i=0; i<4; ++i)
+ logger.LogEvent(NTP_THUMBNAIL_TILE);
+ for (int i=0; i<2; ++i)
+ logger.LogEvent(NTP_THUMBNAIL_ERROR);
+ logger.LogEvent(NTP_GRAY_TILE_FALLBACK);
+ logger.LogEvent(NTP_EXTERNAL_TILE_FALLBACK);
+ for (int i=0; i<2; ++i)
+ logger.LogEvent(NTP_EXTERNAL_TILE);
+ 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, GetBinCount("NewTabPage.NumberOfMouseOvers", 20));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfTiles"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfTiles", 8));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfThumbnailTiles"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfThumbnailTiles", 4));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfThumbnailErrors"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfThumbnailErrors", 2));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfGrayTileFallbacks"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfGrayTileFallbacks", 1));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfExternalTileFallbacks"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfExternalTileFallbacks", 1));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfExternalTiles"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfExternalTiles", 2));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfGrayTiles"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.NumberOfGrayTiles", 2));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.SuggestionsType"));
+ EXPECT_EQ(1, GetBinCount("NewTabPage.SuggestionsType", 1));
+
+ // 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(1, GetBinCount("NewTabPage.NumberOfMouseOvers", 20));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfTiles"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfThumbnailTiles"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfThumbnailErrors"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfGrayTileFallbacks"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfExternalTileFallbacks"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfExternalTiles"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.NumberOfGrayTiles"));
+ EXPECT_EQ(1, GetTotalCount("NewTabPage.SuggestionsType"));
}
« no previous file with comments | « chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc ('k') | chrome/common/ntp_logging_events.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698