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

Side by Side Diff: chrome/browser/banners/app_banner_settings_helper_unittest.cc

Issue 1306693005: Allow the minimum time between banner trigger visits to be varied via field trials. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unit tests Created 5 years, 3 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
« no previous file with comments | « chrome/browser/banners/app_banner_settings_helper.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <vector> 5 #include <vector>
6 6
7 #include "chrome/browser/banners/app_banner_settings_helper.h" 7 #include "chrome/browser/banners/app_banner_settings_helper.h"
8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 8 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
9 #include "ui/base/page_transition_types.h" 9 #include "ui/base/page_transition_types.h"
10 10
(...skipping 24 matching lines...) Expand all
35 35
36 bool IsWithinHour(base::Time time1, base::Time time2) { 36 bool IsWithinHour(base::Time time1, base::Time time2) {
37 return time1 - time2 < base::TimeDelta::FromHours(1) || 37 return time1 - time2 < base::TimeDelta::FromHours(1) ||
38 time2 - time1 < base::TimeDelta::FromHours(1); 38 time2 - time1 < base::TimeDelta::FromHours(1);
39 } 39 }
40 40
41 class AppBannerSettingsHelperTest : public ChromeRenderViewHostTestHarness {}; 41 class AppBannerSettingsHelperTest : public ChromeRenderViewHostTestHarness {};
42 42
43 } // namespace 43 } // namespace
44 44
45 TEST_F(AppBannerSettingsHelperTest, BucketTimeToResolutionInvalid) {
46 base::Time reference_time = GetReferenceTime();
47
48 // Test null, 1 day, and greater than 1 day cases.
49 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 0),
50 reference_time.LocalMidnight());
51 EXPECT_EQ(
52 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 1440),
53 reference_time.LocalMidnight());
54 EXPECT_EQ(
55 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 2880),
56 reference_time.LocalMidnight());
57
58 // Test number of minutes in 1 day + 1.
59 EXPECT_EQ(
60 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 1441),
61 reference_time.LocalMidnight());
62
63 // Test minutes which are not divisible by 1440 (minutes in a day).
64 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 7),
65 reference_time.LocalMidnight());
66 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 13),
67 reference_time.LocalMidnight());
68 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 21),
69 reference_time.LocalMidnight());
70 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 35),
71 reference_time.LocalMidnight());
72 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 42),
73 reference_time.LocalMidnight());
74 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 50),
75 reference_time.LocalMidnight());
76 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 59),
77 reference_time.LocalMidnight());
78 }
79
80 TEST_F(AppBannerSettingsHelperTest, BucketTimeToResolutionValid) {
81 // 11:00
82 base::Time reference_time = GetReferenceTime();
83 // 13:44
84 base::Time same_day_later =
85 reference_time + base::TimeDelta::FromMinutes(164);
86 // 10:18
87 base::Time same_day_earlier =
88 reference_time - base::TimeDelta::FromMinutes(42);
89 base::Time midnight = reference_time.LocalMidnight();
90 base::Time bucketed_hour = midnight + base::TimeDelta::FromHours(11);
91 base::Time bucketed_hour_later = midnight + base::TimeDelta::FromHours(13);
92 base::Time bucketed_hour_earlier = midnight + base::TimeDelta::FromHours(10);
93
94 // Resolution of 1 minute: 11:00, 13:44, 10:18.
95 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 1),
96 bucketed_hour);
97 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 1),
98 bucketed_hour_later + base::TimeDelta::FromMinutes(44));
99 EXPECT_EQ(
100 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 1),
101 bucketed_hour_earlier + base::TimeDelta::FromMinutes(18));
102
103 // Resolution of 3 minutes: 11:00, 13:43, 10:18.
104 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 3),
105 bucketed_hour);
106 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 3),
107 bucketed_hour_later + base::TimeDelta::FromMinutes(42));
108 EXPECT_EQ(
109 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 3),
110 bucketed_hour_earlier + base::TimeDelta::FromMinutes(18));
111
112 // Resolution of 10 minutes: 11:00, 13:40, 10:10.
113 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 10),
114 bucketed_hour);
115 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 10),
116 bucketed_hour_later + base::TimeDelta::FromMinutes(40));
117 EXPECT_EQ(
118 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 10),
119 bucketed_hour_earlier + base::TimeDelta::FromMinutes(10));
120
121 // Resolution of 20 minutes: 11:00, 13:40, 10:00.
122 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 20),
123 bucketed_hour);
124 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 20),
125 bucketed_hour_later + base::TimeDelta::FromMinutes(40));
126 EXPECT_EQ(
127 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 20),
128 bucketed_hour_earlier);
129
130 // Resolution of 60 minutes: 11:00, 13:00, 10:00.
131 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 60),
132 bucketed_hour);
133 EXPECT_EQ(AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 60),
134 bucketed_hour_later);
135 EXPECT_EQ(
136 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 60),
137 bucketed_hour_earlier);
138
139 // Resolution of 120 minutes: 10:00, 12:00, 10:00.
140 EXPECT_EQ(
141 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 120),
142 bucketed_hour_earlier);
143 EXPECT_EQ(
144 AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 120),
145 bucketed_hour_later - base::TimeDelta::FromHours(1));
146 EXPECT_EQ(
147 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 120),
148 bucketed_hour_earlier);
149
150 // Resolution of 180 minutes: 9:00, 12:00, 9:00.
151 EXPECT_EQ(
152 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 180),
153 bucketed_hour_earlier - base::TimeDelta::FromHours(1));
154 EXPECT_EQ(
155 AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 180),
156 bucketed_hour_later - base::TimeDelta::FromHours(1));
157 EXPECT_EQ(
158 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 180),
159 bucketed_hour_earlier - base::TimeDelta::FromHours(1));
160
161 // Resolution of 240 minutes: 8:00, 12:00, 8:00.
162 EXPECT_EQ(
163 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 240),
164 midnight + base::TimeDelta::FromHours(8));
165 EXPECT_EQ(
166 AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 240),
167 midnight + base::TimeDelta::FromHours(12));
168 EXPECT_EQ(
169 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 240),
170 midnight + base::TimeDelta::FromHours(8));
171
172 // Resolution of 360 minutes: 6:00, 12:00, 6:00
173 EXPECT_EQ(
174 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 360),
175 midnight + base::TimeDelta::FromHours(6));
176 EXPECT_EQ(
177 AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 360),
178 midnight + base::TimeDelta::FromHours(12));
179 EXPECT_EQ(
180 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 360),
181 midnight + base::TimeDelta::FromHours(6));
182
183 // Resolution of 720 minutes: 0:00, 12:00, 0:00
184 EXPECT_EQ(
185 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 720),
186 midnight);
187 EXPECT_EQ(
188 AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 720),
189 midnight + base::TimeDelta::FromHours(12));
190 EXPECT_EQ(
191 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 720),
192 midnight);
193
194 // Resolution of 1440 minutes: 0:00, 0:00, 0:00
195 EXPECT_EQ(
196 AppBannerSettingsHelper::BucketTimeToResolution(reference_time, 1440),
197 midnight);
198 EXPECT_EQ(
199 AppBannerSettingsHelper::BucketTimeToResolution(same_day_later, 1440),
200 midnight);
201 EXPECT_EQ(
202 AppBannerSettingsHelper::BucketTimeToResolution(same_day_earlier, 1440),
203 midnight);
204 }
205
45 TEST_F(AppBannerSettingsHelperTest, CouldShowEvents) { 206 TEST_F(AppBannerSettingsHelperTest, CouldShowEvents) {
46 AppBannerSettingsHelper::SetEngagementWeights(1, 1); 207 AppBannerSettingsHelper::SetEngagementWeights(1, 1);
208 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(1440);
47 GURL url(kTestURL); 209 GURL url(kTestURL);
48 NavigateAndCommit(url); 210 NavigateAndCommit(url);
49 211
50 // Check that by default, there are no events recorded. 212 // Check that by default, there are no events recorded.
51 std::vector<AppBannerSettingsHelper::BannerEvent> events = 213 std::vector<AppBannerSettingsHelper::BannerEvent> events =
52 AppBannerSettingsHelper::GetCouldShowBannerEvents(web_contents(), url, 214 AppBannerSettingsHelper::GetCouldShowBannerEvents(web_contents(), url,
53 kTestPackageName); 215 kTestPackageName);
54 EXPECT_TRUE(events.empty()); 216 EXPECT_TRUE(events.empty());
55 217
56 base::Time reference_time = GetReferenceTime(); 218 base::Time reference_time = GetReferenceTime();
(...skipping 12 matching lines...) Expand all
69 web_contents(), url, kTestPackageName); 231 web_contents(), url, kTestPackageName);
70 EXPECT_EQ(1u, events.size()); 232 EXPECT_EQ(1u, events.size());
71 EXPECT_TRUE(IsWithinDay(events[0].time, previous_fortnight)); 233 EXPECT_TRUE(IsWithinDay(events[0].time, previous_fortnight));
72 EXPECT_EQ(events[0].engagement, 1); 234 EXPECT_EQ(events[0].engagement, 1);
73 235
74 // Now add the next date. 236 // Now add the next date.
75 AppBannerSettingsHelper::RecordBannerCouldShowEvent( 237 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
76 web_contents(), url, kTestPackageName, three_days_prior, 238 web_contents(), url, kTestPackageName, three_days_prior,
77 ui::PAGE_TRANSITION_GENERATED); 239 ui::PAGE_TRANSITION_GENERATED);
78 240
79 // Now there should be two days. 241 // Now there should be two events.
80 events = AppBannerSettingsHelper::GetCouldShowBannerEvents( 242 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
81 web_contents(), url, kTestPackageName); 243 web_contents(), url, kTestPackageName);
82 EXPECT_EQ(2u, events.size()); 244 EXPECT_EQ(2u, events.size());
83 EXPECT_TRUE(IsWithinDay(events[0].time, previous_fortnight)); 245 EXPECT_TRUE(IsWithinDay(events[0].time, previous_fortnight));
84 EXPECT_TRUE(IsWithinDay(events[1].time, three_days_prior)); 246 EXPECT_TRUE(IsWithinDay(events[1].time, three_days_prior));
85 EXPECT_EQ(events[0].engagement, 1); 247 EXPECT_EQ(events[0].engagement, 1);
86 EXPECT_EQ(events[1].engagement, 1); 248 EXPECT_EQ(events[1].engagement, 1);
87 249
88 // Now add the reference date. 250 // Now add the reference date.
89 AppBannerSettingsHelper::RecordBannerCouldShowEvent( 251 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
90 web_contents(), url, kTestPackageName, reference_time, 252 web_contents(), url, kTestPackageName, reference_time,
91 ui::PAGE_TRANSITION_LINK); 253 ui::PAGE_TRANSITION_LINK);
92 254
93 // Now there should still be two days, but the first date should have been 255 // Now there should still be two events, but the first date should have been
94 // removed. 256 // removed.
95 events = AppBannerSettingsHelper::GetCouldShowBannerEvents( 257 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
96 web_contents(), url, kTestPackageName); 258 web_contents(), url, kTestPackageName);
97 EXPECT_EQ(2u, events.size()); 259 EXPECT_EQ(2u, events.size());
98 EXPECT_TRUE(IsWithinDay(events[0].time, three_days_prior)); 260 EXPECT_TRUE(IsWithinDay(events[0].time, three_days_prior));
99 EXPECT_TRUE(IsWithinDay(events[1].time, reference_time)); 261 EXPECT_TRUE(IsWithinDay(events[1].time, reference_time));
100 EXPECT_EQ(events[0].engagement, 1); 262 EXPECT_EQ(events[0].engagement, 1);
101 EXPECT_EQ(events[1].engagement, 1); 263 EXPECT_EQ(events[1].engagement, 1);
102 264
103 // Now add the the other day on the reference date. 265 // Now add the the other date on the reference day.
104 AppBannerSettingsHelper::RecordBannerCouldShowEvent( 266 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
105 web_contents(), url, kTestPackageName, same_day, 267 web_contents(), url, kTestPackageName, same_day,
106 ui::PAGE_TRANSITION_RELOAD); 268 ui::PAGE_TRANSITION_RELOAD);
107 269
108 // Now there should still be the same two days. 270 // Now there should still be the same two dates.
109 events = AppBannerSettingsHelper::GetCouldShowBannerEvents( 271 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
110 web_contents(), url, kTestPackageName); 272 web_contents(), url, kTestPackageName);
111 EXPECT_EQ(2u, events.size()); 273 EXPECT_EQ(2u, events.size());
112 EXPECT_TRUE(IsWithinDay(events[0].time, three_days_prior)); 274 EXPECT_TRUE(IsWithinDay(events[0].time, three_days_prior));
113 EXPECT_TRUE(IsWithinDay(events[1].time, reference_time)); 275 EXPECT_TRUE(IsWithinDay(events[1].time, reference_time));
114 EXPECT_EQ(events[0].engagement, 1); 276 EXPECT_EQ(events[0].engagement, 1);
115 EXPECT_EQ(events[1].engagement, 1); 277 EXPECT_EQ(events[1].engagement, 1);
116 } 278 }
117 279
280 TEST_F(AppBannerSettingsHelperTest, CouldShowEventsDifferentResolution) {
281 AppBannerSettingsHelper::SetEngagementWeights(1, 1);
282 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(20);
283 GURL url(kTestURL);
284 NavigateAndCommit(url);
285
286 // Check that by default, there are no events recorded.
287 std::vector<AppBannerSettingsHelper::BannerEvent> events =
288 AppBannerSettingsHelper::GetCouldShowBannerEvents(web_contents(), url,
289 kTestPackageName);
290 EXPECT_TRUE(events.empty());
291
292 base::Time reference_time = GetReferenceTime();
293 base::Time same_day_ignored_i =
294 reference_time + base::TimeDelta::FromMinutes(10);
295 base::Time same_day_counted_i =
296 reference_time + base::TimeDelta::FromMinutes(20);
297 base::Time same_day_counted_ii =
298 reference_time + base::TimeDelta::FromMinutes(45);
299 base::Time same_day_ignored_ii =
300 reference_time + base::TimeDelta::FromMinutes(59);
301
302 // Add the reference date.
303 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
304 web_contents(), url, kTestPackageName, reference_time,
305 ui::PAGE_TRANSITION_LINK);
306
307 // There should be one event recorded
308 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
309 web_contents(), url, kTestPackageName);
310 EXPECT_EQ(1u, events.size());
311 EXPECT_TRUE(IsWithinDay(events[0].time, reference_time));
312 EXPECT_EQ(events[0].engagement, 1);
313
314 // Now add the the ignored date on the reference day.
315 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
316 web_contents(), url, kTestPackageName, same_day_ignored_i,
317 ui::PAGE_TRANSITION_RELOAD);
318
319 // Now there should still one event.
320 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
321 web_contents(), url, kTestPackageName);
322 EXPECT_EQ(1u, events.size());
323 EXPECT_TRUE(IsWithinDay(events[0].time, reference_time));
324 EXPECT_EQ(events[0].engagement, 1);
325
326 // Now add the the first counted date on the reference day.
327 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
328 web_contents(), url, kTestPackageName, same_day_counted_i,
329 ui::PAGE_TRANSITION_TYPED);
330
331 // Now there should be two events.
332 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
333 web_contents(), url, kTestPackageName);
334 EXPECT_EQ(2u, events.size());
335 EXPECT_TRUE(IsWithinDay(events[0].time, reference_time));
336 EXPECT_TRUE(IsWithinDay(events[1].time, same_day_counted_i));
337 EXPECT_EQ(events[0].engagement, 1);
338 EXPECT_EQ(events[1].engagement, 1);
339
340 // Now add the the second counted date on the reference day.
341 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
342 web_contents(), url, kTestPackageName, same_day_counted_ii,
343 ui::PAGE_TRANSITION_GENERATED);
344
345 // Now there should be three events.
346 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
347 web_contents(), url, kTestPackageName);
348 EXPECT_EQ(3u, events.size());
349 EXPECT_TRUE(IsWithinDay(events[0].time, reference_time));
350 EXPECT_TRUE(IsWithinDay(events[1].time, same_day_counted_i));
351 EXPECT_TRUE(IsWithinDay(events[2].time, same_day_counted_ii));
352 EXPECT_EQ(events[0].engagement, 1);
353 EXPECT_EQ(events[1].engagement, 1);
354 EXPECT_EQ(events[2].engagement, 1);
355
356 // Now add the the second ignored date on the reference day.
357 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
358 web_contents(), url, kTestPackageName, same_day_ignored_ii,
359 ui::PAGE_TRANSITION_LINK);
360
361 // Now there should still be three events.
362 events = AppBannerSettingsHelper::GetCouldShowBannerEvents(
363 web_contents(), url, kTestPackageName);
364 EXPECT_EQ(3u, events.size());
365 EXPECT_TRUE(IsWithinDay(events[0].time, reference_time));
366 EXPECT_TRUE(IsWithinDay(events[1].time, same_day_counted_i));
367 EXPECT_TRUE(IsWithinDay(events[2].time, same_day_counted_ii));
368 EXPECT_EQ(events[0].engagement, 1);
369 EXPECT_EQ(events[1].engagement, 1);
370 EXPECT_EQ(events[2].engagement, 1);
371 }
372
118 TEST_F(AppBannerSettingsHelperTest, SingleEvents) { 373 TEST_F(AppBannerSettingsHelperTest, SingleEvents) {
119 AppBannerSettingsHelper::SetEngagementWeights(1, 1); 374 AppBannerSettingsHelper::SetEngagementWeights(1, 1);
375 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(1440);
120 GURL url(kTestURL); 376 GURL url(kTestURL);
121 NavigateAndCommit(url); 377 NavigateAndCommit(url);
122 378
123 base::Time reference_time = GetReferenceTime(); 379 base::Time reference_time = GetReferenceTime();
124 base::Time other_time = reference_time - base::TimeDelta::FromDays(3); 380 base::Time other_time = reference_time - base::TimeDelta::FromDays(3);
125 for (int event = AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW; 381 for (int event = AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW;
126 event < AppBannerSettingsHelper::APP_BANNER_EVENT_NUM_EVENTS; ++event) { 382 event < AppBannerSettingsHelper::APP_BANNER_EVENT_NUM_EVENTS; ++event) {
127 // Check that by default, there is no event. 383 // Check that by default, there is no event.
128 base::Time event_time = AppBannerSettingsHelper::GetSingleBannerEvent( 384 base::Time event_time = AppBannerSettingsHelper::GetSingleBannerEvent(
129 web_contents(), url, kTestPackageName, 385 web_contents(), url, kTestPackageName,
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 488
233 EXPECT_EQ(2u, events.size()); 489 EXPECT_EQ(2u, events.size());
234 EXPECT_TRUE(IsWithinHour(events[0].time, later_same_day)); 490 EXPECT_TRUE(IsWithinHour(events[0].time, later_same_day));
235 EXPECT_EQ(4, events[0].engagement); 491 EXPECT_EQ(4, events[0].engagement);
236 EXPECT_TRUE(IsWithinHour(events[1].time, later_next_day)); 492 EXPECT_TRUE(IsWithinHour(events[1].time, later_next_day));
237 EXPECT_EQ(4, events[1].engagement); 493 EXPECT_EQ(4, events[1].engagement);
238 } 494 }
239 495
240 TEST_F(AppBannerSettingsHelperTest, IndirectEngagementWithLowerWeight) { 496 TEST_F(AppBannerSettingsHelperTest, IndirectEngagementWithLowerWeight) {
241 AppBannerSettingsHelper::SetEngagementWeights(2, 0.5); 497 AppBannerSettingsHelper::SetEngagementWeights(2, 0.5);
498 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(1440);
242 GURL url(kTestURL); 499 GURL url(kTestURL);
243 NavigateAndCommit(url); 500 NavigateAndCommit(url);
244 501
245 base::Time reference_time = GetReferenceTime(); 502 base::Time reference_time = GetReferenceTime();
246 base::Time second_day = reference_time + base::TimeDelta::FromDays(1); 503 base::Time second_day = reference_time + base::TimeDelta::FromDays(1);
247 base::Time third_day = reference_time + base::TimeDelta::FromDays(2); 504 base::Time third_day = reference_time + base::TimeDelta::FromDays(2);
248 base::Time fourth_day = reference_time + base::TimeDelta::FromDays(3); 505 base::Time fourth_day = reference_time + base::TimeDelta::FromDays(3);
249 506
250 // By default the banner should not be shown. 507 // By default the banner should not be shown.
251 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( 508 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner(
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 // It should take one direct visit with a weight of 2 to trigger the banner. 550 // It should take one direct visit with a weight of 2 to trigger the banner.
294 AppBannerSettingsHelper::RecordBannerCouldShowEvent( 551 AppBannerSettingsHelper::RecordBannerCouldShowEvent(
295 web_contents(), url, kTestPackageName, reference_time, 552 web_contents(), url, kTestPackageName, reference_time,
296 ui::PAGE_TRANSITION_TYPED); 553 ui::PAGE_TRANSITION_TYPED);
297 EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( 554 EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner(
298 web_contents(), url, kTestPackageName, reference_time)); 555 web_contents(), url, kTestPackageName, reference_time));
299 } 556 }
300 557
301 TEST_F(AppBannerSettingsHelperTest, ShouldShowFromEngagement) { 558 TEST_F(AppBannerSettingsHelperTest, ShouldShowFromEngagement) {
302 AppBannerSettingsHelper::SetEngagementWeights(1, 1); 559 AppBannerSettingsHelper::SetEngagementWeights(1, 1);
560 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(1440);
303 GURL url(kTestURL); 561 GURL url(kTestURL);
304 NavigateAndCommit(url); 562 NavigateAndCommit(url);
305 563
306 base::Time reference_time = GetReferenceTime(); 564 base::Time reference_time = GetReferenceTime();
307 base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1); 565 base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1);
308 base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); 566 base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366);
309 567
310 // By default the banner should not be shown. 568 // By default the banner should not be shown.
311 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( 569 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner(
312 web_contents(), url, kTestPackageName, reference_time)); 570 web_contents(), url, kTestPackageName, reference_time));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 // Block the site more recently. Now it should not be shown. 625 // Block the site more recently. Now it should not be shown.
368 AppBannerSettingsHelper::RecordBannerEvent( 626 AppBannerSettingsHelper::RecordBannerEvent(
369 web_contents(), url, kTestPackageName, 627 web_contents(), url, kTestPackageName,
370 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, two_months_ago); 628 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, two_months_ago);
371 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( 629 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner(
372 web_contents(), url, kTestPackageName, reference_time)); 630 web_contents(), url, kTestPackageName, reference_time));
373 } 631 }
374 632
375 TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterShowing) { 633 TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterShowing) {
376 AppBannerSettingsHelper::SetEngagementWeights(1, 1); 634 AppBannerSettingsHelper::SetEngagementWeights(1, 1);
635 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(1440);
377 GURL url(kTestURL); 636 GURL url(kTestURL);
378 NavigateAndCommit(url); 637 NavigateAndCommit(url);
379 638
380 base::Time reference_time = GetReferenceTime(); 639 base::Time reference_time = GetReferenceTime();
381 base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1); 640 base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1);
382 base::Time three_weeks_ago = reference_time - base::TimeDelta::FromDays(21); 641 base::Time three_weeks_ago = reference_time - base::TimeDelta::FromDays(21);
383 base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); 642 base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366);
384 643
385 // By default the banner should not be shown. 644 // By default the banner should not be shown.
386 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( 645 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner(
(...skipping 19 matching lines...) Expand all
406 // Show the site more recently. Now it should not be shown. 665 // Show the site more recently. Now it should not be shown.
407 AppBannerSettingsHelper::RecordBannerEvent( 666 AppBannerSettingsHelper::RecordBannerEvent(
408 web_contents(), url, kTestPackageName, 667 web_contents(), url, kTestPackageName,
409 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, three_weeks_ago); 668 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, three_weeks_ago);
410 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( 669 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner(
411 web_contents(), url, kTestPackageName, reference_time)); 670 web_contents(), url, kTestPackageName, reference_time));
412 } 671 }
413 672
414 TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterAdding) { 673 TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterAdding) {
415 AppBannerSettingsHelper::SetEngagementWeights(1, 1); 674 AppBannerSettingsHelper::SetEngagementWeights(1, 1);
675 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(1440);
416 GURL url(kTestURL); 676 GURL url(kTestURL);
417 NavigateAndCommit(url); 677 NavigateAndCommit(url);
418 678
419 base::Time reference_time = GetReferenceTime(); 679 base::Time reference_time = GetReferenceTime();
420 base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1); 680 base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1);
421 base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); 681 base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366);
422 682
423 // By default the banner should not be shown. 683 // By default the banner should not be shown.
424 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( 684 EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner(
425 web_contents(), url, kTestPackageName, reference_time)); 685 web_contents(), url, kTestPackageName, reference_time));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 ui::PAGE_TRANSITION_TYPED); 724 ui::PAGE_TRANSITION_TYPED);
465 725
466 // Navigate to another page on the same origin. 726 // Navigate to another page on the same origin.
467 url = GURL(kSameOriginTestURL); 727 url = GURL(kSameOriginTestURL);
468 NavigateAndCommit(url); 728 NavigateAndCommit(url);
469 729
470 // The banner should show as settings are per-origin. 730 // The banner should show as settings are per-origin.
471 EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( 731 EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner(
472 web_contents(), url, kTestPackageName, reference_time)); 732 web_contents(), url, kTestPackageName, reference_time));
473 } 733 }
OLDNEW
« no previous file with comments | « chrome/browser/banners/app_banner_settings_helper.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698