| Index: chrome/browser/background_mode_manager_unittest.cc
|
| diff --git a/chrome/browser/background_mode_manager_unittest.cc b/chrome/browser/background_mode_manager_unittest.cc
|
| index abfbf904791a1c1f24a82ae2cbe87158aad4a0f0..dc19e2aeda3720bc87aab13bc93431b85d71811b 100644
|
| --- a/chrome/browser/background_mode_manager_unittest.cc
|
| +++ b/chrome/browser/background_mode_manager_unittest.cc
|
| @@ -13,7 +13,9 @@
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +using testing::AtLeast;
|
| using testing::InSequence;
|
| +using testing::Return;
|
|
|
| class BackgroundModeManagerTest : public TestingBrowserProcessTest {
|
| public:
|
| @@ -28,11 +30,15 @@ class BackgroundModeManagerTest : public TestingBrowserProcessTest {
|
| class TestBackgroundModeManager : public BackgroundModeManager {
|
| public:
|
| TestBackgroundModeManager(Profile* profile, CommandLine* cl)
|
| - : BackgroundModeManager(profile, cl) {
|
| - }
|
| + : BackgroundModeManager(profile, cl),
|
| + enabled_(true) {}
|
| MOCK_METHOD1(EnableLaunchOnStartup, void(bool));
|
| MOCK_METHOD0(CreateStatusTrayIcon, void());
|
| MOCK_METHOD0(RemoveStatusTrayIcon, void());
|
| + virtual bool IsBackgroundModePrefEnabled() { return enabled_; }
|
| + void SetEnabled(bool enabled) { enabled_ = enabled; }
|
| + private:
|
| + bool enabled_;
|
| };
|
|
|
| TEST_F(BackgroundModeManagerTest, BackgroundAppLoadUnload) {
|
| @@ -65,3 +71,57 @@ TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstall) {
|
| manager.OnBackgroundAppUnloaded();
|
| manager.OnBackgroundAppUninstalled();
|
| }
|
| +
|
| +// App installs while disabled should do nothing.
|
| +TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstallWhileDisabled) {
|
| + InSequence s;
|
| + TestingProfile profile;
|
| + TestBackgroundModeManager manager(&profile, command_line_.get());
|
| + // Turn off background mode.
|
| + manager.SetEnabled(false);
|
| + manager.DisableBackgroundMode();
|
| +
|
| + // Status tray icons will not be created, launch on startup status will be set
|
| + // to "do not launch on startup".
|
| + EXPECT_CALL(manager, EnableLaunchOnStartup(false));
|
| + manager.OnBackgroundAppInstalled(NULL);
|
| + manager.OnBackgroundAppLoaded();
|
| + manager.OnBackgroundAppUnloaded();
|
| + manager.OnBackgroundAppUninstalled();
|
| +
|
| + // Re-enable background mode.
|
| + manager.SetEnabled(true);
|
| + manager.EnableBackgroundMode();
|
| +}
|
| +
|
| +
|
| +// App installs while disabled should do nothing.
|
| +TEST_F(BackgroundModeManagerTest, EnableAfterBackgroundAppInstall) {
|
| + InSequence s;
|
| + TestingProfile profile;
|
| + TestBackgroundModeManager manager(&profile, command_line_.get());
|
| + EXPECT_CALL(manager, EnableLaunchOnStartup(true));
|
| + EXPECT_CALL(manager, CreateStatusTrayIcon());
|
| + EXPECT_CALL(manager, RemoveStatusTrayIcon());
|
| + EXPECT_CALL(manager, EnableLaunchOnStartup(false));
|
| + EXPECT_CALL(manager, CreateStatusTrayIcon());
|
| + EXPECT_CALL(manager, EnableLaunchOnStartup(true));
|
| + EXPECT_CALL(manager, RemoveStatusTrayIcon());
|
| + EXPECT_CALL(manager, EnableLaunchOnStartup(false));
|
| +
|
| + // Install app, should show status tray icon.
|
| + manager.OnBackgroundAppInstalled(NULL);
|
| + manager.OnBackgroundAppLoaded();
|
| +
|
| + // Turn off background mode - should hide status tray icon.
|
| + manager.SetEnabled(false);
|
| + manager.DisableBackgroundMode();
|
| +
|
| + // Turn back on background mode - should show status tray icon.
|
| + manager.SetEnabled(true);
|
| + manager.EnableBackgroundMode();
|
| +
|
| + // Uninstall app, should hide status tray icon again.
|
| + manager.OnBackgroundAppUnloaded();
|
| + manager.OnBackgroundAppUninstalled();
|
| +}
|
|
|