Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(747)

Side by Side Diff: chrome/browser/extensions/apps_promo_unittest.cc

Issue 8438028: ntp: remove ShownSectionHandler and all references to it (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more functional test updates Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/extensions/apps_promo.cc ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/logging.h" 5 #include "base/logging.h"
6 #include "chrome/browser/browser_process.h" 6 #include "chrome/browser/browser_process.h"
7 #include "chrome/browser/extensions/apps_promo.h" 7 #include "chrome/browser/extensions/apps_promo.h"
8 #include "chrome/browser/prefs/browser_prefs.h" 8 #include "chrome/browser/prefs/browser_prefs.h"
9 #include "chrome/browser/ui/webui/ntp/shown_sections_handler.h"
10 #include "chrome/common/extensions/extension.h" 9 #include "chrome/common/extensions/extension.h"
11 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.h"
12 #include "chrome/test/base/testing_browser_process.h" 11 #include "chrome/test/base/testing_browser_process.h"
13 #include "chrome/test/base/testing_pref_service.h" 12 #include "chrome/test/base/testing_pref_service.h"
14 #include "googleurl/src/gurl.h" 13 #include "googleurl/src/gurl.h"
15 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
16 15
17 namespace { 16 namespace {
18 17
19 const char kPromoId[] = "23123123"; 18 const char kPromoId[] = "23123123";
20 const char kPromoHeader[] = "Get great apps!"; 19 const char kPromoHeader[] = "Get great apps!";
21 const char kPromoButton[] = "Click for apps!"; 20 const char kPromoButton[] = "Click for apps!";
22 const char kPromoLink[] = "http://apps.com"; 21 const char kPromoLink[] = "http://apps.com";
23 const char kPromoLogo[] = "chrome://theme/IDR_WEBSTORE_ICON"; 22 const char kPromoLogo[] = "chrome://theme/IDR_WEBSTORE_ICON";
24 const char kPromoExpire[] = "No thanks."; 23 const char kPromoExpire[] = "No thanks.";
25 const int kPromoUserGroup = 24 const int kPromoUserGroup =
26 AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING; 25 AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING;
27 26
28 void ExpectAppsSectionMaximized(PrefService* prefs, bool maximized) {
29 EXPECT_EQ(maximized,
30 (ShownSectionsHandler::GetShownSections(prefs) & APPS) != 0);
31 EXPECT_EQ(!maximized,
32 (ShownSectionsHandler::GetShownSections(prefs) & THUMB) != 0);
33 }
34
35 void ExpectAppsPromoHidden(PrefService* prefs) {
36 // Hiding the promo places the apps section in menu mode and maximizes the
37 // most visited section.
38 EXPECT_TRUE((ShownSectionsHandler::GetShownSections(prefs) &
39 APPS) == 0);
40 EXPECT_TRUE((ShownSectionsHandler::GetShownSections(prefs) &
41 (MENU_APPS | THUMB)) != 0);
42 }
43
44 } // namespace 27 } // namespace
45 28
46 class ExtensionAppsPromo : public testing::Test { 29 class ExtensionAppsPromo : public testing::Test {
47 public: 30 public:
48 TestingPrefService* prefs() { return &prefs_; } 31 TestingPrefService* prefs() { return &prefs_; }
49 AppsPromo* apps_promo() { return &apps_promo_; } 32 AppsPromo* apps_promo() { return &apps_promo_; }
50 33
51 protected: 34 protected:
52 explicit ExtensionAppsPromo(); 35 explicit ExtensionAppsPromo();
53 36
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 EXPECT_TRUE(AppsPromo::IsWebStoreSupportedForLocale()); 190 EXPECT_TRUE(AppsPromo::IsWebStoreSupportedForLocale());
208 AppsPromo::SetWebStoreSupportedForLocale(false); 191 AppsPromo::SetWebStoreSupportedForLocale(false);
209 EXPECT_FALSE(AppsPromo::IsWebStoreSupportedForLocale()); 192 EXPECT_FALSE(AppsPromo::IsWebStoreSupportedForLocale());
210 193
211 // Try setting and getting the source logo URL. 194 // Try setting and getting the source logo URL.
212 GURL expected_source("https://www.google.com/images/test.png"); 195 GURL expected_source("https://www.google.com/images/test.png");
213 AppsPromo::SetSourcePromoLogoURL(expected_source); 196 AppsPromo::SetSourcePromoLogoURL(expected_source);
214 EXPECT_EQ(expected_source, AppsPromo::GetSourcePromoLogoURL()); 197 EXPECT_EQ(expected_source, AppsPromo::GetSourcePromoLogoURL());
215 } 198 }
216 199
217 // Tests maximizing the promo for USERS_NONE.
218 TEST_F(ExtensionAppsPromo, UpdatePromoFocus_UsersNone) {
219 // Verify that the apps section is not already maximized.
220 ExpectAppsSectionMaximized(prefs(), false);
221
222 // The promo shouldn't maximize for anyone.
223 AppsPromo::PromoData promo_data(kPromoId, kPromoHeader, kPromoButton,
224 GURL(kPromoLink), kPromoExpire, GURL(""),
225 AppsPromo::USERS_NONE);
226 AppsPromo::SetPromo(promo_data);
227 apps_promo()->MaximizeAppsIfNecessary();
228 ExpectAppsSectionMaximized(prefs(), false);
229
230 // The promo still shouldn't maximize if we change it's ID.
231 promo_data.id = "lkksdf";
232 AppsPromo::SetPromo(promo_data);
233 apps_promo()->MaximizeAppsIfNecessary();
234 ExpectAppsSectionMaximized(prefs(), false);
235 }
236
237 // Tests maximizing the promo for USERS_EXISTING.
238 TEST_F(ExtensionAppsPromo, UpdatePromoFocus_UsersExisting) {
239 // Verify that the apps section is not already maximized.
240 ExpectAppsSectionMaximized(prefs(), false);
241
242 // Set the promo content.
243 AppsPromo::PromoData promo_data(kPromoId, kPromoHeader, kPromoButton,
244 GURL(kPromoLink), kPromoExpire, GURL(""),
245 AppsPromo::USERS_EXISTING);
246 AppsPromo::SetPromo(promo_data);
247 // This is a new user so the apps section shouldn't maximize.
248 apps_promo()->MaximizeAppsIfNecessary();
249 ExpectAppsSectionMaximized(prefs(), false);
250
251 // Set a new promo and now it should maximize.
252 promo_data.id = "lksdf";
253 AppsPromo::SetPromo(promo_data);
254
255 apps_promo()->MaximizeAppsIfNecessary();
256 ExpectAppsSectionMaximized(prefs(), true);
257
258 apps_promo()->HidePromo();
259 ExpectAppsPromoHidden(prefs());
260 }
261
262 // Tests maximizing the promo for USERS_NEW.
263 TEST_F(ExtensionAppsPromo, UpdatePromoFocus_UsersNew) {
264 // Verify that the apps section is not already maximized.
265 ExpectAppsSectionMaximized(prefs(), false);
266
267 // The promo should maximize for new users.
268 AppsPromo::PromoData promo_data(kPromoId, kPromoHeader, kPromoButton,
269 GURL(kPromoLink), kPromoExpire, GURL(""),
270 AppsPromo::USERS_NEW);
271 AppsPromo::SetPromo(promo_data);
272 apps_promo()->MaximizeAppsIfNecessary();
273 ExpectAppsSectionMaximized(prefs(), true);
274
275 // Try hiding the promo.
276 apps_promo()->HidePromo();
277 ExpectAppsPromoHidden(prefs());
278
279 // The same promo should not maximize twice.
280 apps_promo()->MaximizeAppsIfNecessary();
281 ExpectAppsSectionMaximized(prefs(), false);
282
283 // Another promo targetting new users should not maximize.
284 promo_data.id = "lksdf";
285 AppsPromo::SetPromo(promo_data);
286 apps_promo()->MaximizeAppsIfNecessary();
287 ExpectAppsSectionMaximized(prefs(), false);
288 }
289
290 // Tests maximizing the promo for USERS_NEW | USERS_EXISTING.
291 TEST_F(ExtensionAppsPromo, UpdatePromoFocus_UsersAll) {
292 // Verify that the apps section is not already maximized.
293 ExpectAppsSectionMaximized(prefs(), false);
294
295 // The apps section should maximize for all users.
296 AppsPromo::PromoData promo_data(
297 kPromoId, kPromoHeader, kPromoButton, GURL(kPromoLink), kPromoExpire,
298 GURL(""), AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING);
299 AppsPromo::SetPromo(promo_data);
300 apps_promo()->MaximizeAppsIfNecessary();
301 ExpectAppsSectionMaximized(prefs(), true);
302
303 apps_promo()->HidePromo();
304 ExpectAppsPromoHidden(prefs());
305
306 // The same promo should not maximize twice.
307 apps_promo()->MaximizeAppsIfNecessary();
308 ExpectAppsSectionMaximized(prefs(), false);
309
310 // A promo with a new ID should maximize though.
311 promo_data.id = "lkksdf";
312 AppsPromo::SetPromo(promo_data);
313 apps_promo()->MaximizeAppsIfNecessary();
314 ExpectAppsSectionMaximized(prefs(), true);
315 }
316
317 TEST_F(ExtensionAppsPromo, PromoHiddenByPref) { 200 TEST_F(ExtensionAppsPromo, PromoHiddenByPref) {
318 prefs()->SetInteger(prefs::kAppsPromoCounter, 0); 201 prefs()->SetInteger(prefs::kAppsPromoCounter, 0);
319 prefs()->SetBoolean(prefs::kDefaultAppsInstalled, true); 202 prefs()->SetBoolean(prefs::kDefaultAppsInstalled, true);
320 203
321 // When the "hide" pref is false, the promo should still appear. 204 // When the "hide" pref is false, the promo should still appear.
322 prefs()->SetBoolean(prefs::kNTPHideWebStorePromo, false); 205 prefs()->SetBoolean(prefs::kNTPHideWebStorePromo, false);
323 AppsPromo::PromoData promo_data( 206 AppsPromo::PromoData promo_data(
324 kPromoId, kPromoHeader, kPromoButton, GURL(kPromoLink), kPromoExpire, 207 kPromoId, kPromoHeader, kPromoButton, GURL(kPromoLink), kPromoExpire,
325 GURL(""), AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING); 208 GURL(""), AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING);
326 AppsPromo::SetPromo(promo_data); 209 AppsPromo::SetPromo(promo_data);
327 bool just_expired; 210 bool just_expired;
328 bool show_promo = apps_promo()->ShouldShowPromo( 211 bool show_promo = apps_promo()->ShouldShowPromo(
329 apps_promo()->old_default_apps(), &just_expired); 212 apps_promo()->old_default_apps(), &just_expired);
330 EXPECT_TRUE(show_promo); 213 EXPECT_TRUE(show_promo);
331 214
332 // When the "hide" pref is true, the promo should NOT appear. 215 // When the "hide" pref is true, the promo should NOT appear.
333 prefs()->SetBoolean(prefs::kNTPHideWebStorePromo, true); 216 prefs()->SetBoolean(prefs::kNTPHideWebStorePromo, true);
334 show_promo = apps_promo()->ShouldShowPromo( 217 show_promo = apps_promo()->ShouldShowPromo(
335 apps_promo()->old_default_apps(), &just_expired); 218 apps_promo()->old_default_apps(), &just_expired);
336 EXPECT_FALSE(show_promo); 219 EXPECT_FALSE(show_promo);
337 } 220 }
338 221
339 #endif // OS_CHROMEOS 222 #endif // OS_CHROMEOS
OLDNEW
« no previous file with comments | « chrome/browser/extensions/apps_promo.cc ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698