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

Side by Side Diff: chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc

Issue 2544883006: Cleanup: Replace NTPLoggingTileSource by ntp_tiles::NTPTileSource (Closed)
Patch Set: tests Created 4 years 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc ('k') | chrome/common/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h" 5 #include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
12 #include "base/metrics/statistics_recorder.h" 12 #include "base/metrics/statistics_recorder.h"
13 #include "base/test/histogram_tester.h" 13 #include "base/test/histogram_tester.h"
14 #include "chrome/common/search/ntp_logging_events.h" 14 #include "chrome/common/search/ntp_logging_events.h"
15 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 using base::Bucket; 18 using base::Bucket;
19 using ntp_tiles::NTPTileSource;
19 using testing::ElementsAre; 20 using testing::ElementsAre;
20 using testing::IsEmpty; 21 using testing::IsEmpty;
21 22
22 namespace { 23 namespace {
23 24
24 using Sample = base::HistogramBase::Sample; 25 using Sample = base::HistogramBase::Sample;
25 using Samples = std::vector<Sample>; 26 using Samples = std::vector<Sample>;
26 27
27 class TestNTPUserDataLogger : public NTPUserDataLogger { 28 class TestNTPUserDataLogger : public NTPUserDataLogger {
28 public: 29 public:
29 TestNTPUserDataLogger() : NTPUserDataLogger(nullptr) {} 30 TestNTPUserDataLogger() : NTPUserDataLogger(nullptr) {}
30 ~TestNTPUserDataLogger() override {} 31 ~TestNTPUserDataLogger() override {}
31 }; 32 };
32 33
33 } // namespace 34 } // namespace
34 35
35 TEST(NTPUserDataLoggerTest, TestNumberOfTiles) { 36 TEST(NTPUserDataLoggerTest, TestNumberOfTiles) {
36 base::StatisticsRecorder::Initialize(); 37 base::StatisticsRecorder::Initialize();
37 38
38 base::HistogramTester histogram_tester; 39 base::HistogramTester histogram_tester;
39 40
40 // Ensure non-zero statistics. 41 // Ensure non-zero statistics.
41 TestNTPUserDataLogger logger; 42 TestNTPUserDataLogger logger;
42 logger.ntp_url_ = GURL("chrome://newtab/"); 43 logger.ntp_url_ = GURL("chrome://newtab/");
43 44
44 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(0); 45 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(0);
45 46
46 for (int i = 0; i < 8; ++i) 47 for (int i = 0; i < 8; ++i)
47 logger.LogMostVisitedImpression(i, NTPLoggingTileSource::SERVER); 48 logger.LogMostVisitedImpression(i, NTPTileSource::SUGGESTIONS_SERVICE);
48 logger.LogEvent(NTP_ALL_TILES_LOADED, delta); 49 logger.LogEvent(NTP_ALL_TILES_LOADED, delta);
49 EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.NumberOfTiles"), 50 EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.NumberOfTiles"),
50 ElementsAre(Bucket(8, 1))); 51 ElementsAre(Bucket(8, 1)));
51 52
52 // We should not log again for the same NTP. 53 // We should not log again for the same NTP.
53 logger.LogEvent(NTP_ALL_TILES_LOADED, delta); 54 logger.LogEvent(NTP_ALL_TILES_LOADED, delta);
54 EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.NumberOfTiles"), 55 EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.NumberOfTiles"),
55 ElementsAre(Bucket(8, 1))); 56 ElementsAre(Bucket(8, 1)));
56 57
57 // Navigating away and back resets stats. 58 // Navigating away and back resets stats.
(...skipping 10 matching lines...) Expand all
68 base::StatisticsRecorder::Initialize(); 69 base::StatisticsRecorder::Initialize();
69 70
70 base::HistogramTester histogram_tester; 71 base::HistogramTester histogram_tester;
71 72
72 TestNTPUserDataLogger logger; 73 TestNTPUserDataLogger logger;
73 logger.ntp_url_ = GURL("chrome://newtab/"); 74 logger.ntp_url_ = GURL("chrome://newtab/");
74 75
75 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(0); 76 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(0);
76 77
77 // Impressions increment the associated bins. 78 // Impressions increment the associated bins.
78 logger.LogMostVisitedImpression(0, NTPLoggingTileSource::SERVER); 79 logger.LogMostVisitedImpression(0, NTPTileSource::SUGGESTIONS_SERVICE);
79 logger.LogMostVisitedImpression(1, NTPLoggingTileSource::SERVER); 80 logger.LogMostVisitedImpression(1, NTPTileSource::SUGGESTIONS_SERVICE);
80 logger.LogMostVisitedImpression(2, NTPLoggingTileSource::SERVER); 81 logger.LogMostVisitedImpression(2, NTPTileSource::SUGGESTIONS_SERVICE);
81 logger.LogMostVisitedImpression(3, NTPLoggingTileSource::SERVER); 82 logger.LogMostVisitedImpression(3, NTPTileSource::SUGGESTIONS_SERVICE);
82 logger.LogMostVisitedImpression(4, NTPLoggingTileSource::CLIENT); 83 logger.LogMostVisitedImpression(4, NTPTileSource::TOP_SITES);
83 logger.LogMostVisitedImpression(5, NTPLoggingTileSource::CLIENT); 84 logger.LogMostVisitedImpression(5, NTPTileSource::TOP_SITES);
84 logger.LogMostVisitedImpression(6, NTPLoggingTileSource::CLIENT); 85 logger.LogMostVisitedImpression(6, NTPTileSource::TOP_SITES);
85 logger.LogMostVisitedImpression(7, NTPLoggingTileSource::CLIENT); 86 logger.LogMostVisitedImpression(7, NTPTileSource::TOP_SITES);
86 87
87 // Repeated impressions for the same bins are ignored. 88 // Repeated impressions for the same bins are ignored.
88 logger.LogMostVisitedImpression(0, NTPLoggingTileSource::SERVER); 89 logger.LogMostVisitedImpression(0, NTPTileSource::SUGGESTIONS_SERVICE);
89 logger.LogMostVisitedImpression(1, NTPLoggingTileSource::CLIENT); 90 logger.LogMostVisitedImpression(1, NTPTileSource::TOP_SITES);
90 logger.LogMostVisitedImpression(2, NTPLoggingTileSource::SERVER); 91 logger.LogMostVisitedImpression(2, NTPTileSource::SUGGESTIONS_SERVICE);
91 logger.LogMostVisitedImpression(3, NTPLoggingTileSource::CLIENT); 92 logger.LogMostVisitedImpression(3, NTPTileSource::TOP_SITES);
92 93
93 // Impressions are silently ignored for tiles >= 8. 94 // Impressions are silently ignored for tiles >= 8.
94 logger.LogMostVisitedImpression(8, NTPLoggingTileSource::SERVER); 95 logger.LogMostVisitedImpression(8, NTPTileSource::SUGGESTIONS_SERVICE);
95 logger.LogMostVisitedImpression(9, NTPLoggingTileSource::CLIENT); 96 logger.LogMostVisitedImpression(9, NTPTileSource::TOP_SITES);
96 97
97 // The actual histograms are emitted only after the ALL_TILES_LOADED event, so 98 // The actual histograms are emitted only after the ALL_TILES_LOADED event, so
98 // at this point everything should still be empty. 99 // at this point everything should still be empty.
99 EXPECT_THAT( 100 EXPECT_THAT(
100 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression"), 101 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression"),
101 IsEmpty()); 102 IsEmpty());
102 EXPECT_THAT( 103 EXPECT_THAT(
103 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.server"), 104 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.server"),
104 IsEmpty()); 105 IsEmpty());
105 EXPECT_THAT( 106 EXPECT_THAT(
(...skipping 12 matching lines...) Expand all
118 ElementsAre(Bucket(0, 1), Bucket(1, 1), Bucket(2, 1), Bucket(3, 1))); 119 ElementsAre(Bucket(0, 1), Bucket(1, 1), Bucket(2, 1), Bucket(3, 1)));
119 EXPECT_THAT( 120 EXPECT_THAT(
120 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.client"), 121 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.client"),
121 ElementsAre(Bucket(4, 1), Bucket(5, 1), Bucket(6, 1), Bucket(7, 1))); 122 ElementsAre(Bucket(4, 1), Bucket(5, 1), Bucket(6, 1), Bucket(7, 1)));
122 123
123 // After navigating away from the NTP and back, we record again. 124 // After navigating away from the NTP and back, we record again.
124 logger.NavigatedFromURLToURL(GURL("chrome://newtab/"), 125 logger.NavigatedFromURLToURL(GURL("chrome://newtab/"),
125 GURL("http://chromium.org")); 126 GURL("http://chromium.org"));
126 logger.NavigatedFromURLToURL(GURL("http://chromium.org"), 127 logger.NavigatedFromURLToURL(GURL("http://chromium.org"),
127 GURL("chrome://newtab/")); 128 GURL("chrome://newtab/"));
128 logger.LogMostVisitedImpression(0, NTPLoggingTileSource::SERVER); 129 logger.LogMostVisitedImpression(0, NTPTileSource::SUGGESTIONS_SERVICE);
129 logger.LogMostVisitedImpression(1, NTPLoggingTileSource::CLIENT); 130 logger.LogMostVisitedImpression(1, NTPTileSource::TOP_SITES);
130 logger.LogMostVisitedImpression(2, NTPLoggingTileSource::SERVER); 131 logger.LogMostVisitedImpression(2, NTPTileSource::SUGGESTIONS_SERVICE);
131 logger.LogMostVisitedImpression(3, NTPLoggingTileSource::CLIENT); 132 logger.LogMostVisitedImpression(3, NTPTileSource::TOP_SITES);
132 logger.LogEvent(NTP_ALL_TILES_LOADED, delta); 133 logger.LogEvent(NTP_ALL_TILES_LOADED, delta);
133 134
134 EXPECT_THAT( 135 EXPECT_THAT(
135 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression"), 136 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression"),
136 ElementsAre(Bucket(0, 2), Bucket(1, 2), Bucket(2, 2), Bucket(3, 2), 137 ElementsAre(Bucket(0, 2), Bucket(1, 2), Bucket(2, 2), Bucket(3, 2),
137 Bucket(4, 1), Bucket(5, 1), Bucket(6, 1), Bucket(7, 1))); 138 Bucket(4, 1), Bucket(5, 1), Bucket(6, 1), Bucket(7, 1)));
138 EXPECT_THAT( 139 EXPECT_THAT(
139 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.server"), 140 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.server"),
140 ElementsAre(Bucket(0, 2), Bucket(1, 1), Bucket(2, 2), Bucket(3, 1))); 141 ElementsAre(Bucket(0, 2), Bucket(1, 1), Bucket(2, 2), Bucket(3, 1)));
141 EXPECT_THAT( 142 EXPECT_THAT(
142 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.client"), 143 histogram_tester.GetAllSamples("NewTabPage.SuggestionsImpression.client"),
143 ElementsAre(Bucket(1, 1), Bucket(3, 1), Bucket(4, 1), Bucket(5, 1), 144 ElementsAre(Bucket(1, 1), Bucket(3, 1), Bucket(4, 1), Bucket(5, 1),
144 Bucket(6, 1), Bucket(7, 1))); 145 Bucket(6, 1), Bucket(7, 1)));
145 } 146 }
146 147
147 TEST(NTPUserDataLoggerTest, TestLogMostVisitedNavigation) { 148 TEST(NTPUserDataLoggerTest, TestLogMostVisitedNavigation) {
148 base::StatisticsRecorder::Initialize(); 149 base::StatisticsRecorder::Initialize();
149 150
150 base::HistogramTester histogram_tester; 151 base::HistogramTester histogram_tester;
151 152
152 TestNTPUserDataLogger logger; 153 TestNTPUserDataLogger logger;
153 154
154 logger.LogMostVisitedNavigation(0, NTPLoggingTileSource::SERVER); 155 logger.LogMostVisitedNavigation(0, NTPTileSource::SUGGESTIONS_SERVICE);
155 EXPECT_THAT( 156 EXPECT_THAT(
156 histogram_tester.GetAllSamples("NewTabPage.MostVisited"), 157 histogram_tester.GetAllSamples("NewTabPage.MostVisited"),
157 ElementsAre(Bucket(0, 1))); 158 ElementsAre(Bucket(0, 1)));
158 EXPECT_THAT( 159 EXPECT_THAT(
159 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"), 160 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"),
160 ElementsAre(Bucket(0, 1))); 161 ElementsAre(Bucket(0, 1)));
161 EXPECT_THAT( 162 EXPECT_THAT(
162 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"), 163 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"),
163 IsEmpty()); 164 IsEmpty());
164 165
165 logger.LogMostVisitedNavigation(1, NTPLoggingTileSource::SERVER); 166 logger.LogMostVisitedNavigation(1, NTPTileSource::SUGGESTIONS_SERVICE);
166 EXPECT_THAT( 167 EXPECT_THAT(
167 histogram_tester.GetAllSamples("NewTabPage.MostVisited"), 168 histogram_tester.GetAllSamples("NewTabPage.MostVisited"),
168 ElementsAre(Bucket(0, 1), Bucket(1, 1))); 169 ElementsAre(Bucket(0, 1), Bucket(1, 1)));
169 EXPECT_THAT( 170 EXPECT_THAT(
170 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"), 171 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"),
171 ElementsAre(Bucket(0, 1), Bucket(1, 1))); 172 ElementsAre(Bucket(0, 1), Bucket(1, 1)));
172 EXPECT_THAT( 173 EXPECT_THAT(
173 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"), 174 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"),
174 IsEmpty()); 175 IsEmpty());
175 176
176 logger.LogMostVisitedNavigation(2, NTPLoggingTileSource::CLIENT); 177 logger.LogMostVisitedNavigation(2, NTPTileSource::TOP_SITES);
177 EXPECT_THAT( 178 EXPECT_THAT(
178 histogram_tester.GetAllSamples("NewTabPage.MostVisited"), 179 histogram_tester.GetAllSamples("NewTabPage.MostVisited"),
179 ElementsAre(Bucket(0, 1), Bucket(1, 1), Bucket(2, 1))); 180 ElementsAre(Bucket(0, 1), Bucket(1, 1), Bucket(2, 1)));
180 EXPECT_THAT( 181 EXPECT_THAT(
181 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"), 182 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"),
182 ElementsAre(Bucket(0, 1), Bucket(1, 1))); 183 ElementsAre(Bucket(0, 1), Bucket(1, 1)));
183 EXPECT_THAT( 184 EXPECT_THAT(
184 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"), 185 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"),
185 ElementsAre(Bucket(2, 1))); 186 ElementsAre(Bucket(2, 1)));
186 187
187 logger.LogMostVisitedNavigation(3, NTPLoggingTileSource::CLIENT); 188 logger.LogMostVisitedNavigation(3, NTPTileSource::TOP_SITES);
188 EXPECT_THAT( 189 EXPECT_THAT(
189 histogram_tester.GetAllSamples("NewTabPage.MostVisited"), 190 histogram_tester.GetAllSamples("NewTabPage.MostVisited"),
190 ElementsAre(Bucket(0, 1), Bucket(1, 1), Bucket(2, 1), Bucket(3, 1))); 191 ElementsAre(Bucket(0, 1), Bucket(1, 1), Bucket(2, 1), Bucket(3, 1)));
191 EXPECT_THAT( 192 EXPECT_THAT(
192 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"), 193 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"),
193 ElementsAre(Bucket(0, 1), Bucket(1, 1))); 194 ElementsAre(Bucket(0, 1), Bucket(1, 1)));
194 EXPECT_THAT( 195 EXPECT_THAT(
195 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"), 196 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"),
196 ElementsAre(Bucket(2, 1), Bucket(3, 1))); 197 ElementsAre(Bucket(2, 1), Bucket(3, 1)));
197 198
198 // Navigations always increase. 199 // Navigations always increase.
199 logger.LogMostVisitedNavigation(0, NTPLoggingTileSource::SERVER); 200 logger.LogMostVisitedNavigation(0, NTPTileSource::SUGGESTIONS_SERVICE);
200 logger.LogMostVisitedNavigation(1, NTPLoggingTileSource::CLIENT); 201 logger.LogMostVisitedNavigation(1, NTPTileSource::TOP_SITES);
201 logger.LogMostVisitedNavigation(2, NTPLoggingTileSource::SERVER); 202 logger.LogMostVisitedNavigation(2, NTPTileSource::SUGGESTIONS_SERVICE);
202 logger.LogMostVisitedNavigation(3, NTPLoggingTileSource::CLIENT); 203 logger.LogMostVisitedNavigation(3, NTPTileSource::TOP_SITES);
203 EXPECT_THAT( 204 EXPECT_THAT(
204 histogram_tester.GetAllSamples("NewTabPage.MostVisited"), 205 histogram_tester.GetAllSamples("NewTabPage.MostVisited"),
205 ElementsAre(Bucket(0, 2), Bucket(1, 2), Bucket(2, 2), Bucket(3, 2))); 206 ElementsAre(Bucket(0, 2), Bucket(1, 2), Bucket(2, 2), Bucket(3, 2)));
206 EXPECT_THAT( 207 EXPECT_THAT(
207 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"), 208 histogram_tester.GetAllSamples("NewTabPage.MostVisited.server"),
208 ElementsAre(Bucket(0, 2), Bucket(1, 1), Bucket(2, 1))); 209 ElementsAre(Bucket(0, 2), Bucket(1, 1), Bucket(2, 1)));
209 EXPECT_THAT( 210 EXPECT_THAT(
210 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"), 211 histogram_tester.GetAllSamples("NewTabPage.MostVisited.client"),
211 ElementsAre(Bucket(1, 1), Bucket(2, 1), Bucket(3, 2))); 212 ElementsAre(Bucket(1, 1), Bucket(2, 1), Bucket(3, 2)));
212 } 213 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc ('k') | chrome/common/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698