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

Side by Side Diff: components/payments/core/journey_logger_unittest.cc

Issue 2893943004: Refactor UKM interface for mojo-ification (Closed)
Patch Set: Fixed contextualsearch Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "components/payments/core/journey_logger.h" 5 #include "components/payments/core/journey_logger.h"
6 6
7 #include "base/metrics/metrics_hashes.h" 7 #include "base/metrics/metrics_hashes.h"
8 #include "base/test/histogram_tester.h" 8 #include "base/test/histogram_tester.h"
9 #include "base/test/scoped_feature_list.h" 9 #include "base/test/scoped_feature_list.h"
10 #include "components/metrics/proto/ukm/entry.pb.h" 10 #include "components/metrics/proto/ukm/entry.pb.h"
11 #include "components/ukm/test_ukm_service.h" 11 #include "components/ukm/test_ukm_recorder.h"
12 #include "components/ukm/ukm_entry.h"
13 #include "components/ukm/ukm_source.h" 12 #include "components/ukm/ukm_source.h"
14 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
16 15
17 using testing::ContainerEq; 16 using testing::ContainerEq;
18 17
19 namespace payments { 18 namespace payments {
20 19
21 namespace {
22 // Finds the specified UKM metric by |name| in the specified UKM |metrics|.
23 const ukm::Entry_Metric* FindMetric(
24 const char* name,
25 const google::protobuf::RepeatedPtrField<ukm::Entry_Metric>& metrics) {
26 for (const auto& metric : metrics) {
27 if (metric.metric_hash() == base::HashMetricName(name))
28 return &metric;
29 }
30 return nullptr;
31 }
32 } // namespace
33
34 // Tests the canMakePayment stats for the case where the merchant does not use 20 // Tests the canMakePayment stats for the case where the merchant does not use
35 // it and does not show the PaymentRequest to the user. 21 // it and does not show the PaymentRequest to the user.
36 TEST(JourneyLoggerTest, 22 TEST(JourneyLoggerTest,
37 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_NoShow) { 23 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_NoShow) {
38 base::HistogramTester histogram_tester; 24 base::HistogramTester histogram_tester;
39 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 25 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
40 /*ukm_service=*/nullptr); 26 /*ukm_recorder=*/nullptr);
41 27
42 logger.RecordJourneyStatsHistograms( 28 logger.RecordJourneyStatsHistograms(
43 JourneyLogger::COMPLETION_STATUS_COMPLETED); 29 JourneyLogger::COMPLETION_STATUS_COMPLETED);
44 30
45 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage", 31 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage",
46 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED, 32 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED,
47 1); 33 1);
48 34
49 // There should be no completion stats since PR was not shown to the user 35 // There should be no completion stats since PR was not shown to the user
50 EXPECT_THAT( 36 EXPECT_THAT(
51 histogram_tester.GetTotalCountsForPrefix( 37 histogram_tester.GetTotalCountsForPrefix(
52 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"), 38 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"),
53 testing::ContainerEq(base::HistogramTester::CountsMap())); 39 testing::ContainerEq(base::HistogramTester::CountsMap()));
54 } 40 }
55 41
56 // Tests the canMakePayment stats for the case where the merchant does not use 42 // Tests the canMakePayment stats for the case where the merchant does not use
57 // it and the transaction is aborted. 43 // it and the transaction is aborted.
58 TEST(JourneyLoggerTest, 44 TEST(JourneyLoggerTest,
59 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_ShowAndUserAbort) { 45 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_ShowAndUserAbort) {
60 base::HistogramTester histogram_tester; 46 base::HistogramTester histogram_tester;
61 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 47 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
62 /*ukm_service=*/nullptr); 48 /*ukm_recorder=*/nullptr);
63 49
64 // Expect no log for CanMakePayment. 50 // Expect no log for CanMakePayment.
65 EXPECT_THAT( 51 EXPECT_THAT(
66 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 52 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
67 testing::ContainerEq(base::HistogramTester::CountsMap())); 53 testing::ContainerEq(base::HistogramTester::CountsMap()));
68 54
69 // The merchant does not query CanMakePayment, show the PaymentRequest and the 55 // The merchant does not query CanMakePayment, show the PaymentRequest and the
70 // user aborts it. 56 // user aborts it.
71 logger.SetShowCalled(); 57 logger.SetShowCalled();
72 logger.RecordJourneyStatsHistograms( 58 logger.RecordJourneyStatsHistograms(
73 JourneyLogger::COMPLETION_STATUS_USER_ABORTED); 59 JourneyLogger::COMPLETION_STATUS_USER_ABORTED);
74 60
75 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage", 61 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage",
76 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED, 62 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED,
77 1); 63 1);
78 64
79 // There should be a record for an abort when CanMakePayment is not used but 65 // There should be a record for an abort when CanMakePayment is not used but
80 // the PR is shown to the user. 66 // the PR is shown to the user.
81 histogram_tester.ExpectBucketCount( 67 histogram_tester.ExpectBucketCount(
82 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion", 68 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion",
83 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 69 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
84 } 70 }
85 71
86 // Tests the canMakePayment stats for the case where the merchant does not use 72 // Tests the canMakePayment stats for the case where the merchant does not use
87 // it and the transaction is aborted. 73 // it and the transaction is aborted.
88 TEST(JourneyLoggerTest, 74 TEST(JourneyLoggerTest,
89 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_ShowAndOtherAbort) { 75 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_ShowAndOtherAbort) {
90 base::HistogramTester histogram_tester; 76 base::HistogramTester histogram_tester;
91 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 77 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
92 /*ukm_service=*/nullptr); 78 /*ukm_recorder=*/nullptr);
93 79
94 // Expect no log for CanMakePayment. 80 // Expect no log for CanMakePayment.
95 EXPECT_THAT( 81 EXPECT_THAT(
96 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 82 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
97 testing::ContainerEq(base::HistogramTester::CountsMap())); 83 testing::ContainerEq(base::HistogramTester::CountsMap()));
98 84
99 // The merchant does not query CanMakePayment, show the PaymentRequest and 85 // The merchant does not query CanMakePayment, show the PaymentRequest and
100 // there is an abort not initiated by the user. 86 // there is an abort not initiated by the user.
101 logger.SetShowCalled(); 87 logger.SetShowCalled();
102 logger.RecordJourneyStatsHistograms( 88 logger.RecordJourneyStatsHistograms(
103 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED); 89 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED);
104 90
105 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage", 91 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage",
106 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED, 92 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED,
107 1); 93 1);
108 94
109 // There should be a record for an abort when CanMakePayment is not used but 95 // There should be a record for an abort when CanMakePayment is not used but
110 // the PR is shown to the user. 96 // the PR is shown to the user.
111 histogram_tester.ExpectBucketCount( 97 histogram_tester.ExpectBucketCount(
112 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion", 98 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion",
113 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1); 99 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1);
114 } 100 }
115 101
116 // Tests the canMakePayment stats for the case where the merchant does not use 102 // Tests the canMakePayment stats for the case where the merchant does not use
117 // it and the transaction is completed. 103 // it and the transaction is completed.
118 TEST(JourneyLoggerTest, 104 TEST(JourneyLoggerTest,
119 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_ShowAndComplete) { 105 RecordJourneyStatsHistograms_CanMakePaymentNotCalled_ShowAndComplete) {
120 base::HistogramTester histogram_tester; 106 base::HistogramTester histogram_tester;
121 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 107 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
122 /*ukm_service=*/nullptr); 108 /*ukm_recorder=*/nullptr);
123 109
124 // Expect no log for CanMakePayment. 110 // Expect no log for CanMakePayment.
125 EXPECT_THAT( 111 EXPECT_THAT(
126 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 112 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
127 testing::ContainerEq(base::HistogramTester::CountsMap())); 113 testing::ContainerEq(base::HistogramTester::CountsMap()));
128 114
129 // The merchant does not query CanMakePayment, show the PaymentRequest and the 115 // The merchant does not query CanMakePayment, show the PaymentRequest and the
130 // user completes it. 116 // user completes it.
131 logger.SetShowCalled(); 117 logger.SetShowCalled();
132 logger.RecordJourneyStatsHistograms( 118 logger.RecordJourneyStatsHistograms(
133 JourneyLogger::COMPLETION_STATUS_COMPLETED); 119 JourneyLogger::COMPLETION_STATUS_COMPLETED);
134 120
135 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage", 121 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage",
136 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED, 122 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED,
137 1); 123 1);
138 124
139 // There should be a record for an abort when CanMakePayment is not used but 125 // There should be a record for an abort when CanMakePayment is not used but
140 // the PR is shown to the user. 126 // the PR is shown to the user.
141 histogram_tester.ExpectBucketCount( 127 histogram_tester.ExpectBucketCount(
142 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion", 128 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion",
143 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1); 129 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1);
144 } 130 }
145 131
146 // Tests the canMakePayment stats for the case where the merchant uses it, 132 // Tests the canMakePayment stats for the case where the merchant uses it,
147 // returns false and show is not called. 133 // returns false and show is not called.
148 TEST(JourneyLoggerTest, 134 TEST(JourneyLoggerTest,
149 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseAndNoShow) { 135 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseAndNoShow) {
150 base::HistogramTester histogram_tester; 136 base::HistogramTester histogram_tester;
151 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 137 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
152 /*ukm_service=*/nullptr); 138 /*ukm_recorder=*/nullptr);
153 139
154 // Expect no log for CanMakePayment. 140 // Expect no log for CanMakePayment.
155 EXPECT_THAT( 141 EXPECT_THAT(
156 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 142 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
157 testing::ContainerEq(base::HistogramTester::CountsMap())); 143 testing::ContainerEq(base::HistogramTester::CountsMap()));
158 144
159 // The user cannot make payment and the PaymentRequest is not shown. 145 // The user cannot make payment and the PaymentRequest is not shown.
160 logger.SetCanMakePaymentValue(false); 146 logger.SetCanMakePaymentValue(false);
161 logger.RecordJourneyStatsHistograms( 147 logger.RecordJourneyStatsHistograms(
162 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED); 148 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED);
(...skipping 13 matching lines...) Expand all
176 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"), 162 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"),
177 testing::ContainerEq(base::HistogramTester::CountsMap())); 163 testing::ContainerEq(base::HistogramTester::CountsMap()));
178 } 164 }
179 165
180 // Tests the canMakePayment stats for the case where the merchant uses it, 166 // Tests the canMakePayment stats for the case where the merchant uses it,
181 // returns true and show is not called. 167 // returns true and show is not called.
182 TEST(JourneyLoggerTest, 168 TEST(JourneyLoggerTest,
183 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueAndNoShow) { 169 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueAndNoShow) {
184 base::HistogramTester histogram_tester; 170 base::HistogramTester histogram_tester;
185 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 171 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
186 /*ukm_service=*/nullptr); 172 /*ukm_recorder=*/nullptr);
187 173
188 // Expect no log for CanMakePayment. 174 // Expect no log for CanMakePayment.
189 EXPECT_THAT( 175 EXPECT_THAT(
190 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 176 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
191 testing::ContainerEq(base::HistogramTester::CountsMap())); 177 testing::ContainerEq(base::HistogramTester::CountsMap()));
192 178
193 // The user cannot make payment and the PaymentRequest is not shown. 179 // The user cannot make payment and the PaymentRequest is not shown.
194 logger.SetCanMakePaymentValue(true); 180 logger.SetCanMakePaymentValue(true);
195 logger.RecordJourneyStatsHistograms( 181 logger.RecordJourneyStatsHistograms(
196 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED); 182 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED);
(...skipping 13 matching lines...) Expand all
210 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"), 196 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"),
211 testing::ContainerEq(base::HistogramTester::CountsMap())); 197 testing::ContainerEq(base::HistogramTester::CountsMap()));
212 } 198 }
213 199
214 // Tests the canMakePayment stats for the case where the merchant uses it, 200 // Tests the canMakePayment stats for the case where the merchant uses it,
215 // returns false, show is called but the transaction is aborted by the user. 201 // returns false, show is called but the transaction is aborted by the user.
216 TEST(JourneyLoggerTest, 202 TEST(JourneyLoggerTest,
217 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseShowAndUserAbort) { 203 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseShowAndUserAbort) {
218 base::HistogramTester histogram_tester; 204 base::HistogramTester histogram_tester;
219 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 205 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
220 /*ukm_service=*/nullptr); 206 /*ukm_recorder=*/nullptr);
221 207
222 // Expect no log for CanMakePayment. 208 // Expect no log for CanMakePayment.
223 EXPECT_THAT( 209 EXPECT_THAT(
224 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 210 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
225 testing::ContainerEq(base::HistogramTester::CountsMap())); 211 testing::ContainerEq(base::HistogramTester::CountsMap()));
226 212
227 // The user cannot make payment and the PaymentRequest is not shown. 213 // The user cannot make payment and the PaymentRequest is not shown.
228 logger.SetShowCalled(); 214 logger.SetShowCalled();
229 logger.SetCanMakePaymentValue(false); 215 logger.SetCanMakePaymentValue(false);
230 logger.RecordJourneyStatsHistograms( 216 logger.RecordJourneyStatsHistograms(
(...skipping 13 matching lines...) Expand all
244 "PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion", 230 "PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion",
245 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 231 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
246 } 232 }
247 233
248 // Tests the canMakePayment stats for the case where the merchant uses it, 234 // Tests the canMakePayment stats for the case where the merchant uses it,
249 // returns false, show is called but the transaction is aborted. 235 // returns false, show is called but the transaction is aborted.
250 TEST(JourneyLoggerTest, 236 TEST(JourneyLoggerTest,
251 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseShowAndOtherAbort) { 237 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseShowAndOtherAbort) {
252 base::HistogramTester histogram_tester; 238 base::HistogramTester histogram_tester;
253 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 239 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
254 /*ukm_service=*/nullptr); 240 /*ukm_recorder=*/nullptr);
255 241
256 // Expect no log for CanMakePayment. 242 // Expect no log for CanMakePayment.
257 EXPECT_THAT( 243 EXPECT_THAT(
258 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 244 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
259 testing::ContainerEq(base::HistogramTester::CountsMap())); 245 testing::ContainerEq(base::HistogramTester::CountsMap()));
260 246
261 // The user cannot make payment and the PaymentRequest is not shown. 247 // The user cannot make payment and the PaymentRequest is not shown.
262 logger.SetShowCalled(); 248 logger.SetShowCalled();
263 logger.SetCanMakePaymentValue(false); 249 logger.SetCanMakePaymentValue(false);
264 logger.RecordJourneyStatsHistograms( 250 logger.RecordJourneyStatsHistograms(
(...skipping 13 matching lines...) Expand all
278 "PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion", 264 "PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion",
279 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1); 265 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1);
280 } 266 }
281 267
282 // Tests the canMakePayment stats for the case where the merchant uses it, 268 // Tests the canMakePayment stats for the case where the merchant uses it,
283 // returns false, show is called and the transaction is completed. 269 // returns false, show is called and the transaction is completed.
284 TEST(JourneyLoggerTest, 270 TEST(JourneyLoggerTest,
285 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseShowAndComplete) { 271 RecordJourneyStatsHistograms_CanMakePaymentCalled_FalseShowAndComplete) {
286 base::HistogramTester histogram_tester; 272 base::HistogramTester histogram_tester;
287 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 273 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
288 /*ukm_service=*/nullptr); 274 /*ukm_recorder=*/nullptr);
289 275
290 // Expect no log for CanMakePayment. 276 // Expect no log for CanMakePayment.
291 EXPECT_THAT( 277 EXPECT_THAT(
292 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 278 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
293 testing::ContainerEq(base::HistogramTester::CountsMap())); 279 testing::ContainerEq(base::HistogramTester::CountsMap()));
294 280
295 // The user cannot make payment and the PaymentRequest is not shown. 281 // The user cannot make payment and the PaymentRequest is not shown.
296 logger.SetShowCalled(); 282 logger.SetShowCalled();
297 logger.SetCanMakePaymentValue(false); 283 logger.SetCanMakePaymentValue(false);
298 logger.RecordJourneyStatsHistograms( 284 logger.RecordJourneyStatsHistograms(
(...skipping 14 matching lines...) Expand all
313 "PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion", 299 "PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion",
314 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1); 300 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1);
315 } 301 }
316 302
317 // Tests the canMakePayment stats for the case where the merchant uses it, 303 // Tests the canMakePayment stats for the case where the merchant uses it,
318 // returns true, show is called but the transaction is aborted by the user. 304 // returns true, show is called but the transaction is aborted by the user.
319 TEST(JourneyLoggerTest, 305 TEST(JourneyLoggerTest,
320 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueShowAndUserAbort) { 306 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueShowAndUserAbort) {
321 base::HistogramTester histogram_tester; 307 base::HistogramTester histogram_tester;
322 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 308 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
323 /*ukm_service=*/nullptr); 309 /*ukm_recorder=*/nullptr);
324 310
325 // Expect no log for CanMakePayment. 311 // Expect no log for CanMakePayment.
326 EXPECT_THAT( 312 EXPECT_THAT(
327 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 313 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
328 testing::ContainerEq(base::HistogramTester::CountsMap())); 314 testing::ContainerEq(base::HistogramTester::CountsMap()));
329 315
330 // The user cannot make payment and the PaymentRequest is not shown. 316 // The user cannot make payment and the PaymentRequest is not shown.
331 logger.SetShowCalled(); 317 logger.SetShowCalled();
332 logger.SetCanMakePaymentValue(true); 318 logger.SetCanMakePaymentValue(true);
333 logger.RecordJourneyStatsHistograms( 319 logger.RecordJourneyStatsHistograms(
(...skipping 15 matching lines...) Expand all
349 "PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion", 335 "PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion",
350 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 336 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
351 } 337 }
352 338
353 // Tests the canMakePayment stats for the case where the merchant uses it, 339 // Tests the canMakePayment stats for the case where the merchant uses it,
354 // returns true, show is called but the transaction is aborted. 340 // returns true, show is called but the transaction is aborted.
355 TEST(JourneyLoggerTest, 341 TEST(JourneyLoggerTest,
356 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueShowAndOtherAbort) { 342 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueShowAndOtherAbort) {
357 base::HistogramTester histogram_tester; 343 base::HistogramTester histogram_tester;
358 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 344 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
359 /*ukm_service=*/nullptr); 345 /*ukm_recorder=*/nullptr);
360 346
361 // Expect no log for CanMakePayment. 347 // Expect no log for CanMakePayment.
362 EXPECT_THAT( 348 EXPECT_THAT(
363 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 349 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
364 testing::ContainerEq(base::HistogramTester::CountsMap())); 350 testing::ContainerEq(base::HistogramTester::CountsMap()));
365 351
366 // The user cannot make payment and the PaymentRequest is not shown. 352 // The user cannot make payment and the PaymentRequest is not shown.
367 logger.SetShowCalled(); 353 logger.SetShowCalled();
368 logger.SetCanMakePaymentValue(true); 354 logger.SetCanMakePaymentValue(true);
369 logger.RecordJourneyStatsHistograms( 355 logger.RecordJourneyStatsHistograms(
(...skipping 15 matching lines...) Expand all
385 "PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion", 371 "PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion",
386 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1); 372 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1);
387 } 373 }
388 374
389 // Tests the canMakePayment stats for the case where the merchant uses it, 375 // Tests the canMakePayment stats for the case where the merchant uses it,
390 // returns true, show is called and the transaction is completed. 376 // returns true, show is called and the transaction is completed.
391 TEST(JourneyLoggerTest, 377 TEST(JourneyLoggerTest,
392 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueShowAndComplete) { 378 RecordJourneyStatsHistograms_CanMakePaymentCalled_TrueShowAndComplete) {
393 base::HistogramTester histogram_tester; 379 base::HistogramTester histogram_tester;
394 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 380 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
395 /*ukm_service=*/nullptr); 381 /*ukm_recorder=*/nullptr);
396 382
397 // Expect no log for CanMakePayment. 383 // Expect no log for CanMakePayment.
398 EXPECT_THAT( 384 EXPECT_THAT(
399 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 385 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
400 testing::ContainerEq(base::HistogramTester::CountsMap())); 386 testing::ContainerEq(base::HistogramTester::CountsMap()));
401 387
402 // The user cannot make payment and the PaymentRequest is not shown. 388 // The user cannot make payment and the PaymentRequest is not shown.
403 logger.SetShowCalled(); 389 logger.SetShowCalled();
404 logger.SetCanMakePaymentValue(true); 390 logger.SetCanMakePaymentValue(true);
405 logger.RecordJourneyStatsHistograms( 391 logger.RecordJourneyStatsHistograms(
(...skipping 15 matching lines...) Expand all
421 "PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion", 407 "PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion",
422 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1); 408 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1);
423 } 409 }
424 410
425 // Tests the canMakePayment metrics are not logged if the Payment Request was 411 // Tests the canMakePayment metrics are not logged if the Payment Request was
426 // done in an incognito tab. 412 // done in an incognito tab.
427 TEST(JourneyLoggerTest, 413 TEST(JourneyLoggerTest,
428 RecordJourneyStatsHistograms_CanMakePayment_IncognitoTab) { 414 RecordJourneyStatsHistograms_CanMakePayment_IncognitoTab) {
429 base::HistogramTester histogram_tester; 415 base::HistogramTester histogram_tester;
430 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(""), 416 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(""),
431 /*ukm_service=*/nullptr); 417 /*ukm_recorder=*/nullptr);
432 418
433 // Expect no log for CanMakePayment. 419 // Expect no log for CanMakePayment.
434 EXPECT_THAT( 420 EXPECT_THAT(
435 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 421 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
436 testing::ContainerEq(base::HistogramTester::CountsMap())); 422 testing::ContainerEq(base::HistogramTester::CountsMap()));
437 423
438 // The user cannot make payment and the PaymentRequest is not shown. 424 // The user cannot make payment and the PaymentRequest is not shown.
439 logger.SetShowCalled(); 425 logger.SetShowCalled();
440 logger.SetCanMakePaymentValue(true); 426 logger.SetCanMakePaymentValue(true);
441 logger.RecordJourneyStatsHistograms( 427 logger.RecordJourneyStatsHistograms(
442 JourneyLogger::COMPLETION_STATUS_COMPLETED); 428 JourneyLogger::COMPLETION_STATUS_COMPLETED);
443 429
444 // Expect no log for CanMakePayment. 430 // Expect no log for CanMakePayment.
445 EXPECT_THAT( 431 EXPECT_THAT(
446 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"), 432 histogram_tester.GetTotalCountsForPrefix("PaymentRequest.CanMakePayment"),
447 testing::ContainerEq(base::HistogramTester::CountsMap())); 433 testing::ContainerEq(base::HistogramTester::CountsMap()));
448 } 434 }
449 435
450 // Tests that the completion status metrics based on whether the user had 436 // Tests that the completion status metrics based on whether the user had
451 // suggestions for all the requested sections are logged as correctly. 437 // suggestions for all the requested sections are logged as correctly.
452 TEST(JourneyLoggerTest, 438 TEST(JourneyLoggerTest,
453 RecordJourneyStatsHistograms_SuggestionsForEverything_Completed) { 439 RecordJourneyStatsHistograms_SuggestionsForEverything_Completed) {
454 base::HistogramTester histogram_tester; 440 base::HistogramTester histogram_tester;
455 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 441 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
456 /*ukm_service=*/nullptr); 442 /*ukm_recorder=*/nullptr);
457 443
458 // Simulate that the user had suggestions for all the requested sections. 444 // Simulate that the user had suggestions for all the requested sections.
459 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1); 445 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1);
460 446
461 // Simulate that the user completes the checkout. 447 // Simulate that the user completes the checkout.
462 logger.RecordJourneyStatsHistograms( 448 logger.RecordJourneyStatsHistograms(
463 JourneyLogger::COMPLETION_STATUS_COMPLETED); 449 JourneyLogger::COMPLETION_STATUS_COMPLETED);
464 450
465 histogram_tester.ExpectBucketCount( 451 histogram_tester.ExpectBucketCount(
466 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion", 452 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion",
467 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1); 453 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1);
468 454
469 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 455 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
470 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 456 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
471 "EffectOnCompletion"), 457 "EffectOnCompletion"),
472 testing::ContainerEq(base::HistogramTester::CountsMap())); 458 testing::ContainerEq(base::HistogramTester::CountsMap()));
473 } 459 }
474 460
475 // Tests that the completion status metrics based on whether the user had 461 // Tests that the completion status metrics based on whether the user had
476 // suggestions for all the requested sections are logged as correctly. 462 // suggestions for all the requested sections are logged as correctly.
477 TEST(JourneyLoggerTest, 463 TEST(JourneyLoggerTest,
478 RecordJourneyStatsHistograms_SuggestionsForEverything_UserAborted) { 464 RecordJourneyStatsHistograms_SuggestionsForEverything_UserAborted) {
479 base::HistogramTester histogram_tester; 465 base::HistogramTester histogram_tester;
480 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 466 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
481 /*ukm_service=*/nullptr); 467 /*ukm_recorder=*/nullptr);
482 468
483 // Simulate that the user had suggestions for all the requested sections. 469 // Simulate that the user had suggestions for all the requested sections.
484 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1); 470 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1);
485 471
486 // Simulate that the user aborts the checkout. 472 // Simulate that the user aborts the checkout.
487 logger.RecordJourneyStatsHistograms( 473 logger.RecordJourneyStatsHistograms(
488 JourneyLogger::COMPLETION_STATUS_USER_ABORTED); 474 JourneyLogger::COMPLETION_STATUS_USER_ABORTED);
489 475
490 histogram_tester.ExpectBucketCount( 476 histogram_tester.ExpectBucketCount(
491 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion", 477 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion",
492 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 478 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
493 479
494 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 480 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
495 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 481 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
496 "EffectOnCompletion"), 482 "EffectOnCompletion"),
497 testing::ContainerEq(base::HistogramTester::CountsMap())); 483 testing::ContainerEq(base::HistogramTester::CountsMap()));
498 } 484 }
499 485
500 // Tests that the completion status metrics based on whether the user had 486 // Tests that the completion status metrics based on whether the user had
501 // suggestions for all the requested sections are logged as correctly. 487 // suggestions for all the requested sections are logged as correctly.
502 TEST(JourneyLoggerTest, 488 TEST(JourneyLoggerTest,
503 RecordJourneyStatsHistograms_SuggestionsForEverything_OtherAborted) { 489 RecordJourneyStatsHistograms_SuggestionsForEverything_OtherAborted) {
504 base::HistogramTester histogram_tester; 490 base::HistogramTester histogram_tester;
505 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 491 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
506 /*ukm_service=*/nullptr); 492 /*ukm_recorder=*/nullptr);
507 493
508 // Simulate that the user had suggestions for all the requested sections. 494 // Simulate that the user had suggestions for all the requested sections.
509 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1); 495 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1);
510 496
511 // Simulate that the checkout is aborted. 497 // Simulate that the checkout is aborted.
512 logger.RecordJourneyStatsHistograms( 498 logger.RecordJourneyStatsHistograms(
513 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED); 499 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED);
514 500
515 histogram_tester.ExpectBucketCount( 501 histogram_tester.ExpectBucketCount(
516 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion", 502 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion",
517 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1); 503 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1);
518 504
519 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 505 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
520 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 506 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
521 "EffectOnCompletion"), 507 "EffectOnCompletion"),
522 testing::ContainerEq(base::HistogramTester::CountsMap())); 508 testing::ContainerEq(base::HistogramTester::CountsMap()));
523 } 509 }
524 510
525 // Tests that the completion status metrics based on whether the user had 511 // Tests that the completion status metrics based on whether the user had
526 // suggestions for all the requested sections are logged as correctly, even in 512 // suggestions for all the requested sections are logged as correctly, even in
527 // incognito mode. 513 // incognito mode.
528 TEST(JourneyLoggerTest, 514 TEST(JourneyLoggerTest,
529 RecordJourneyStatsHistograms_SuggestionsForEverything_Incognito) { 515 RecordJourneyStatsHistograms_SuggestionsForEverything_Incognito) {
530 base::HistogramTester histogram_tester; 516 base::HistogramTester histogram_tester;
531 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(""), 517 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(""),
532 /*ukm_service=*/nullptr); 518 /*ukm_recorder=*/nullptr);
533 519
534 // Simulate that the user had suggestions for all the requested sections. 520 // Simulate that the user had suggestions for all the requested sections.
535 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1); 521 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1);
536 522
537 // Simulate that the user completes the checkout. 523 // Simulate that the user completes the checkout.
538 logger.RecordJourneyStatsHistograms( 524 logger.RecordJourneyStatsHistograms(
539 JourneyLogger::COMPLETION_STATUS_COMPLETED); 525 JourneyLogger::COMPLETION_STATUS_COMPLETED);
540 526
541 histogram_tester.ExpectBucketCount( 527 histogram_tester.ExpectBucketCount(
542 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion", 528 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion",
543 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1); 529 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1);
544 530
545 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 531 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
546 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 532 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
547 "EffectOnCompletion"), 533 "EffectOnCompletion"),
548 testing::ContainerEq(base::HistogramTester::CountsMap())); 534 testing::ContainerEq(base::HistogramTester::CountsMap()));
549 } 535 }
550 536
551 // Tests that the completion status metrics based on whether the user had 537 // Tests that the completion status metrics based on whether the user had
552 // suggestions for all the requested sections are logged as correctly. 538 // suggestions for all the requested sections are logged as correctly.
553 TEST(JourneyLoggerTest, 539 TEST(JourneyLoggerTest,
554 RecordJourneyStatsHistograms_NoSuggestionsForEverything_Completed) { 540 RecordJourneyStatsHistograms_NoSuggestionsForEverything_Completed) {
555 base::HistogramTester histogram_tester; 541 base::HistogramTester histogram_tester;
556 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 542 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
557 /*ukm_service=*/nullptr); 543 /*ukm_recorder=*/nullptr);
558 544
559 // Simulate that the user had suggestions for all the requested sections. 545 // Simulate that the user had suggestions for all the requested sections.
560 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0); 546 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0);
561 547
562 // Simulate that the user completes the checkout. 548 // Simulate that the user completes the checkout.
563 logger.RecordJourneyStatsHistograms( 549 logger.RecordJourneyStatsHistograms(
564 JourneyLogger::COMPLETION_STATUS_COMPLETED); 550 JourneyLogger::COMPLETION_STATUS_COMPLETED);
565 551
566 histogram_tester.ExpectBucketCount( 552 histogram_tester.ExpectBucketCount(
567 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 553 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
568 "EffectOnCompletion", 554 "EffectOnCompletion",
569 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1); 555 JourneyLogger::COMPLETION_STATUS_COMPLETED, 1);
570 556
571 EXPECT_THAT( 557 EXPECT_THAT(
572 histogram_tester.GetTotalCountsForPrefix( 558 histogram_tester.GetTotalCountsForPrefix(
573 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion"), 559 "PaymentRequest.UserHadSuggestionsForEverything.EffectOnCompletion"),
574 testing::ContainerEq(base::HistogramTester::CountsMap())); 560 testing::ContainerEq(base::HistogramTester::CountsMap()));
575 } 561 }
576 562
577 // Tests that the completion status metrics based on whether the user had 563 // Tests that the completion status metrics based on whether the user had
578 // suggestions for all the requested sections are logged as correctly. 564 // suggestions for all the requested sections are logged as correctly.
579 TEST(JourneyLoggerTest, 565 TEST(JourneyLoggerTest,
580 RecordJourneyStatsHistograms_NoSuggestionsForEverything_UserAborted) { 566 RecordJourneyStatsHistograms_NoSuggestionsForEverything_UserAborted) {
581 base::HistogramTester histogram_tester; 567 base::HistogramTester histogram_tester;
582 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 568 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
583 /*ukm_service=*/nullptr); 569 /*ukm_recorder=*/nullptr);
584 570
585 // Simulate that the user had suggestions for all the requested sections. 571 // Simulate that the user had suggestions for all the requested sections.
586 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0); 572 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0);
587 573
588 // Simulate that the user aborts the checkout. 574 // Simulate that the user aborts the checkout.
589 logger.RecordJourneyStatsHistograms( 575 logger.RecordJourneyStatsHistograms(
590 JourneyLogger::COMPLETION_STATUS_USER_ABORTED); 576 JourneyLogger::COMPLETION_STATUS_USER_ABORTED);
591 577
592 histogram_tester.ExpectBucketCount( 578 histogram_tester.ExpectBucketCount(
593 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 579 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
594 "EffectOnCompletion", 580 "EffectOnCompletion",
595 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 581 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
596 582
597 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 583 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
598 "PaymentRequest.UserHadSuggestionsForEverything." 584 "PaymentRequest.UserHadSuggestionsForEverything."
599 "EffectOnCompletion"), 585 "EffectOnCompletion"),
600 testing::ContainerEq(base::HistogramTester::CountsMap())); 586 testing::ContainerEq(base::HistogramTester::CountsMap()));
601 } 587 }
602 588
603 // Tests that the completion status metrics based on whether the user had 589 // Tests that the completion status metrics based on whether the user had
604 // suggestions for all the requested sections are logged as correctly. 590 // suggestions for all the requested sections are logged as correctly.
605 TEST(JourneyLoggerTest, 591 TEST(JourneyLoggerTest,
606 RecordJourneyStatsHistograms_NoSuggestionsForEverything_OtherAborted) { 592 RecordJourneyStatsHistograms_NoSuggestionsForEverything_OtherAborted) {
607 base::HistogramTester histogram_tester; 593 base::HistogramTester histogram_tester;
608 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""), 594 JourneyLogger logger(/*is_incognito=*/false, /*url=*/GURL(""),
609 /*ukm_service=*/nullptr); 595 /*ukm_recorder=*/nullptr);
610 596
611 // Simulate that the user had suggestions for all the requested sections. 597 // Simulate that the user had suggestions for all the requested sections.
612 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0); 598 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0);
613 599
614 // Simulate that the user aborts the checkout. 600 // Simulate that the user aborts the checkout.
615 logger.RecordJourneyStatsHistograms( 601 logger.RecordJourneyStatsHistograms(
616 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED); 602 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED);
617 603
618 histogram_tester.ExpectBucketCount( 604 histogram_tester.ExpectBucketCount(
619 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 605 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
620 "EffectOnCompletion", 606 "EffectOnCompletion",
621 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1); 607 JourneyLogger::COMPLETION_STATUS_OTHER_ABORTED, 1);
622 608
623 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 609 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
624 "PaymentRequest.UserHadSuggestionsForEverything." 610 "PaymentRequest.UserHadSuggestionsForEverything."
625 "EffectOnCompletion"), 611 "EffectOnCompletion"),
626 testing::ContainerEq(base::HistogramTester::CountsMap())); 612 testing::ContainerEq(base::HistogramTester::CountsMap()));
627 } 613 }
628 614
629 // Tests that the completion status metrics based on whether the user had 615 // Tests that the completion status metrics based on whether the user had
630 // suggestions for all the requested sections are logged as correctly, even in 616 // suggestions for all the requested sections are logged as correctly, even in
631 // incognito mode. 617 // incognito mode.
632 TEST(JourneyLoggerTest, 618 TEST(JourneyLoggerTest,
633 RecordJourneyStatsHistograms_NoSuggestionsForEverything_Incognito) { 619 RecordJourneyStatsHistograms_NoSuggestionsForEverything_Incognito) {
634 base::HistogramTester histogram_tester; 620 base::HistogramTester histogram_tester;
635 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(""), 621 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(""),
636 /*ukm_service=*/nullptr); 622 /*ukm_recorder=*/nullptr);
637 623
638 // Simulate that the user had suggestions for all the requested sections. 624 // Simulate that the user had suggestions for all the requested sections.
639 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0); 625 logger.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0);
640 626
641 // Simulate that the user aborts the checkout. 627 // Simulate that the user aborts the checkout.
642 logger.RecordJourneyStatsHistograms( 628 logger.RecordJourneyStatsHistograms(
643 JourneyLogger::COMPLETION_STATUS_USER_ABORTED); 629 JourneyLogger::COMPLETION_STATUS_USER_ABORTED);
644 630
645 histogram_tester.ExpectBucketCount( 631 histogram_tester.ExpectBucketCount(
646 "PaymentRequest.UserDidNotHaveSuggestionsForEverything." 632 "PaymentRequest.UserDidNotHaveSuggestionsForEverything."
647 "EffectOnCompletion", 633 "EffectOnCompletion",
648 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 634 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
649 635
650 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix( 636 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix(
651 "PaymentRequest.UserHadSuggestionsForEverything." 637 "PaymentRequest.UserHadSuggestionsForEverything."
652 "EffectOnCompletion"), 638 "EffectOnCompletion"),
653 testing::ContainerEq(base::HistogramTester::CountsMap())); 639 testing::ContainerEq(base::HistogramTester::CountsMap()));
654 } 640 }
655 641
656 // Tests that the metrics are logged correctly for two simultaneous Payment 642 // Tests that the metrics are logged correctly for two simultaneous Payment
657 // Requests. 643 // Requests.
658 TEST(JourneyLoggerTest, RecordJourneyStatsHistograms_TwoPaymentRequests) { 644 TEST(JourneyLoggerTest, RecordJourneyStatsHistograms_TwoPaymentRequests) {
659 base::HistogramTester histogram_tester; 645 base::HistogramTester histogram_tester;
660 JourneyLogger logger1(/*is_incognito=*/false, /*url=*/GURL(""), 646 JourneyLogger logger1(/*is_incognito=*/false, /*url=*/GURL(""),
661 /*ukm_service=*/nullptr); 647 /*ukm_recorder=*/nullptr);
662 JourneyLogger logger2(/*is_incognito=*/false, /*url=*/GURL(""), 648 JourneyLogger logger2(/*is_incognito=*/false, /*url=*/GURL(""),
663 /*ukm_service=*/nullptr); 649 /*ukm_recorder=*/nullptr);
664 650
665 // Make the two loggers have different data. 651 // Make the two loggers have different data.
666 logger1.SetShowCalled(); 652 logger1.SetShowCalled();
667 logger2.SetShowCalled(); 653 logger2.SetShowCalled();
668 654
669 logger1.SetCanMakePaymentValue(true); 655 logger1.SetCanMakePaymentValue(true);
670 656
671 logger1.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1); 657 logger1.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 1);
672 logger2.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0); 658 logger2.SetNumberOfSuggestionsShown(JourneyLogger::SECTION_CREDIT_CARDS, 0);
673 659
(...skipping 21 matching lines...) Expand all
695 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage", 681 histogram_tester.ExpectBucketCount("PaymentRequest.CanMakePayment.Usage",
696 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED, 682 JourneyLogger::CAN_MAKE_PAYMENT_NOT_USED,
697 1); 683 1);
698 histogram_tester.ExpectBucketCount( 684 histogram_tester.ExpectBucketCount(
699 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion", 685 "PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion",
700 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1); 686 JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 1);
701 } 687 }
702 688
703 // Tests that the Payment Request UKMs are logged correctly. 689 // Tests that the Payment Request UKMs are logged correctly.
704 TEST(JourneyLoggerTest, RecordJourneyStatsHistograms_CheckoutFunnelUkm) { 690 TEST(JourneyLoggerTest, RecordJourneyStatsHistograms_CheckoutFunnelUkm) {
705 ukm::UkmServiceTestingHarness ukm_service_test_harness; 691 ukm::TestUkmRecorder ukm_recorder;
706 ukm::TestUkmService* ukm_service =
707 ukm_service_test_harness.test_ukm_service();
708 char test_url[] = "http://www.google.com/"; 692 char test_url[] = "http://www.google.com/";
709 693
710 base::HistogramTester histogram_tester; 694 base::HistogramTester histogram_tester;
711 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(test_url), 695 JourneyLogger logger(/*is_incognito=*/true, /*url=*/GURL(test_url),
712 /*ukm_service=*/ukm_service); 696 /*ukm_recorder=*/&ukm_recorder);
713 697
714 // Simulate that the user aborts after being shown the Payment Request and 698 // Simulate that the user aborts after being shown the Payment Request and
715 // clicking pay. 699 // clicking pay.
716 logger.SetEventOccurred(JourneyLogger::EVENT_SHOWN); 700 logger.SetEventOccurred(JourneyLogger::EVENT_SHOWN);
717 logger.SetEventOccurred(JourneyLogger::EVENT_PAY_CLICKED); 701 logger.SetEventOccurred(JourneyLogger::EVENT_PAY_CLICKED);
718 logger.RecordJourneyStatsHistograms( 702 logger.RecordJourneyStatsHistograms(
719 JourneyLogger::COMPLETION_STATUS_USER_ABORTED); 703 JourneyLogger::COMPLETION_STATUS_USER_ABORTED);
720 704
721 // Make sure the UKM was logged correctly. 705 // Make sure the UKM was logged correctly.
722 ASSERT_EQ(1U, ukm_service->sources_count()); 706 ASSERT_EQ(1U, ukm_recorder.sources_count());
723 const ukm::UkmSource* source = ukm_service->GetSourceForUrl(test_url); 707 const ukm::UkmSource* source = ukm_recorder.GetSourceForUrl(test_url);
724 ASSERT_NE(nullptr, source); 708 ASSERT_NE(nullptr, source);
725 709
726 ASSERT_EQ(1U, ukm_service->entries_count()); 710 ASSERT_EQ(1U, ukm_recorder.entries_count());
727 const ukm::UkmEntry* entry = ukm_service->GetEntry(0); 711 const ukm::mojom::UkmEntry* entry = ukm_recorder.GetEntry(0);
728 EXPECT_EQ(source->id(), entry->source_id()); 712 EXPECT_EQ(source->id(), entry->source_id);
713 EXPECT_EQ(base::HashMetricName(internal::kUKMCheckoutEventsEntryName),
714 entry->event_hash);
729 715
730 ukm::Entry entry_proto; 716 const ukm::mojom::UkmMetric* status_metric = ukm::TestUkmRecorder::FindMetric(
731 entry->PopulateProto(&entry_proto); 717 entry, internal::kUKMCompletionStatusMetricName);
732 EXPECT_EQ(source->id(), entry_proto.source_id());
733 EXPECT_EQ(base::HashMetricName(internal::kUKMCheckoutEventsEntryName),
734 entry_proto.event_hash());
735
736 const ukm::Entry_Metric* status_metric = FindMetric(
737 internal::kUKMCompletionStatusMetricName, entry_proto.metrics());
738 ASSERT_NE(nullptr, status_metric); 718 ASSERT_NE(nullptr, status_metric);
739 EXPECT_EQ(JourneyLogger::COMPLETION_STATUS_USER_ABORTED, 719 EXPECT_EQ(JourneyLogger::COMPLETION_STATUS_USER_ABORTED,
740 status_metric->value()); 720 status_metric->value);
741 721
742 const ukm::Entry_Metric* step_metric = 722 const ukm::mojom::UkmMetric* step_metric =
743 FindMetric(internal::kUKMEventsMetricName, entry_proto.metrics()); 723 ukm::TestUkmRecorder::FindMetric(entry, internal::kUKMEventsMetricName);
744 ASSERT_NE(nullptr, step_metric); 724 ASSERT_NE(nullptr, step_metric);
745 EXPECT_EQ(JourneyLogger::EVENT_SHOWN | JourneyLogger::EVENT_PAY_CLICKED, 725 EXPECT_EQ(JourneyLogger::EVENT_SHOWN | JourneyLogger::EVENT_PAY_CLICKED,
746 step_metric->value()); 726 step_metric->value);
747 } 727 }
748 728
749 } // namespace payments 729 } // namespace payments
OLDNEW
« no previous file with comments | « components/payments/core/journey_logger.cc ('k') | components/payments/core/payment_request_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698