Chromium Code Reviews| Index: chrome/browser/web_resource/promo_resource_service_unittest.cc |
| =================================================================== |
| --- chrome/browser/web_resource/promo_resource_service_unittest.cc (revision 140104) |
| +++ chrome/browser/web_resource/promo_resource_service_unittest.cc (working copy) |
| @@ -117,15 +117,13 @@ |
| EXPECT_EQ(logo_end, 0); // date value reset to 0; |
| } |
| -class NotificationPromoTestDelegate : public NotificationPromo::Delegate { |
| +class NotificationPromoTest { |
| public: |
| - explicit NotificationPromoTestDelegate(Profile* profile) |
| + explicit NotificationPromoTest(Profile* profile) |
| : profile_(profile), |
| prefs_(profile->GetPrefs()), |
| - notification_promo_(NULL), |
| + notification_promo_(profile), |
| received_notification_(false), |
| - should_receive_notification_(false), |
| - build_targeted_(true), |
| start_(0.0), |
| end_(0.0), |
| num_groups_(0), |
| @@ -135,21 +133,15 @@ |
| max_group_(0), |
| max_views_(0), |
| closed_(false), |
| - build_(PromoResourceService::NO_BUILD), |
| - platform_(NotificationPromo::PLATFORM_NONE), |
| - current_platform_(NotificationPromo::CurrentPlatform()), |
| gplus_required_(false) { |
| } |
| - void Init(NotificationPromo* notification_promo, |
| - const std::string& json, |
| + void Init(const std::string& json, |
| const std::string& promo_text, |
| double start, double end, |
| int num_groups, int initial_segment, int increment, |
| int time_slice, int max_group, int max_views, |
| - int build, int platform, bool gplus_required) { |
| - notification_promo_ = notification_promo; |
| - |
| + bool gplus_required) { |
| Value* value(base::JSONReader::Read(json)); |
| ASSERT_TRUE(value); |
| DictionaryValue* dict = NULL; |
| @@ -170,45 +162,17 @@ |
| max_views_ = max_views; |
| - build_ = build; |
| - platform_ = platform; |
| - |
| gplus_required_ = gplus_required; |
| closed_ = false; |
| received_notification_ = false; |
| } |
| - // NotificationPromo::Delegate implementation. |
| - virtual void OnNotificationParsed(double start, double end, |
| - bool new_notification) { |
| - if (should_receive_notification_) { |
| - EXPECT_EQ(notification_promo_->StartTimeForGroup(), start); |
| - EXPECT_EQ(notification_promo_->end_, end); |
| - } |
| + void InitPromoFromJson(bool should_receive_notification) { |
| + notification_promo_.InitFromJson(*test_json_); |
| + EXPECT_EQ(should_receive_notification, |
| + notification_promo_.new_notification()); |
| - received_notification_ = new_notification; |
| - EXPECT_TRUE(received_notification_ == should_receive_notification_); |
| - } |
| - |
| - virtual bool IsBuildAllowed(int builds_targeted) const { |
| - EXPECT_EQ(builds_targeted, build_); |
| - return build_targeted_; |
| - } |
| - |
| - virtual int CurrentPlatform() const { |
| - return current_platform_; |
| - } |
| - |
| - void InitPromoFromJson(bool should_receive_notification, bool legacy) { |
| - should_receive_notification_ = should_receive_notification; |
| - received_notification_ = false; |
| - if (legacy) |
| - notification_promo_->InitFromJsonLegacy(*test_json_); |
| - else |
| - notification_promo_->InitFromJson(*test_json_); |
| - EXPECT_TRUE(received_notification_ == should_receive_notification); |
| - |
| // Test the fields. |
| TestNotification(); |
| TestPrefs(); |
| @@ -216,31 +180,28 @@ |
| void TestNotification() { |
| // Check values. |
| - EXPECT_EQ(notification_promo_->promo_text_, promo_text_); |
| + EXPECT_EQ(notification_promo_.promo_text_, promo_text_); |
| - EXPECT_EQ(notification_promo_->start_, start_); |
| - EXPECT_EQ(notification_promo_->end_, end_); |
| + EXPECT_EQ(notification_promo_.start_, start_); |
| + EXPECT_EQ(notification_promo_.end_, end_); |
| - EXPECT_EQ(notification_promo_->num_groups_, num_groups_); |
| - EXPECT_EQ(notification_promo_->initial_segment_, initial_segment_); |
| - EXPECT_EQ(notification_promo_->increment_, increment_); |
| - EXPECT_EQ(notification_promo_->time_slice_, time_slice_); |
| - EXPECT_EQ(notification_promo_->max_group_, max_group_); |
| + EXPECT_EQ(notification_promo_.num_groups_, num_groups_); |
| + EXPECT_EQ(notification_promo_.initial_segment_, initial_segment_); |
| + EXPECT_EQ(notification_promo_.increment_, increment_); |
| + EXPECT_EQ(notification_promo_.time_slice_, time_slice_); |
| + EXPECT_EQ(notification_promo_.max_group_, max_group_); |
| - EXPECT_EQ(notification_promo_->max_views_, max_views_); |
| - EXPECT_EQ(notification_promo_->closed_, closed_); |
| + EXPECT_EQ(notification_promo_.max_views_, max_views_); |
| + EXPECT_EQ(notification_promo_.closed_, closed_); |
| // Check group within bounds. |
| - EXPECT_GE(notification_promo_->group_, 0); |
| - EXPECT_LT(notification_promo_->group_, num_groups_); |
| + EXPECT_GE(notification_promo_.group_, 0); |
| + EXPECT_LT(notification_promo_.group_, num_groups_); |
| // Views should be 0 for now. |
| - EXPECT_EQ(notification_promo_->views_, 0); |
| + EXPECT_EQ(notification_promo_.views_, 0); |
| - EXPECT_EQ(notification_promo_->build_, build_); |
| - EXPECT_EQ(notification_promo_->platform_, platform_); |
| - |
| - EXPECT_EQ(notification_promo_->gplus_required_, gplus_required_); |
| + EXPECT_EQ(notification_promo_.gplus_required_, gplus_required_); |
| } |
| void TestPrefs() { |
| @@ -260,323 +221,186 @@ |
| EXPECT_EQ(prefs_->GetBoolean(prefs::kNtpPromoClosed), closed_); |
| EXPECT_EQ(prefs_->GetInteger(prefs::kNtpPromoGroup), |
| - notification_promo_ ? notification_promo_->group_: 0); |
| + notification_promo_.group_); |
| EXPECT_EQ(prefs_->GetInteger(prefs::kNtpPromoViews), 0); |
| - EXPECT_EQ(prefs_->GetInteger(prefs::kNtpPromoBuild), build_); |
| - EXPECT_EQ(prefs_->GetInteger(prefs::kNtpPromoPlatform), platform_); |
| - |
| EXPECT_EQ(prefs_->GetBoolean(prefs::kNtpPromoGplusRequired), |
| - gplus_required_); |
| + gplus_required_); |
| } |
| // Create a new NotificationPromo from prefs and compare to current |
| // notification. |
| void TestInitFromPrefs() { |
| - scoped_refptr<NotificationPromo> prefs_notification_promo = |
| - NotificationPromo::Create(profile_, this); |
| - prefs_notification_promo->InitFromPrefs(); |
| + NotificationPromo prefs_notification_promo(profile_); |
| + prefs_notification_promo.InitFromPrefs(); |
| - EXPECT_EQ(notification_promo_->prefs_, |
| - prefs_notification_promo->prefs_); |
| - EXPECT_EQ(notification_promo_->delegate_, |
| - prefs_notification_promo->delegate_); |
| - EXPECT_EQ(notification_promo_->promo_text_, |
| - prefs_notification_promo->promo_text_); |
| - EXPECT_EQ(notification_promo_->start_, |
| - prefs_notification_promo->start_); |
| - EXPECT_EQ(notification_promo_->end_, |
| - prefs_notification_promo->end_); |
| - EXPECT_EQ(notification_promo_->num_groups_, |
| - prefs_notification_promo->num_groups_); |
| - EXPECT_EQ(notification_promo_->initial_segment_, |
| - prefs_notification_promo->initial_segment_); |
| - EXPECT_EQ(notification_promo_->increment_, |
| - prefs_notification_promo->increment_); |
| - EXPECT_EQ(notification_promo_->time_slice_, |
| - prefs_notification_promo->time_slice_); |
| - EXPECT_EQ(notification_promo_->max_group_, |
| - prefs_notification_promo->max_group_); |
| - EXPECT_EQ(notification_promo_->max_views_, |
| - prefs_notification_promo->max_views_); |
| - EXPECT_EQ(notification_promo_->group_, |
| - prefs_notification_promo->group_); |
| - EXPECT_EQ(notification_promo_->views_, |
| - prefs_notification_promo->views_); |
| - EXPECT_EQ(notification_promo_->closed_, |
| - prefs_notification_promo->closed_); |
| - EXPECT_EQ(notification_promo_->build_, |
| - prefs_notification_promo->build_); |
| - EXPECT_EQ(notification_promo_->platform_, |
| - prefs_notification_promo->platform_); |
| - EXPECT_EQ(notification_promo_->gplus_required_, |
| - prefs_notification_promo->gplus_required_); |
| + EXPECT_EQ(notification_promo_.prefs_, |
| + prefs_notification_promo.prefs_); |
| + EXPECT_EQ(notification_promo_.promo_text_, |
| + prefs_notification_promo.promo_text_); |
| + EXPECT_EQ(notification_promo_.start_, |
| + prefs_notification_promo.start_); |
| + EXPECT_EQ(notification_promo_.end_, |
| + prefs_notification_promo.end_); |
| + EXPECT_EQ(notification_promo_.num_groups_, |
| + prefs_notification_promo.num_groups_); |
| + EXPECT_EQ(notification_promo_.initial_segment_, |
| + prefs_notification_promo.initial_segment_); |
| + EXPECT_EQ(notification_promo_.increment_, |
| + prefs_notification_promo.increment_); |
| + EXPECT_EQ(notification_promo_.time_slice_, |
| + prefs_notification_promo.time_slice_); |
| + EXPECT_EQ(notification_promo_.max_group_, |
| + prefs_notification_promo.max_group_); |
| + EXPECT_EQ(notification_promo_.max_views_, |
| + prefs_notification_promo.max_views_); |
| + EXPECT_EQ(notification_promo_.group_, |
| + prefs_notification_promo.group_); |
| + EXPECT_EQ(notification_promo_.views_, |
| + prefs_notification_promo.views_); |
| + EXPECT_EQ(notification_promo_.closed_, |
| + prefs_notification_promo.closed_); |
| + EXPECT_EQ(notification_promo_.gplus_required_, |
| + prefs_notification_promo.gplus_required_); |
| } |
| void TestGroup() { |
| // Test out of range groups. |
| const int incr = num_groups_ / 20; |
| for (int i = max_group_; i < num_groups_; i += incr) { |
| - notification_promo_->group_ = i; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.group_ = i; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| } |
| // Test in-range groups. |
| for (int i = 0; i < max_group_; i += incr) { |
| - notification_promo_->group_ = i; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.group_ = i; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| } |
| void TestViews() { |
| // Test out of range views. |
| for (int i = max_views_; i < max_views_ * 2; ++i) { |
| - notification_promo_->views_ = i; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.views_ = i; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| } |
| // Test in range views. |
| for (int i = 0; i < max_views_; ++i) { |
| - notification_promo_->views_ = i; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.views_ = i; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| } |
| - void TestBuild() { |
| - build_targeted_ = false; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| - |
| - build_targeted_ = true; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - } |
| - |
| - void TestOnePlatform(int current_platform, bool expected) { |
|
Dan Beam
2012/06/04 18:20:08
so you've removed all these because this is done o
achuithb
2012/06/04 19:52:59
The build/platform checks are now done for notific
|
| - current_platform_ = current_platform; |
| - EXPECT_EQ(expected, notification_promo_->CanShow()); |
| - } |
| - |
| - void TestPlatformSet(int target_platform, bool expected_win, |
| - bool expected_mac, bool expected_linux, bool expected_chromeos) { |
| - notification_promo_->platform_ = target_platform; |
| - TestOnePlatform(NotificationPromo::PLATFORM_WIN, expected_win); |
| - TestOnePlatform(NotificationPromo::PLATFORM_MAC, expected_mac); |
| - TestOnePlatform(NotificationPromo::PLATFORM_LINUX, expected_linux); |
| - TestOnePlatform(NotificationPromo::PLATFORM_CHROMEOS, expected_chromeos); |
| - } |
| - |
| - void TestPlatforms() { |
| - int target_platform; |
| - |
| - // Windows and Mac only - test real current platform. |
| - target_platform = 3; |
| - notification_promo_->platform_ = target_platform; |
| - bool expected = false; |
| -#if defined(OS_WIN) || defined(OS_MACOSX) |
| - expected = true; |
| -#endif |
| - EXPECT_EQ(expected, notification_promo_->CanShow()); |
| - |
| - // Windows only. |
| - target_platform = 1; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_WIN); |
| - TestPlatformSet(target_platform, true, false, false, false); |
| - |
| - // Mac only. |
| - target_platform = 2; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_MAC); |
| - TestPlatformSet(target_platform, false, true, false, false); |
| - |
| - // Linux only. |
| - target_platform = 4; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_LINUX); |
| - TestPlatformSet(target_platform, false, false, true, false); |
| - |
| - // ChromeOS only. |
| - target_platform = 8; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_CHROMEOS); |
| - TestPlatformSet(target_platform, false, false, false, true); |
| - |
| - // Non-Windows. |
| - target_platform = 14; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_ALL |
| - & ~NotificationPromo::PLATFORM_WIN); |
| - TestPlatformSet(target_platform, false, true, true, true); |
| - |
| - // Non-Mac. |
| - target_platform = 13; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_ALL |
| - & ~NotificationPromo::PLATFORM_MAC); |
| - TestPlatformSet(target_platform, true, false, true, true); |
| - |
| - // Non-Linux. |
| - target_platform = 11; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_ALL |
| - & ~NotificationPromo::PLATFORM_LINUX); |
| - TestPlatformSet(target_platform, true, true, false, true); |
| - |
| - // Non-ChromeOS. |
| - target_platform = 7; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_ALL |
| - & ~NotificationPromo::PLATFORM_CHROMEOS); |
| - TestPlatformSet(target_platform, true, true, true, false); |
| - |
| - // Windows and Mac. |
| - target_platform = 3; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_WIN |
| - | NotificationPromo::PLATFORM_MAC); |
| - TestPlatformSet(target_platform, true, true, false, false); |
| - |
| - // Windows and Linux. |
| - target_platform = 5; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_WIN |
| - | NotificationPromo::PLATFORM_LINUX); |
| - TestPlatformSet(target_platform, true, false, true, false); |
| - |
| - // Windows and ChromeOS. |
| - target_platform = 9; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_WIN |
| - | NotificationPromo::PLATFORM_CHROMEOS); |
| - TestPlatformSet(target_platform, true, false, false, true); |
| - |
| - // Mac and Linux. |
| - target_platform = 6; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_MAC |
| - | NotificationPromo::PLATFORM_LINUX); |
| - TestPlatformSet(target_platform, false, true, true, false); |
| - |
| - // Mac and ChromeOS. |
| - target_platform = 10; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_MAC |
| - | NotificationPromo::PLATFORM_CHROMEOS); |
| - TestPlatformSet(target_platform, false, true, false, true); |
| - |
| - // Linux and ChromeOS. |
| - target_platform = 12; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_LINUX |
| - | NotificationPromo::PLATFORM_CHROMEOS); |
| - TestPlatformSet(target_platform, false, false, true, true); |
| - |
| - // Disabled. |
| - target_platform = 0; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_NONE); |
| - TestPlatformSet(target_platform, false, false, false, false); |
| - |
| - // All platforms. |
| - target_platform = 15; |
| - EXPECT_EQ(target_platform, NotificationPromo::PLATFORM_ALL); |
| - TestPlatformSet(target_platform, true, true, true, true); |
| - } |
| - |
| void TestClosed() { |
| - notification_promo_->closed_ = true; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.closed_ = true; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| - notification_promo_->closed_ = false; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.closed_ = false; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| void TestPromoText() { |
| - notification_promo_->promo_text_.clear(); |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.promo_text_.clear(); |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| - notification_promo_->promo_text_ = promo_text_; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.promo_text_ = promo_text_; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| void TestTime() { |
| const double now = base::Time::Now().ToDoubleT(); |
| const double qhour = 15 * 60; |
| - notification_promo_->group_ = 0; // For simplicity. |
| + notification_promo_.group_ = 0; // For simplicity. |
| - notification_promo_->start_ = now - qhour; |
| - notification_promo_->end_ = now + qhour; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.start_ = now - qhour; |
| + notification_promo_.end_ = now + qhour; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| // Start time has not arrived. |
| - notification_promo_->start_ = now + qhour; |
| - notification_promo_->end_ = now + qhour; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.start_ = now + qhour; |
| + notification_promo_.end_ = now + qhour; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| // End time has past. |
| - notification_promo_->start_ = now - qhour; |
| - notification_promo_->end_ = now - qhour; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.start_ = now - qhour; |
| + notification_promo_.end_ = now - qhour; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| - notification_promo_->start_ = start_; |
| - notification_promo_->end_ = end_; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.start_ = start_; |
| + notification_promo_.end_ = end_; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| void TestIncrement() { |
| const double now = base::Time::Now().ToDoubleT(); |
| const double slice = 60; |
| - notification_promo_->num_groups_ = 18; |
| - notification_promo_->initial_segment_ = 5; |
| - notification_promo_->increment_ = 3; |
| - notification_promo_->time_slice_ = slice; |
| + notification_promo_.num_groups_ = 18; |
| + notification_promo_.initial_segment_ = 5; |
| + notification_promo_.increment_ = 3; |
| + notification_promo_.time_slice_ = slice; |
| - notification_promo_->start_ = now - 1; |
| - notification_promo_->end_ = now + slice; |
| + notification_promo_.start_ = now - 1; |
| + notification_promo_.end_ = now + slice; |
| // Test initial segment. |
| - notification_promo_->group_ = 4; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - notification_promo_->group_ = 5; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.group_ = 4; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| + notification_promo_.group_ = 5; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| // Test first increment. |
| - notification_promo_->start_ -= slice; |
| - notification_promo_->group_ = 7; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - notification_promo_->group_ = 8; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.start_ -= slice; |
| + notification_promo_.group_ = 7; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| + notification_promo_.group_ = 8; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| // Test second increment. |
| - notification_promo_->start_ -= slice; |
| - notification_promo_->group_ = 10; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - notification_promo_->group_ = 11; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.start_ -= slice; |
| + notification_promo_.group_ = 10; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| + notification_promo_.group_ = 11; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| // Test penultimate increment. |
| - notification_promo_->start_ -= 2 * slice; |
| - notification_promo_->group_ = 16; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - notification_promo_->group_ = 17; |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.start_ -= 2 * slice; |
| + notification_promo_.group_ = 16; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| + notification_promo_.group_ = 17; |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| // Test last increment. |
| - notification_promo_->start_ -= slice; |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.start_ -= slice; |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| void TestGplus() { |
| - notification_promo_->gplus_required_ = true; |
| + notification_promo_.gplus_required_ = true; |
| // Test G+ required. |
| - notification_promo_->prefs_->SetBoolean(prefs::kIsGooglePlusUser, true); |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - notification_promo_->prefs_->SetBoolean(prefs::kIsGooglePlusUser, false); |
| - EXPECT_FALSE(notification_promo_->CanShow()); |
| + notification_promo_.prefs_->SetBoolean(prefs::kIsGooglePlusUser, true); |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| + notification_promo_.prefs_->SetBoolean(prefs::kIsGooglePlusUser, false); |
| + EXPECT_FALSE(notification_promo_.CanShow()); |
| - notification_promo_->gplus_required_ = false; |
| + notification_promo_.gplus_required_ = false; |
| // Test G+ not required. |
| - notification_promo_->prefs_->SetBoolean(prefs::kIsGooglePlusUser, true); |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| - notification_promo_->prefs_->SetBoolean(prefs::kIsGooglePlusUser, false); |
| - EXPECT_TRUE(notification_promo_->CanShow()); |
| + notification_promo_.prefs_->SetBoolean(prefs::kIsGooglePlusUser, true); |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| + notification_promo_.prefs_->SetBoolean(prefs::kIsGooglePlusUser, false); |
| + EXPECT_TRUE(notification_promo_.CanShow()); |
| } |
| private: |
| Profile* profile_; |
| PrefService* prefs_; |
| - NotificationPromo* notification_promo_; |
| + NotificationPromo notification_promo_; |
| bool received_notification_; |
| - bool should_receive_notification_; |
| - bool build_targeted_; |
| scoped_ptr<DictionaryValue> test_json_; |
| std::string promo_text_; |
| @@ -594,198 +418,76 @@ |
| bool closed_; |
| - int build_; |
| - int platform_; |
| - int current_platform_; |
| - |
| bool gplus_required_; |
| }; |
| -TEST_F(PromoResourceServiceTest, NotificationPromoTestLegacy) { |
| - // Check that prefs are set correctly. |
| - PrefService* prefs = profile_.GetPrefs(); |
| - ASSERT_TRUE(prefs != NULL); |
| - |
| - NotificationPromoTestDelegate delegate(&profile_); |
| - scoped_refptr<NotificationPromo> notification_promo = |
| - NotificationPromo::Create(&profile_, &delegate); |
| - |
| - // Make sure prefs are unset. |
| - delegate.TestPrefs(); |
| - |
| - // Set up start and end dates and promo line in a Dictionary as if parsed |
| - // from the service. |
| - delegate.Init(notification_promo, |
| - "{ " |
| - " \"topic\": {" |
| - " \"answers\": [" |
| - " {" |
| - " \"name\": \"promo_start\"," |
| - " \"question\": \"3:2:5:10:15:0\"," |
| - " \"tooltip\": \"Eat more pie!\"," |
| - " \"inproduct\": \"31/01/10 01:00 GMT\"" |
| - " }," |
| - " {" |
| - " \"name\": \"promo_end\"," |
| - " \"inproduct\": \"31/01/14 01:00 GMT\"" |
| - " }" |
| - " ]" |
| - " }" |
| - "}", |
| - "Eat more pie!", |
| - 1264899600, // unix epoch for Jan 31 2010 0100 GMT. |
| - 1391130000, // unix epoch for Jan 31 2012 0100 GMT. |
| - 100, 0, 1, 2, 5, 10, 3, 15, false); |
| - |
| - delegate.InitPromoFromJson(true, true); |
| - |
| - // Second time should not trigger a notification. |
| - delegate.InitPromoFromJson(false, true); |
| - |
| - delegate.TestInitFromPrefs(); |
| - |
| - // Test various conditions of CanShow. |
| - // TestGroup Has the side effect of setting us to a passing group. |
| - delegate.TestGroup(); |
| - delegate.TestViews(); |
| - delegate.TestBuild(); |
| - delegate.TestClosed(); |
| - delegate.TestPromoText(); |
| - delegate.TestTime(); |
| - delegate.TestPlatforms(); |
| -} |
| - |
| TEST_F(PromoResourceServiceTest, NotificationPromoTest) { |
| // Check that prefs are set correctly. |
| PrefService* prefs = profile_.GetPrefs(); |
| ASSERT_TRUE(prefs != NULL); |
| - NotificationPromoTestDelegate delegate(&profile_); |
| - scoped_refptr<NotificationPromo> notification_promo = |
| - NotificationPromo::Create(&profile_, &delegate); |
| + NotificationPromoTest promo_test(&profile_); |
| // Make sure prefs are unset. |
| - delegate.TestPrefs(); |
| + promo_test.TestPrefs(); |
| // Set up start and end dates and promo line in a Dictionary as if parsed |
| // from the service. |
| - delegate.Init(notification_promo, |
| - "{" |
| - " \"ntp_notification_promo\":" |
| - " {" |
| - " \"date\":" |
| - " [" |
| - " {" |
| - " \"start\":\"15 Jan 2012 10:50:85 PST\"," |
| - " \"end\":\"7 Jan 2013 5:40:75 PST\"" |
| - " }" |
| - " ]," |
| - " \"strings\":" |
| - " {" |
| - " \"NTP4_HOW_DO_YOU_FEEL_ABOUT_CHROME\":" |
| - " \"What do you think of Chrome?\"" |
| - " }," |
| - " \"grouping\":" |
| - " {" |
| - " \"buckets\":1000," |
| - " \"segment\":200," |
| - " \"increment\":100," |
| - " \"increment_frequency\":3600," |
| - " \"increment_max\":400" |
| - " }," |
| - " \"payload\":" |
| - " {" |
| - " \"days_active\":7," |
| - " \"install_age_days\":21," |
| - " \"gplus_required\":false" |
| - " }," |
| - " \"max_views\":30" |
| - " }" |
| - "}", |
| - "What do you think of Chrome?", |
| - 1326653485, // unix epoch for 15 Jan 2012 10:50:85 PST. |
| - 1357566075, // unix epoch for 7 Jan 2013 5:40:75 PST. |
| - 1000, 200, 100, 3600, 400, 30, 15, 15, false); |
| + promo_test.Init("{" |
| + " \"ntp_notification_promo\":" |
| + " {" |
| + " \"date\":" |
| + " [" |
| + " {" |
| + " \"start\":\"15 Jan 2012 10:50:85 PST\"," |
| + " \"end\":\"7 Jan 2013 5:40:75 PST\"" |
| + " }" |
| + " ]," |
| + " \"strings\":" |
| + " {" |
| + " \"NTP4_HOW_DO_YOU_FEEL_ABOUT_CHROME\":" |
| + " \"What do you think of Chrome?\"" |
| + " }," |
| + " \"grouping\":" |
| + " {" |
| + " \"buckets\":1000," |
| + " \"segment\":200," |
| + " \"increment\":100," |
| + " \"increment_frequency\":3600," |
| + " \"increment_max\":400" |
| + " }," |
| + " \"payload\":" |
| + " {" |
| + " \"days_active\":7," |
| + " \"install_age_days\":21," |
| + " \"gplus_required\":false" |
| + " }," |
| + " \"max_views\":30" |
| + " }" |
| + "}", |
| + "What do you think of Chrome?", |
| + 1326653485, // unix epoch for 15 Jan 2012 10:50:85 PST. |
| + 1357566075, // unix epoch for 7 Jan 2013 5:40:75 PST. |
| + 1000, 200, 100, 3600, 400, 30, false); |
| - delegate.InitPromoFromJson(true, false); |
| + promo_test.InitPromoFromJson(true); |
| // Second time should not trigger a notification. |
| - delegate.InitPromoFromJson(false, false); |
| + promo_test.InitPromoFromJson(false); |
| - delegate.TestInitFromPrefs(); |
| + promo_test.TestInitFromPrefs(); |
| // Test various conditions of CanShow. |
| // TestGroup Has the side effect of setting us to a passing group. |
| - delegate.TestGroup(); |
| - delegate.TestViews(); |
| - delegate.TestBuild(); |
| - delegate.TestClosed(); |
| - delegate.TestPromoText(); |
| - delegate.TestTime(); |
| - delegate.TestIncrement(); |
| - delegate.TestPlatforms(); |
| - delegate.TestGplus(); |
| + promo_test.TestGroup(); |
| + promo_test.TestViews(); |
| + promo_test.TestClosed(); |
| + promo_test.TestPromoText(); |
| + promo_test.TestTime(); |
| + promo_test.TestIncrement(); |
| + promo_test.TestGplus(); |
| } |
| -TEST_F(PromoResourceServiceTest, NotificationPromoTestFail) { |
| - // Check that prefs are set correctly. |
| - PrefService* prefs = profile_.GetPrefs(); |
| - ASSERT_TRUE(prefs != NULL); |
| - |
| - NotificationPromoTestDelegate delegate(&profile_); |
| - scoped_refptr<NotificationPromo> notification_promo = |
| - NotificationPromo::Create(&profile_, &delegate); |
| - |
| - // Set up start and end dates and promo line in a Dictionary as if parsed |
| - // from the service. |
| - delegate.Init(notification_promo, |
| - "{ " |
| - " \"topic\": {" |
| - " \"answers\": [" |
| - " {" |
| - " \"name\": \"promo_start\"," |
| - " \"question\": \"12:8:10:20:15\"," |
| - " \"tooltip\": \"Happy 3rd Birthday!\"," |
| - " \"inproduct\": \"09/15/10 05:00 PDT\"" |
| - " }," |
| - " {" |
| - " \"name\": \"promo_end\"," |
| - " \"inproduct\": \"09/30/10 05:00 PDT\"" |
| - " }" |
| - " ]" |
| - " }" |
| - "}", |
| - "Happy 3rd Birthday!", |
| - 1284552000, // unix epoch for Sep 15 2010 0500 PDT. |
| - 1285848000, // unix epoch for Sep 30 2010 0500 PDT. |
| - 100, 0, 1, 8, 10, 20, 12, 15, false); |
| - |
| - delegate.InitPromoFromJson(true, true); |
| - |
| - // Second time should not trigger a notification. |
| - delegate.InitPromoFromJson(false, true); |
| - |
| - delegate.TestInitFromPrefs(); |
| - |
| - // Should fail because out of time bounds. |
| - EXPECT_FALSE(notification_promo->CanShow()); |
| -} |
| - |
| -TEST_F(PromoResourceServiceTest, GetNextQuestionValueTest) { |
| - const std::string question("0:-100:2048:0:0:0:2a"); |
| - const int question_vec[] = { 0, -100, 2048, 0, 0, 0}; |
| - size_t index = 0; |
| - bool err = false; |
| - |
| - for (size_t i = 0; i < arraysize(question_vec); ++i) { |
| - EXPECT_EQ(question_vec[i], |
| - NotificationPromo::GetNextQuestionValue(question, &index, &err)); |
| - EXPECT_FALSE(err); |
| - } |
| - EXPECT_EQ(NotificationPromo::GetNextQuestionValue(question, &index, &err), 0); |
| - EXPECT_TRUE(err); |
| -} |
| - |
| TEST_F(PromoResourceServiceTest, PromoServerURLTest) { |
| GURL promo_server_url = NotificationPromo::PromoServerURL(); |
| EXPECT_FALSE(promo_server_url.is_empty()); |