• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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