Chromium Code Reviews| 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..a613466cad68811a91af83a88db105c731b5180a 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. |
|
Rick Campbell
2011/05/12 05:42:42
Reverse the sense of this comment to match the cod
Andrew T Wilson (Slow)
2011/05/12 23:34:31
Actually, I needed to reverse the sense of the cod
|
| + manager.SetEnabled(false); |
| + manager.DisableBackgroundMode(); |
| +} |
| + |
| + |
| +// 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(); |
| +} |