14a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file. 44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 54a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/browser/instant/promo_counter.h" 64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/test/testing_profile.h" 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "testing/gtest/include/gtest/gtest.h" 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtypedef testing::Test PromoCounterTest; 104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Makes sure ShouldShow returns false after the max number of days. 124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochTEST_F(PromoCounterTest, MaxTimeElapsed) { 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TestingProfile profile; 144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test"); 154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch base::Time test_time(base::Time::Now()); 174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_TRUE(counter.ShouldShow(test_time)); 194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_TRUE(counter.ShouldShow(test_time + base::TimeDelta::FromHours(2))); 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_FALSE(counter.ShouldShow(test_time + base::TimeDelta::FromDays(4))); 214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch} 224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Makes sure ShouldShow returns false after max number of sessions encountered. 244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochTEST_F(PromoCounterTest, MaxSessionsLapsed) { 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TestingProfile profile; 264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test"); 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch base::Time test_time(base::Time::Now()); 294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_TRUE(counter.ShouldShow(test_time)); 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_TRUE(counter.ShouldShow(test_time)); 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_FALSE(counter.ShouldShow(test_time)); 424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch} 444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Makes sure invoking Hide make ShouldShow return false. 464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochTEST_F(PromoCounterTest, Hide) { 474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TestingProfile profile; 484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test"); 494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch base::Time test_time(base::Time::Now()); 514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch counter.Hide(); 544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_FALSE(counter.ShouldShow(test_time)); 554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 564a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 574a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Recreate to make sure pref was correctly written. 584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_FALSE(counter.ShouldShow(test_time)); 614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 624a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch} 634a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 644a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Same as Hide, but invokes ShouldShow first. 654a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben MurdochTEST_F(PromoCounterTest, Hide2) { 664a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TestingProfile profile; 674a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter::RegisterUserPrefs(profile.GetPrefs(), "test"); 684a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 694a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch base::Time test_time(base::Time::Now()); 704a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 714a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 724a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_TRUE(counter.ShouldShow(test_time)); 734a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch counter.Hide(); 744a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_FALSE(counter.ShouldShow(test_time)); 754a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 764a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 774a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { 784a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch PromoCounter counter(&profile, "test", "test", 2, 2); 794a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ASSERT_FALSE(counter.ShouldShow(test_time)); 804a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 814a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch} 82