Chromium Code Reviews| Index: chrome/browser/background_mode_manager_unittest.cc |
| =================================================================== |
| --- chrome/browser/background_mode_manager_unittest.cc (revision 85937) |
| +++ chrome/browser/background_mode_manager_unittest.cc (working copy) |
| @@ -29,12 +29,12 @@ |
| class TestBackgroundModeManager : public BackgroundModeManager { |
| public: |
| - TestBackgroundModeManager(Profile* profile, CommandLine* cl) |
| - : BackgroundModeManager(profile, cl), |
| + explicit TestBackgroundModeManager(CommandLine* command_line) |
| + : BackgroundModeManager(command_line), |
| enabled_(true) {} |
| MOCK_METHOD1(EnableLaunchOnStartup, void(bool)); |
| - MOCK_METHOD0(CreateStatusTrayIcon, void()); |
| - MOCK_METHOD0(RemoveStatusTrayIcon, void()); |
| + MOCK_METHOD1(CreateStatusTrayIcon, void(Profile*)); // NOLINT |
| + MOCK_METHOD1(RemoveStatusTrayIcon, void(Profile*)); // NOLINT |
| virtual bool IsBackgroundModePrefEnabled() { return enabled_; } |
| void SetEnabled(bool enabled) { enabled_ = enabled; } |
| private: |
| @@ -44,9 +44,10 @@ |
| TEST_F(BackgroundModeManagerTest, BackgroundAppLoadUnload) { |
| InSequence s; |
| TestingProfile profile; |
| - TestBackgroundModeManager manager(&profile, command_line_.get()); |
| - EXPECT_CALL(manager, CreateStatusTrayIcon()); |
| - EXPECT_CALL(manager, RemoveStatusTrayIcon()); |
| + TestBackgroundModeManager manager(command_line_.get()); |
| + manager.RegisterProfile(&profile); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile)); |
| EXPECT_FALSE(BrowserList::WillKeepAlive()); |
| // Call to AppLoaded() will cause the status tray to be created, then call to |
| // unloaded will result in call to remove the icon. |
| @@ -59,14 +60,15 @@ |
| TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstall) { |
| InSequence s; |
| TestingProfile profile; |
| - TestBackgroundModeManager manager(&profile, command_line_.get()); |
| + TestBackgroundModeManager manager(command_line_.get()); |
| + manager.RegisterProfile(&profile); |
| // Call to AppInstalled() will cause chrome to be set to launch on startup, |
| // and call to AppUninstalled() set chrome to not launch on startup. |
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)); |
| - EXPECT_CALL(manager, CreateStatusTrayIcon()); |
| - EXPECT_CALL(manager, RemoveStatusTrayIcon()); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile)); |
| EXPECT_CALL(manager, EnableLaunchOnStartup(false)); |
| - manager.OnBackgroundAppInstalled(NULL); |
| + manager.OnBackgroundAppInstalled(NULL, &profile); |
| manager.OnBackgroundAppLoaded(); |
| manager.OnBackgroundAppUnloaded(); |
| manager.OnBackgroundAppUninstalled(); |
| @@ -76,7 +78,8 @@ |
| TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstallWhileDisabled) { |
| InSequence s; |
| TestingProfile profile; |
| - TestBackgroundModeManager manager(&profile, command_line_.get()); |
| + TestBackgroundModeManager manager(command_line_.get()); |
| + manager.RegisterProfile(&profile); |
| // Turn off background mode. |
| manager.SetEnabled(false); |
| manager.DisableBackgroundMode(); |
| @@ -84,7 +87,7 @@ |
| // 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.OnBackgroundAppInstalled(NULL, &profile); |
| manager.OnBackgroundAppLoaded(); |
| manager.OnBackgroundAppUnloaded(); |
| manager.OnBackgroundAppUninstalled(); |
| @@ -99,18 +102,19 @@ |
| TEST_F(BackgroundModeManagerTest, EnableAfterBackgroundAppInstall) { |
| InSequence s; |
| TestingProfile profile; |
| - TestBackgroundModeManager manager(&profile, command_line_.get()); |
| + TestBackgroundModeManager manager(command_line_.get()); |
| + manager.RegisterProfile(&profile); |
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)); |
| - EXPECT_CALL(manager, CreateStatusTrayIcon()); |
| - EXPECT_CALL(manager, RemoveStatusTrayIcon()); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile)); |
| EXPECT_CALL(manager, EnableLaunchOnStartup(false)); |
| - EXPECT_CALL(manager, CreateStatusTrayIcon()); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile)); |
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)); |
| - EXPECT_CALL(manager, RemoveStatusTrayIcon()); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile)); |
| EXPECT_CALL(manager, EnableLaunchOnStartup(false)); |
| // Install app, should show status tray icon. |
| - manager.OnBackgroundAppInstalled(NULL); |
| + manager.OnBackgroundAppInstalled(NULL, &profile); |
| manager.OnBackgroundAppLoaded(); |
| // Turn off background mode - should hide status tray icon. |
| @@ -125,3 +129,49 @@ |
| manager.OnBackgroundAppUnloaded(); |
| manager.OnBackgroundAppUninstalled(); |
| } |
| + |
| +TEST_F(BackgroundModeManagerTest, MultiProfile) { |
| + InSequence s; |
| + TestingProfile profile1; |
| + TestingProfile profile2; |
| + TestBackgroundModeManager manager(command_line_.get()); |
| + manager.RegisterProfile(&profile1); |
| + manager.RegisterProfile(&profile2); |
| + EXPECT_CALL(manager, EnableLaunchOnStartup(true)); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile1)); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile2)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile1)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile2)); |
| + EXPECT_CALL(manager, EnableLaunchOnStartup(false)); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile1)); |
| + EXPECT_CALL(manager, CreateStatusTrayIcon(&profile2)); |
| + EXPECT_CALL(manager, EnableLaunchOnStartup(true)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile1)); |
| + EXPECT_CALL(manager, RemoveStatusTrayIcon(&profile2)); |
| + EXPECT_CALL(manager, EnableLaunchOnStartup(false)); |
| + EXPECT_FALSE(BrowserList::WillKeepAlive()); |
| + |
| + // Install app, should show status tray icon. |
| + manager.OnBackgroundAppInstalled(NULL, &profile1); |
|
rpetterson
2011/05/20 05:53:17
What needs to be done to be able to call these pri
Miranda Callahan
2011/05/20 15:16:53
Have you tried adding this line to background_mode
Andrew T Wilson (Slow)
2011/05/20 16:52:46
Yeah, Miranda is correct. I really hate this patte
rpetterson
2011/05/23 03:23:19
Thanks!
|
| + manager.OnBackgroundAppLoaded(); |
| + |
| + // Install app for other profile, hsould show other status tray icon. |
| + manager.OnBackgroundAppInstalled(NULL, &profile2); |
| + manager.OnBackgroundAppLoaded(); |
| + |
| + // Should hide both status tray icons. |
| + manager.SetEnabled(false); |
| + manager.DisableBackgroundMode(); |
| + |
| + // Turn back on background mode - should show both status tray icons. |
| + manager.SetEnabled(true); |
| + manager.EnableBackgroundMode(); |
| + |
| + manager.OnBackgroundAppUnloaded(); |
| + manager.OnBackgroundAppUninstalled(); |
| + // There is still one background app alive |
| + EXPECT_TRUE(BrowserList::WillKeepAlive()); |
| + manager.OnBackgroundAppUnloaded(); |
| + manager.OnBackgroundAppUninstalled(); |
| + EXPECT_FALSE(BrowserList::WillKeepAlive()); |
| +} |