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

Unified Diff: chrome/browser/extensions/default_apps_unittest.cc

Issue 6040005: More cleanup of DefaultApps code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unnecessary change, add comments Created 9 years, 12 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/default_apps.cc ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/default_apps_unittest.cc
diff --git a/chrome/browser/extensions/default_apps_unittest.cc b/chrome/browser/extensions/default_apps_unittest.cc
index 4fa9bc2c987e03b541e02e6517a4b0553aceabf8..d7edfc0d6c394abd991b5e12e799425cced19169 100644
--- a/chrome/browser/extensions/default_apps_unittest.cc
+++ b/chrome/browser/extensions/default_apps_unittest.cc
@@ -2,6 +2,7 @@
// 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/extensions/default_apps.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/test/testing_pref_service.h"
@@ -10,93 +11,140 @@
// 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(ExtensionDefaultApps, Basics) {
+TEST(ExtensionDefaultApps, HappyPath) {
TestingPrefService pref_service;
DefaultApps::RegisterUserPrefs(&pref_service);
- DefaultApps default_apps(&pref_service);
+ DefaultApps default_apps(&pref_service, "en-US");
- ExtensionIdSet default_app_ids = *default_apps.GetAppsToInstall();
+ const ExtensionIdSet& default_app_ids = default_apps.default_apps();
ASSERT_GT(default_app_ids.size(), 0u);
EXPECT_FALSE(default_apps.GetDefaultAppsInstalled());
EXPECT_EQ(0, default_apps.GetPromoCounter());
- EXPECT_EQ(default_app_ids, *default_apps.GetDefaultApps());
- // The promo should not be shown until the default apps have been installed.
+ // If no apps are installed, the default apps should be installed.
ExtensionIdSet installed_app_ids;
- EXPECT_FALSE(default_apps.CheckShouldShowPromo(installed_app_ids));
+ EXPECT_TRUE(default_apps.ShouldInstallDefaultApps(installed_app_ids));
+
+ // The launcher should not be shown until the default apps have been installed.
Erik does not do reviews 2011/01/03 22:01:30 nit: 80 cols
+ EXPECT_FALSE(default_apps.ShouldShowAppLauncher(installed_app_ids));
+
+ // The promo should not be shown until the default apps have been installed.
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_app_ids));
// Simulate installing the apps one by one and notifying default_apps after
// each intallation. Nothing should change until we have installed all the
// default apps.
- ExtensionIdSet extension_id_sets[] = {
- default_app_ids,
- default_app_ids,
- default_app_ids
- };
- extension_id_sets[0].clear();
- extension_id_sets[1].erase(extension_id_sets[1].begin());
- extension_id_sets[2].erase(extension_id_sets[2].begin(),
- ++extension_id_sets[2].begin());
- for (size_t i = 0; i < arraysize(extension_id_sets); ++i) {
- default_apps.DidInstallApp(extension_id_sets[i]);
- EXPECT_TRUE(default_app_ids == *default_apps.GetAppsToInstall());
+ for (size_t i = 0; i < default_app_ids.size() - 1; ++i) {
+ ExtensionIdSet::const_iterator iter = default_app_ids.begin();
+ for (size_t j = 0; j <= i; ++j)
+ ++iter;
+ installed_app_ids.insert(*iter);
+ default_apps.DidInstallApp(installed_app_ids);
EXPECT_FALSE(default_apps.GetDefaultAppsInstalled());
- EXPECT_FALSE(default_apps.CheckShouldShowPromo(extension_id_sets[i]));
+ EXPECT_TRUE(default_apps.ShouldInstallDefaultApps(installed_app_ids));
+ EXPECT_FALSE(default_apps.ShouldShowAppLauncher(installed_app_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_app_ids));
}
// Simulate all the default apps being installed. Now we should stop getting
// default apps to install.
- default_apps.DidInstallApp(default_app_ids);
- EXPECT_EQ(NULL, default_apps.GetAppsToInstall());
+ installed_app_ids = default_app_ids;
+ default_apps.DidInstallApp(installed_app_ids);
EXPECT_TRUE(default_apps.GetDefaultAppsInstalled());
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_app_ids));
- // And the promo should become available.
- EXPECT_TRUE(default_apps.CheckShouldShowPromo(default_app_ids));
+ // And the promo and launcher should become available.
+ EXPECT_TRUE(default_apps.ShouldShowAppLauncher(installed_app_ids));
+ EXPECT_TRUE(default_apps.ShouldShowPromo(installed_app_ids));
// The promo should be available up to the max allowed times, then stop.
for (int i = 0; i < DefaultApps::kAppsPromoCounterMax; ++i) {
- EXPECT_TRUE(default_apps.CheckShouldShowPromo(default_app_ids));
+ EXPECT_TRUE(default_apps.ShouldShowPromo(installed_app_ids));
default_apps.DidShowPromo();
EXPECT_EQ(i + 1, default_apps.GetPromoCounter());
}
- EXPECT_FALSE(default_apps.CheckShouldShowPromo(default_app_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_app_ids));
EXPECT_EQ(DefaultApps::kAppsPromoCounterMax, default_apps.GetPromoCounter());
+
+ // Even if all the apps are subsequently removed, the apps section should
+ // remain.
+ installed_app_ids.clear();
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_app_ids));
+ EXPECT_TRUE(default_apps.ShouldShowAppLauncher(installed_app_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_app_ids));
+}
+
+TEST(ExtensionDefaultApps, UnsupportedLocale) {
+ TestingPrefService pref_service;
+ DefaultApps::RegisterUserPrefs(&pref_service);
+ DefaultApps default_apps(&pref_service, "fr");
+
+ const ExtensionIdSet& default_app_ids = default_apps.default_apps();
+ EXPECT_GT(default_app_ids.size(), 0u);
+
+ // Since the store only supports en-US at the moment, we don't install default
+ // apps or promote the store.
+ ExtensionIdSet installed_ids;
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowAppLauncher(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_ids));
+
+ // If the user installs an app manually, then we show the apps section, but
+ // no promotion or default apps.
+ installed_ids.insert(*(default_app_ids.begin()));
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_ids));
+ EXPECT_TRUE(default_apps.ShouldShowAppLauncher(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_ids));
+
+ // Even if the user installs the exact set of default apps, we don't show the
+ // promo.
+ installed_ids = default_app_ids;
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_ids));
+ EXPECT_TRUE(default_apps.ShouldShowAppLauncher(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_ids));
+
+ // If the user uninstalls the apps again, we go back to not showing the
+ // apps section.
+ installed_ids.clear();
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowAppLauncher(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_ids));
}
TEST(ExtensionDefaultApps, HidePromo) {
TestingPrefService pref_service;
DefaultApps::RegisterUserPrefs(&pref_service);
- DefaultApps default_apps(&pref_service);
+ DefaultApps default_apps(&pref_service, "en-US");
- ExtensionIdSet default_app_ids = *default_apps.GetAppsToInstall();
+ const ExtensionIdSet& default_app_ids = default_apps.default_apps();
default_apps.DidInstallApp(default_app_ids);
- EXPECT_TRUE(default_apps.CheckShouldShowPromo(default_app_ids));
+ EXPECT_TRUE(default_apps.ShouldShowPromo(default_app_ids));
default_apps.DidShowPromo();
EXPECT_EQ(1, default_apps.GetPromoCounter());
default_apps.SetPromoHidden();
- EXPECT_FALSE(default_apps.CheckShouldShowPromo(default_app_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(default_app_ids));
EXPECT_EQ(DefaultApps::kAppsPromoCounterMax, default_apps.GetPromoCounter());
}
TEST(ExtensionDefaultApps, InstallingAnAppHidesPromo) {
TestingPrefService pref_service;
DefaultApps::RegisterUserPrefs(&pref_service);
- DefaultApps default_apps(&pref_service);
+ DefaultApps default_apps(&pref_service, "en-US");
- ExtensionIdSet default_app_ids = *default_apps.GetAppsToInstall();
+ const ExtensionIdSet& default_app_ids = default_apps.default_apps();
ExtensionIdSet installed_app_ids = default_app_ids;
default_apps.DidInstallApp(installed_app_ids);
- EXPECT_TRUE(default_apps.CheckShouldShowPromo(installed_app_ids));
+ EXPECT_TRUE(default_apps.ShouldShowPromo(installed_app_ids));
default_apps.DidShowPromo();
EXPECT_EQ(1, default_apps.GetPromoCounter());
// Now simulate a new extension being installed. This should cause the promo
// to be hidden.
installed_app_ids.insert("foo");
- EXPECT_FALSE(default_apps.CheckShouldShowPromo(installed_app_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_app_ids));
EXPECT_EQ(DefaultApps::kAppsPromoCounterMax, default_apps.GetPromoCounter());
}
@@ -111,27 +159,31 @@ TEST(ExtensionDefaultApps, ManualAppInstalledWhileInstallingDefaultApps) {
// the default ones.
TestingPrefService pref_service;
DefaultApps::RegisterUserPrefs(&pref_service);
- DefaultApps default_apps(&pref_service);
+ DefaultApps default_apps(&pref_service, "en-US");
// Simulate an app getting installed before the complete set of default apps.
- // This shouldn't affect us installing default apps. We should keep trying.
+ // This should stop the default apps from trying to be installed. The launcher
Erik does not do reviews 2011/01/03 22:01:30 Doesn't this put us in a weird state? They could
Aaron Boodman 2011/01/04 20:59:35 It does. This code was mainly intended to handle
+ // should also immediately show up.
ExtensionIdSet installed_ids;
installed_ids.insert("foo");
- default_apps.DidInstallApp(installed_ids);
- EXPECT_FALSE(default_apps.GetDefaultAppsInstalled());
- EXPECT_TRUE(default_apps.GetAppsToInstall());
-
- // Now add all the default apps in addition to the extra app. We should stop
- // trying to install default apps.
- installed_ids = *default_apps.GetAppsToInstall();
- installed_ids.insert("foo");
- default_apps.DidInstallApp(installed_ids);
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_ids));
EXPECT_TRUE(default_apps.GetDefaultAppsInstalled());
- EXPECT_FALSE(default_apps.GetAppsToInstall());
+ EXPECT_TRUE(default_apps.ShouldShowAppLauncher(installed_ids));
// The promo shouldn't turn on though, because it would look weird with the
// user's extra, manually installed extensions.
- EXPECT_FALSE(default_apps.CheckShouldShowPromo(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_ids));
EXPECT_EQ(DefaultApps::kAppsPromoCounterMax, default_apps.GetPromoCounter());
+
+ // Going back to a subset of the default apps shouldn't allow the default app
+ // install to continue.
+ installed_ids.clear();
+ EXPECT_FALSE(default_apps.ShouldInstallDefaultApps(installed_ids));
+ EXPECT_TRUE(default_apps.GetDefaultAppsInstalled());
+ EXPECT_TRUE(default_apps.ShouldShowAppLauncher(installed_ids));
+ EXPECT_FALSE(default_apps.ShouldShowPromo(installed_ids));
+
+ // Going to the exact set of default apps shouldn't show the promo.
+ EXPECT_FALSE(default_apps.ShouldShowPromo(default_apps.default_apps()));
}
#endif // OS_CHROMEOS
« no previous file with comments | « chrome/browser/extensions/default_apps.cc ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698