1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/instant/promo_counter.h"
6 #include "chrome/test/testing_profile.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 typedef testing::Test PromoCounterTest;
10
11 // Makes sure ShouldShow returns false after the max number of days.
TEST_F(PromoCounterTest,MaxTimeElapsed)12 TEST_F(PromoCounterTest, MaxTimeElapsed) {
13 TestingProfile profile;
14 PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test");
15
16 base::Time test_time(base::Time::Now());
17 PromoCounter counter(&profile, "test", "test", 2, 2);
18 ASSERT_TRUE(counter.ShouldShow(test_time));
19 ASSERT_TRUE(counter.ShouldShow(test_time + base::TimeDelta::FromHours(2)));
20 ASSERT_FALSE(counter.ShouldShow(test_time + base::TimeDelta::FromDays(4)));
21 }
22
23 // Makes sure ShouldShow returns false after max number of sessions encountered.
TEST_F(PromoCounterTest,MaxSessionsLapsed)24 TEST_F(PromoCounterTest, MaxSessionsLapsed) {
25 TestingProfile profile;
26 PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test");
27
28 base::Time test_time(base::Time::Now());
29 {
30 PromoCounter counter(&profile, "test", "test", 2, 2);
31 ASSERT_TRUE(counter.ShouldShow(test_time));
32 }
33
34 {
35 PromoCounter counter(&profile, "test", "test", 2, 2);
36 ASSERT_TRUE(counter.ShouldShow(test_time));
37 }
38
39 {
40 PromoCounter counter(&profile, "test", "test", 2, 2);
41 ASSERT_FALSE(counter.ShouldShow(test_time));
42 }
43 }
44
45 // Makes sure invoking Hide make ShouldShow return false.
TEST_F(PromoCounterTest,Hide)46 TEST_F(PromoCounterTest, Hide) {
47 TestingProfile profile;
48 PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test");
49
50 base::Time test_time(base::Time::Now());
51 {
52 PromoCounter counter(&profile, "test", "test", 2, 2);
53 counter.Hide();
54 ASSERT_FALSE(counter.ShouldShow(test_time));
55 }
56
57 // Recreate to make sure pref was correctly written.
58 {
59 PromoCounter counter(&profile, "test", "test", 2, 2);
60 ASSERT_FALSE(counter.ShouldShow(test_time));
61 }
62 }
63
64 // Same as Hide, but invokes ShouldShow first.
TEST_F(PromoCounterTest,Hide2)65 TEST_F(PromoCounterTest, Hide2) {
66 TestingProfile profile;
67 PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test");
68
69 base::Time test_time(base::Time::Now());
70 {
71 PromoCounter counter(&profile, "test", "test", 2, 2);
72 ASSERT_TRUE(counter.ShouldShow(test_time));
73 counter.Hide();
74 ASSERT_FALSE(counter.ShouldShow(test_time));
75 }
76
77 {
78 PromoCounter counter(&profile, "test", "test", 2, 2);
79 ASSERT_FALSE(counter.ShouldShow(test_time));
80 }
81 }
82