Index: chrome/browser/extensions/apps_promo_unittest.cc |
diff --git a/chrome/browser/extensions/apps_promo_unittest.cc b/chrome/browser/extensions/apps_promo_unittest.cc |
deleted file mode 100644 |
index fab605e1d98d2a6a537469ccf5475848693e9e1f..0000000000000000000000000000000000000000 |
--- a/chrome/browser/extensions/apps_promo_unittest.cc |
+++ /dev/null |
@@ -1,223 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/logging.h" |
-#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/extensions/apps_promo.h" |
-#include "chrome/browser/prefs/browser_prefs.h" |
-#include "chrome/common/extensions/extension.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/test/base/testing_browser_process.h" |
-#include "chrome/test/base/testing_pref_service.h" |
-#include "googleurl/src/gurl.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-const char kPromoId[] = "23123123"; |
-const char kPromoHeader[] = "Get great apps!"; |
-const char kPromoButton[] = "Click for apps!"; |
-const char kPromoLink[] = "http://apps.com"; |
-const char kPromoLogo[] = "chrome://theme/IDR_WEBSTORE_ICON"; |
-const char kPromoExpire[] = "No thanks."; |
-const int kPromoUserGroup = |
- AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING; |
- |
-} // namespace |
- |
-class ExtensionAppsPromo : public testing::Test { |
- public: |
- TestingPrefService* prefs() { return &prefs_; } |
- AppsPromo* apps_promo() { return &apps_promo_; } |
- |
- protected: |
- explicit ExtensionAppsPromo(); |
- |
- // testing::Test |
- virtual void SetUp(); |
- |
- private: |
- TestingPrefService prefs_; |
- ScopedTestingLocalState local_state_; |
- AppsPromo apps_promo_; |
-}; |
- |
-ExtensionAppsPromo::ExtensionAppsPromo() |
- : local_state_(static_cast<TestingBrowserProcess*>(g_browser_process)), |
- apps_promo_(&prefs_) { |
-} |
- |
-void ExtensionAppsPromo::SetUp() { |
- chrome::RegisterUserPrefs(&prefs_); |
-} |
- |
-// TODO(dpolukhin): On Chrome OS all apps are installed via external extensions, |
-// and the web store promo is never shown. |
-#if !defined(OS_CHROMEOS) |
- |
-TEST_F(ExtensionAppsPromo, HappyPath) { |
- const extensions::ExtensionIdSet& default_app_ids = |
- apps_promo()->old_default_apps(); |
- |
- EXPECT_GT(default_app_ids.size(), 0u); |
- |
- // The promo counter should default to the max, since we only use the counter |
- // if they were installed from older versions of Chrome. |
- EXPECT_EQ(AppsPromo::kDefaultAppsCounterMax + 1, |
- apps_promo()->GetPromoCounter()); |
- |
- // The app launcher and promo should not be shown if there are no extensions |
- // installed and no promo is set. |
- extensions::ExtensionIdSet installed_ids; |
- bool promo_just_expired = false; |
- EXPECT_FALSE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_FALSE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_FALSE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- EXPECT_FALSE(promo_just_expired); |
- |
- // Make sure the web store can be supported even when the promo is not active. |
- AppsPromo::SetWebStoreSupportedForLocale(true); |
- EXPECT_FALSE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_TRUE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_FALSE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- |
- // We should be able to disable the web store as well. |
- AppsPromo::SetWebStoreSupportedForLocale(false); |
- EXPECT_FALSE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_FALSE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_FALSE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- |
- // Once the promo is set, we show both the promo and app launcher. |
- AppsPromo::PromoData promo_data(kPromoId, kPromoHeader, kPromoButton, |
- GURL(kPromoLink), kPromoExpire, GURL(""), |
- kPromoUserGroup); |
- AppsPromo::SetPromo(promo_data); |
- AppsPromo::SetWebStoreSupportedForLocale(true); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_TRUE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_TRUE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- EXPECT_FALSE(promo_just_expired); |
- |
- // Now install an app and the promo should not be shown. |
- installed_ids.insert(*(default_app_ids.begin())); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_TRUE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_FALSE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- EXPECT_FALSE(promo_just_expired); |
- |
- // Even if the user installs the exact set of default apps, we still don't |
- // show the promo. |
- installed_ids = default_app_ids; |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_TRUE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_FALSE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- EXPECT_FALSE(promo_just_expired); |
- |
- // If the user then uninstalls the apps, the app launcher should remain |
- // and the promo should return. |
- installed_ids.clear(); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- EXPECT_TRUE(apps_promo()->ShouldShowAppLauncher(installed_ids)); |
- EXPECT_TRUE(apps_promo()->ShouldShowPromo(installed_ids, |
- &promo_just_expired)); |
- EXPECT_FALSE(promo_just_expired); |
-} |
- |
-// Tests get and set of promo content. |
-TEST_F(ExtensionAppsPromo, PromoPrefs) { |
- // Store a promo.... |
- AppsPromo::PromoData promo_data(kPromoId, kPromoHeader, kPromoButton, |
- GURL(kPromoLink), kPromoExpire, GURL(""), |
- kPromoUserGroup); |
- AppsPromo::SetPromo(promo_data); |
- |
- // ... then make sure AppsPromo can access it. |
- AppsPromo::PromoData actual_data = AppsPromo::GetPromo(); |
- EXPECT_EQ(kPromoId, actual_data.id); |
- EXPECT_EQ(kPromoHeader, actual_data.header); |
- EXPECT_EQ(kPromoButton, actual_data.button); |
- EXPECT_EQ(GURL(kPromoLink), actual_data.link); |
- EXPECT_EQ(kPromoExpire, actual_data.expire); |
- EXPECT_EQ(kPromoUserGroup, actual_data.user_group); |
- // The promo logo should be the default value. |
- EXPECT_EQ(GURL(kPromoLogo), actual_data.logo); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- |
- AppsPromo::ClearPromo(); |
- actual_data = AppsPromo::GetPromo(); |
- EXPECT_EQ("", actual_data.id); |
- EXPECT_EQ("", actual_data.header); |
- EXPECT_EQ("", actual_data.button); |
- EXPECT_EQ(GURL(""), actual_data.link); |
- EXPECT_EQ("", actual_data.expire); |
- EXPECT_EQ(AppsPromo::USERS_NONE, actual_data.user_group); |
- EXPECT_EQ(GURL(kPromoLogo), actual_data.logo); |
- EXPECT_FALSE(AppsPromo::IsPromoSupportedForLocale()); |
- |
- // Make sure we can set the logo to something other than the default. |
- std::string promo_logo = "data:image/png;base64,iVBORw0kGgoAAAN"; |
- promo_data.logo = GURL(promo_logo); |
- AppsPromo::SetPromo(promo_data); |
- EXPECT_EQ(GURL(promo_logo), AppsPromo::GetPromo().logo); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- |
- // Verify that the default is returned instead of HTTP or HTTPS URLs. |
- promo_data.logo = GURL("http://google.com/logo.png"); |
- AppsPromo::SetPromo(promo_data); |
- EXPECT_EQ(GURL(kPromoLogo), AppsPromo::GetPromo().logo); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- |
- promo_data.logo = GURL("https://google.com/logo.png"); |
- AppsPromo::SetPromo(promo_data); |
- EXPECT_EQ(GURL(kPromoLogo), AppsPromo::GetPromo().logo); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- |
- // Try an invalid URL. |
- promo_data.logo = GURL("sldkfjlsdn"); |
- AppsPromo::SetPromo(promo_data); |
- EXPECT_EQ(GURL(kPromoLogo), AppsPromo::GetPromo().logo); |
- EXPECT_TRUE(AppsPromo::IsPromoSupportedForLocale()); |
- |
- // Try the web store supported flag. |
- EXPECT_FALSE(AppsPromo::IsWebStoreSupportedForLocale()); |
- AppsPromo::SetWebStoreSupportedForLocale(true); |
- EXPECT_TRUE(AppsPromo::IsWebStoreSupportedForLocale()); |
- AppsPromo::SetWebStoreSupportedForLocale(false); |
- EXPECT_FALSE(AppsPromo::IsWebStoreSupportedForLocale()); |
- |
- // Try setting and getting the source logo URL. |
- GURL expected_source("https://www.google.com/images/test.png"); |
- AppsPromo::SetSourcePromoLogoURL(expected_source); |
- EXPECT_EQ(expected_source, AppsPromo::GetSourcePromoLogoURL()); |
-} |
- |
-TEST_F(ExtensionAppsPromo, PromoHiddenByPref) { |
- prefs()->SetInteger(prefs::kAppsPromoCounter, 0); |
- prefs()->SetBoolean(prefs::kDefaultAppsInstalled, true); |
- |
- // When the "hide" pref is false, the promo should still appear. |
- prefs()->SetBoolean(prefs::kNtpHideWebStorePromo, false); |
- AppsPromo::PromoData promo_data( |
- kPromoId, kPromoHeader, kPromoButton, GURL(kPromoLink), kPromoExpire, |
- GURL(""), AppsPromo::USERS_NEW | AppsPromo::USERS_EXISTING); |
- AppsPromo::SetPromo(promo_data); |
- bool just_expired; |
- bool show_promo = apps_promo()->ShouldShowPromo( |
- apps_promo()->old_default_apps(), &just_expired); |
- EXPECT_TRUE(show_promo); |
- |
- // When the "hide" pref is true, the promo should NOT appear. |
- prefs()->SetBoolean(prefs::kNtpHideWebStorePromo, true); |
- show_promo = apps_promo()->ShouldShowPromo( |
- apps_promo()->old_default_apps(), &just_expired); |
- EXPECT_FALSE(show_promo); |
-} |
- |
-#endif // OS_CHROMEOS |