OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/time.h" | 10 #include "base/time.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 int num_groups, int initial_segment, int increment, | 70 int num_groups, int initial_segment, int increment, |
71 int time_slice, int max_group, int max_views, | 71 int time_slice, int max_group, int max_views, |
72 bool gplus_required) { | 72 bool gplus_required) { |
73 Value* value(base::JSONReader::Read(json)); | 73 Value* value(base::JSONReader::Read(json)); |
74 ASSERT_TRUE(value); | 74 ASSERT_TRUE(value); |
75 DictionaryValue* dict = NULL; | 75 DictionaryValue* dict = NULL; |
76 value->GetAsDictionary(&dict); | 76 value->GetAsDictionary(&dict); |
77 ASSERT_TRUE(dict); | 77 ASSERT_TRUE(dict); |
78 test_json_.reset(dict); | 78 test_json_.reset(dict); |
79 | 79 |
| 80 promo_type_ = |
| 81 #if !defined(OS_ANDROID) |
| 82 NotificationPromo::NTP_NOTIFICATION_PROMO; |
| 83 #else |
| 84 NotificationPromo::MOBILE_NTP_SYNC_PROMO; |
| 85 #endif |
| 86 |
80 promo_text_ = promo_text; | 87 promo_text_ = promo_text; |
81 | 88 |
82 #if defined(OS_ANDROID) | 89 #if defined(OS_ANDROID) |
83 promo_text_long_ = promo_text_long; | 90 promo_text_long_ = promo_text_long; |
84 promo_action_type_ = promo_action_type; | 91 promo_action_type_ = promo_action_type; |
85 promo_action_args_.push_back(promo_action_arg0); | 92 promo_action_args_.push_back(promo_action_arg0); |
86 promo_action_args_.push_back(promo_action_arg1); | 93 promo_action_args_.push_back(promo_action_arg1); |
87 #endif // defined(OS_ANDROID) | 94 #endif // defined(OS_ANDROID) |
88 | 95 |
89 start_ = start; | 96 start_ = start; |
90 end_ = end; | 97 end_ = end; |
91 | 98 |
92 num_groups_ = num_groups; | 99 num_groups_ = num_groups; |
93 initial_segment_ = initial_segment; | 100 initial_segment_ = initial_segment; |
94 increment_ = increment; | 101 increment_ = increment; |
95 time_slice_ = time_slice; | 102 time_slice_ = time_slice; |
96 max_group_ = max_group; | 103 max_group_ = max_group; |
97 | 104 |
98 max_views_ = max_views; | 105 max_views_ = max_views; |
99 | 106 |
100 gplus_required_ = gplus_required; | 107 gplus_required_ = gplus_required; |
101 | 108 |
102 closed_ = false; | 109 closed_ = false; |
103 received_notification_ = false; | 110 received_notification_ = false; |
104 } | 111 } |
105 | 112 |
106 void InitPromoFromJson(bool should_receive_notification) { | 113 void InitPromoFromJson(bool should_receive_notification) { |
107 notification_promo_.InitFromJson(*test_json_); | 114 notification_promo_.InitFromJson(*test_json_, promo_type_); |
108 EXPECT_EQ(should_receive_notification, | 115 EXPECT_EQ(should_receive_notification, |
109 notification_promo_.new_notification()); | 116 notification_promo_.new_notification()); |
110 | 117 |
111 // Test the fields. | 118 // Test the fields. |
112 TestNotification(); | 119 TestNotification(); |
113 } | 120 } |
114 | 121 |
115 void TestNotification() { | 122 void TestNotification() { |
116 // Check values. | 123 // Check values. |
117 EXPECT_EQ(notification_promo_.promo_text_, promo_text_); | 124 EXPECT_EQ(notification_promo_.promo_text_, promo_text_); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 // Views should be 0 for now. | 156 // Views should be 0 for now. |
150 EXPECT_EQ(notification_promo_.views_, 0); | 157 EXPECT_EQ(notification_promo_.views_, 0); |
151 | 158 |
152 EXPECT_EQ(notification_promo_.gplus_required_, gplus_required_); | 159 EXPECT_EQ(notification_promo_.gplus_required_, gplus_required_); |
153 } | 160 } |
154 | 161 |
155 // Create a new NotificationPromo from prefs and compare to current | 162 // Create a new NotificationPromo from prefs and compare to current |
156 // notification. | 163 // notification. |
157 void TestInitFromPrefs() { | 164 void TestInitFromPrefs() { |
158 NotificationPromo prefs_notification_promo(profile_); | 165 NotificationPromo prefs_notification_promo(profile_); |
159 prefs_notification_promo.InitFromPrefs(); | 166 prefs_notification_promo.InitFromPrefs(promo_type_); |
160 | 167 |
161 EXPECT_EQ(notification_promo_.prefs_, | 168 EXPECT_EQ(notification_promo_.prefs_, |
162 prefs_notification_promo.prefs_); | 169 prefs_notification_promo.prefs_); |
163 EXPECT_EQ(notification_promo_.promo_text_, | 170 EXPECT_EQ(notification_promo_.promo_text_, |
164 prefs_notification_promo.promo_text_); | 171 prefs_notification_promo.promo_text_); |
165 #if defined(OS_ANDROID) | 172 #if defined(OS_ANDROID) |
166 EXPECT_EQ(notification_promo_.promo_text_long_, | 173 EXPECT_EQ(notification_promo_.promo_text_long_, |
167 prefs_notification_promo.promo_text_long_); | 174 prefs_notification_promo.promo_text_long_); |
168 EXPECT_EQ(notification_promo_.promo_action_type_, | 175 EXPECT_EQ(notification_promo_.promo_action_type_, |
169 prefs_notification_promo.promo_action_type_); | 176 prefs_notification_promo.promo_action_type_); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 notification_promo_.group_ = i; | 236 notification_promo_.group_ = i; |
230 EXPECT_TRUE(notification_promo_.CanShow()); | 237 EXPECT_TRUE(notification_promo_.CanShow()); |
231 } | 238 } |
232 notification_promo_.WritePrefs(); | 239 notification_promo_.WritePrefs(); |
233 } | 240 } |
234 | 241 |
235 void TestViews() { | 242 void TestViews() { |
236 notification_promo_.views_ = notification_promo_.max_views_ - 2; | 243 notification_promo_.views_ = notification_promo_.max_views_ - 2; |
237 notification_promo_.WritePrefs(); | 244 notification_promo_.WritePrefs(); |
238 | 245 |
| 246 NotificationPromo::HandleViewed(profile_, promo_type_); |
239 NotificationPromo new_promo(profile_); | 247 NotificationPromo new_promo(profile_); |
240 new_promo.HandleViewed(); | 248 new_promo.InitFromPrefs(promo_type_); |
| 249 EXPECT_EQ(new_promo.max_views_ - 1, new_promo.views_); |
241 EXPECT_TRUE(new_promo.CanShow()); | 250 EXPECT_TRUE(new_promo.CanShow()); |
242 new_promo.HandleViewed(); | 251 NotificationPromo::HandleViewed(profile_, promo_type_); |
| 252 new_promo.InitFromPrefs(promo_type_); |
| 253 EXPECT_EQ(new_promo.max_views_, new_promo.views_); |
243 EXPECT_FALSE(new_promo.CanShow()); | 254 EXPECT_FALSE(new_promo.CanShow()); |
244 | 255 |
245 notification_promo_.InitFromPrefs(); | |
246 EXPECT_FALSE(notification_promo_.CanShow()); | |
247 | |
248 // Test out of range views. | 256 // Test out of range views. |
249 for (int i = max_views_; i < max_views_ * 2; ++i) { | 257 for (int i = max_views_; i < max_views_ * 2; ++i) { |
250 notification_promo_.views_ = i; | 258 new_promo.views_ = i; |
251 EXPECT_FALSE(notification_promo_.CanShow()); | 259 EXPECT_FALSE(new_promo.CanShow()); |
252 } | 260 } |
253 | 261 |
254 // Test in range views. | 262 // Test in range views. |
255 for (int i = 0; i < max_views_; ++i) { | 263 for (int i = 0; i < max_views_; ++i) { |
256 notification_promo_.views_ = i; | 264 new_promo.views_ = i; |
257 EXPECT_TRUE(notification_promo_.CanShow()); | 265 EXPECT_TRUE(new_promo.CanShow()); |
258 } | 266 } |
259 notification_promo_.WritePrefs(); | 267 new_promo.WritePrefs(); |
260 } | 268 } |
261 | 269 |
262 void TestClosed() { | 270 void TestClosed() { |
263 NotificationPromo new_promo(profile_); | 271 NotificationPromo new_promo(profile_); |
264 new_promo.InitFromPrefs(); | 272 new_promo.InitFromPrefs(promo_type_); |
| 273 EXPECT_FALSE(new_promo.closed_); |
265 EXPECT_TRUE(new_promo.CanShow()); | 274 EXPECT_TRUE(new_promo.CanShow()); |
266 new_promo.HandleClosed(); | 275 |
267 EXPECT_FALSE(new_promo.CanShow()); | 276 NotificationPromo::HandleClosed(profile_, promo_type_); |
268 new_promo.InitFromPrefs(); | 277 new_promo.InitFromPrefs(promo_type_); |
| 278 EXPECT_TRUE(new_promo.closed_); |
269 EXPECT_FALSE(new_promo.CanShow()); | 279 EXPECT_FALSE(new_promo.CanShow()); |
270 | 280 |
271 notification_promo_.closed_ = true; | 281 new_promo.closed_ = false; |
272 EXPECT_FALSE(notification_promo_.CanShow()); | 282 EXPECT_TRUE(new_promo.CanShow()); |
273 | 283 new_promo.WritePrefs(); |
274 notification_promo_.closed_ = false; | |
275 EXPECT_TRUE(notification_promo_.CanShow()); | |
276 notification_promo_.WritePrefs(); | |
277 } | 284 } |
278 | 285 |
279 void TestPromoText() { | 286 void TestPromoText() { |
280 notification_promo_.promo_text_.clear(); | 287 notification_promo_.promo_text_.clear(); |
281 EXPECT_FALSE(notification_promo_.CanShow()); | 288 EXPECT_FALSE(notification_promo_.CanShow()); |
282 | 289 |
283 notification_promo_.promo_text_ = promo_text_; | 290 notification_promo_.promo_text_ = promo_text_; |
284 EXPECT_TRUE(notification_promo_.CanShow()); | 291 EXPECT_TRUE(notification_promo_.CanShow()); |
285 } | 292 } |
286 | 293 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 EXPECT_TRUE(notification_promo_.CanShow()); | 378 EXPECT_TRUE(notification_promo_.CanShow()); |
372 } | 379 } |
373 | 380 |
374 private: | 381 private: |
375 Profile* profile_; | 382 Profile* profile_; |
376 PrefService* prefs_; | 383 PrefService* prefs_; |
377 NotificationPromo notification_promo_; | 384 NotificationPromo notification_promo_; |
378 bool received_notification_; | 385 bool received_notification_; |
379 scoped_ptr<DictionaryValue> test_json_; | 386 scoped_ptr<DictionaryValue> test_json_; |
380 | 387 |
| 388 NotificationPromo::PromoType promo_type_; |
381 std::string promo_text_; | 389 std::string promo_text_; |
382 #if defined(OS_ANDROID) | 390 #if defined(OS_ANDROID) |
383 std::string promo_text_long_; | 391 std::string promo_text_long_; |
384 std::string promo_action_type_; | 392 std::string promo_action_type_; |
385 std::vector<std::string> promo_action_args_; | 393 std::vector<std::string> promo_action_args_; |
386 #endif // defined(OS_ANDROID) | 394 #endif // defined(OS_ANDROID) |
387 | 395 |
388 double start_; | 396 double start_; |
389 double end_; | 397 double end_; |
390 | 398 |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 promo_test.TestIncrement(); | 526 promo_test.TestIncrement(); |
519 promo_test.TestGplus(); | 527 promo_test.TestGplus(); |
520 } | 528 } |
521 | 529 |
522 TEST_F(PromoResourceServiceTest, PromoServerURLTest) { | 530 TEST_F(PromoResourceServiceTest, PromoServerURLTest) { |
523 GURL promo_server_url = NotificationPromo::PromoServerURL(); | 531 GURL promo_server_url = NotificationPromo::PromoServerURL(); |
524 EXPECT_FALSE(promo_server_url.is_empty()); | 532 EXPECT_FALSE(promo_server_url.is_empty()); |
525 EXPECT_TRUE(promo_server_url.SchemeIs("https")); | 533 EXPECT_TRUE(promo_server_url.SchemeIs("https")); |
526 // TODO(achuith): Test this better. | 534 // TODO(achuith): Test this better. |
527 } | 535 } |
OLD | NEW |