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

Side by Side Diff: chrome/browser/background/background_mode_manager_unittest.cc

Issue 25603004: Leave apps running on Windows and Linux when quitting Chrome from the wrench menu. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/background/background_mode_manager.h" 8 #include "chrome/browser/background/background_mode_manager.h"
9 #include "chrome/browser/lifetime/application_lifetime.h" 9 #include "chrome/browser/lifetime/application_lifetime.h"
10 #include "chrome/browser/profiles/profile_info_cache.h" 10 #include "chrome/browser/profiles/profile_info_cache.h"
(...skipping 20 matching lines...) Expand all
31 31
32 class TestBackgroundModeManager : public BackgroundModeManager { 32 class TestBackgroundModeManager : public BackgroundModeManager {
33 public: 33 public:
34 TestBackgroundModeManager( 34 TestBackgroundModeManager(
35 CommandLine* command_line, ProfileInfoCache* cache, bool enabled) 35 CommandLine* command_line, ProfileInfoCache* cache, bool enabled)
36 : BackgroundModeManager(command_line, cache), 36 : BackgroundModeManager(command_line, cache),
37 enabled_(enabled), 37 enabled_(enabled),
38 app_count_(0), 38 app_count_(0),
39 profile_app_count_(0), 39 profile_app_count_(0),
40 have_status_tray_(false), 40 have_status_tray_(false),
41 launch_on_startup_(false) {} 41 launch_on_startup_(false) {
42 ResumeBackgroundMode();
43 }
42 virtual void EnableLaunchOnStartup(bool launch) OVERRIDE { 44 virtual void EnableLaunchOnStartup(bool launch) OVERRIDE {
43 launch_on_startup_ = launch; 45 launch_on_startup_ = launch;
44 } 46 }
45 virtual void CreateStatusTrayIcon() OVERRIDE { have_status_tray_ = true; } 47 virtual void CreateStatusTrayIcon() OVERRIDE { have_status_tray_ = true; }
46 virtual void RemoveStatusTrayIcon() OVERRIDE { have_status_tray_ = false; } 48 virtual void RemoveStatusTrayIcon() OVERRIDE { have_status_tray_ = false; }
47 virtual int GetBackgroundAppCount() const OVERRIDE { return app_count_; } 49 virtual int GetBackgroundAppCount() const OVERRIDE { return app_count_; }
48 virtual int GetBackgroundAppCountForProfile( 50 virtual int GetBackgroundAppCountForProfile(
49 Profile* const profile) const OVERRIDE { 51 Profile* const profile) const OVERRIDE {
50 return profile_app_count_; 52 return profile_app_count_;
51 } 53 }
(...skipping 25 matching lines...) Expand all
77 EXPECT_TRUE(manager.IsLaunchOnStartup()); 79 EXPECT_TRUE(manager.IsLaunchOnStartup());
78 } 80 }
79 81
80 static void AssertBackgroundModeInactive( 82 static void AssertBackgroundModeInactive(
81 const TestBackgroundModeManager& manager) { 83 const TestBackgroundModeManager& manager) {
82 EXPECT_FALSE(chrome::WillKeepAlive()); 84 EXPECT_FALSE(chrome::WillKeepAlive());
83 EXPECT_FALSE(manager.HaveStatusTray()); 85 EXPECT_FALSE(manager.HaveStatusTray());
84 EXPECT_FALSE(manager.IsLaunchOnStartup()); 86 EXPECT_FALSE(manager.IsLaunchOnStartup());
85 } 87 }
86 88
89 static void AssertBackgroundModeSuspended(
90 const TestBackgroundModeManager& manager) {
91 EXPECT_FALSE(chrome::WillKeepAlive());
92 EXPECT_FALSE(manager.HaveStatusTray());
93 EXPECT_TRUE(manager.IsLaunchOnStartup());
94 }
95
87 TEST_F(BackgroundModeManagerTest, BackgroundAppLoadUnload) { 96 TEST_F(BackgroundModeManagerTest, BackgroundAppLoadUnload) {
88 TestingProfile* profile = profile_manager_.CreateTestingProfile("p1"); 97 TestingProfile* profile = profile_manager_.CreateTestingProfile("p1");
89 TestBackgroundModeManager manager( 98 TestBackgroundModeManager manager(
90 command_line_.get(), profile_manager_.profile_info_cache(), true); 99 command_line_.get(), profile_manager_.profile_info_cache(), true);
91 manager.RegisterProfile(profile); 100 manager.RegisterProfile(profile);
92 EXPECT_FALSE(chrome::WillKeepAlive()); 101 EXPECT_FALSE(chrome::WillKeepAlive());
93 102
94 // Mimic app load. 103 // Mimic app load.
95 manager.OnBackgroundAppInstalled(NULL); 104 manager.OnBackgroundAppInstalled(NULL);
96 manager.SetBackgroundAppCount(1); 105 manager.SetBackgroundAppCount(1);
97 manager.OnApplicationListChanged(profile); 106 manager.OnApplicationListChanged(profile);
98 AssertBackgroundModeActive(manager); 107 AssertBackgroundModeActive(manager);
99 108
109 manager.SuspendBackgroundMode();
110 AssertBackgroundModeSuspended(manager);
111 manager.ResumeBackgroundMode();
112
100 // Mimic app unload. 113 // Mimic app unload.
101 manager.SetBackgroundAppCount(0); 114 manager.SetBackgroundAppCount(0);
102 manager.OnApplicationListChanged(profile); 115 manager.OnApplicationListChanged(profile);
103 AssertBackgroundModeInactive(manager); 116 AssertBackgroundModeInactive(manager);
117
118 manager.SuspendBackgroundMode();
119 AssertBackgroundModeInactive(manager);
120
121 // Mimic app load while suspended, e.g. from sync. This should enable and
122 // resume background mode.
123 manager.OnBackgroundAppInstalled(NULL);
124 manager.SetBackgroundAppCount(1);
125 manager.OnApplicationListChanged(profile);
126 AssertBackgroundModeActive(manager);
104 } 127 }
105 128
106 // App installs while background mode is disabled should do nothing. 129 // App installs while background mode is disabled should do nothing.
107 TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstallWhileDisabled) { 130 TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstallWhileDisabled) {
108 TestingProfile* profile = profile_manager_.CreateTestingProfile("p1"); 131 TestingProfile* profile = profile_manager_.CreateTestingProfile("p1");
109 TestBackgroundModeManager manager( 132 TestBackgroundModeManager manager(
110 command_line_.get(), profile_manager_.profile_info_cache(), true); 133 command_line_.get(), profile_manager_.profile_info_cache(), true);
111 manager.RegisterProfile(profile); 134 manager.RegisterProfile(profile);
112 // Turn off background mode. 135 // Turn off background mode.
113 manager.SetEnabled(false); 136 manager.SetEnabled(false);
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 326
304 TEST_F(BackgroundModeManagerTest, 327 TEST_F(BackgroundModeManagerTest,
305 BackgroundModeDisabledPreventsKeepAliveOnStartup) { 328 BackgroundModeDisabledPreventsKeepAliveOnStartup) {
306 TestingProfile* profile1 = profile_manager_.CreateTestingProfile("p1"); 329 TestingProfile* profile1 = profile_manager_.CreateTestingProfile("p1");
307 command_line_->AppendSwitch(switches::kKeepAliveForTest); 330 command_line_->AppendSwitch(switches::kKeepAliveForTest);
308 TestBackgroundModeManager manager( 331 TestBackgroundModeManager manager(
309 command_line_.get(), profile_manager_.profile_info_cache(), false); 332 command_line_.get(), profile_manager_.profile_info_cache(), false);
310 manager.RegisterProfile(profile1); 333 manager.RegisterProfile(profile1);
311 EXPECT_FALSE(manager.ShouldBeInBackgroundMode()); 334 EXPECT_FALSE(manager.ShouldBeInBackgroundMode());
312 } 335 }
OLDNEW
« no previous file with comments | « chrome/browser/background/background_mode_manager.cc ('k') | chrome/browser/chromeos/app_mode/kiosk_app_update_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698