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

Side by Side Diff: chrome/browser/service/service_process_control_browsertest.cc

Issue 5685007: Rename all methods accessing Singleton<T> as GetInstance(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 10 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/process_util.h" 5 #include "base/process_util.h"
6 #include "base/test/test_timeouts.h" 6 #include "base/test/test_timeouts.h"
7 #include "chrome/browser/service/service_process_control.h" 7 #include "chrome/browser/service/service_process_control.h"
8 #include "chrome/browser/service/service_process_control_manager.h" 8 #include "chrome/browser/service/service_process_control_manager.h"
9 #include "chrome/browser/ui/browser.h" 9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/common/chrome_version_info.h" 10 #include "chrome/common/chrome_version_info.h"
11 #include "chrome/common/service_process_util.h" 11 #include "chrome/common/service_process_util.h"
12 #include "chrome/test/in_process_browser_test.h" 12 #include "chrome/test/in_process_browser_test.h"
13 #include "chrome/test/ui_test_utils.h" 13 #include "chrome/test/ui_test_utils.h"
14 14
15 class ServiceProcessControlBrowserTest 15 class ServiceProcessControlBrowserTest
16 : public InProcessBrowserTest, 16 : public InProcessBrowserTest,
17 public ServiceProcessControl::MessageHandler { 17 public ServiceProcessControl::MessageHandler {
18 public: 18 public:
19 ServiceProcessControlBrowserTest() 19 ServiceProcessControlBrowserTest()
20 : service_process_handle_(base::kNullProcessHandle) { 20 : service_process_handle_(base::kNullProcessHandle) {
21 } 21 }
22 ~ServiceProcessControlBrowserTest() { 22 ~ServiceProcessControlBrowserTest() {
23 base::CloseProcessHandle(service_process_handle_); 23 base::CloseProcessHandle(service_process_handle_);
24 service_process_handle_ = base::kNullProcessHandle; 24 service_process_handle_ = base::kNullProcessHandle;
25 // Delete all instances of ServiceProcessControl. 25 // Delete all instances of ServiceProcessControl.
26 ServiceProcessControlManager::instance()->Shutdown(); 26 ServiceProcessControlManager::GetInstance()->Shutdown();
27 } 27 }
28 28
29 protected: 29 protected:
30 void LaunchServiceProcessControl() { 30 void LaunchServiceProcessControl() {
31 ServiceProcessControl* process = 31 ServiceProcessControl* process =
32 ServiceProcessControlManager::instance()->GetProcessControl( 32 ServiceProcessControlManager::GetInstance()->GetProcessControl(
33 browser()->profile()); 33 browser()->profile());
34 process_ = process; 34 process_ = process;
35 35
36 // Launch the process asynchronously. 36 // Launch the process asynchronously.
37 process->Launch( 37 process->Launch(
38 NewRunnableMethod( 38 NewRunnableMethod(
39 this, 39 this,
40 &ServiceProcessControlBrowserTest::ProcessControlLaunched), 40 &ServiceProcessControlBrowserTest::ProcessControlLaunched),
41 NewRunnableMethod( 41 NewRunnableMethod(
42 this, 42 this,
43 &ServiceProcessControlBrowserTest::ProcessControlLaunchFailed)); 43 &ServiceProcessControlBrowserTest::ProcessControlLaunchFailed));
44 44
45 // Then run the message loop to keep things running. 45 // Then run the message loop to keep things running.
46 ui_test_utils::RunMessageLoop(); 46 ui_test_utils::RunMessageLoop();
47 } 47 }
48 48
49 void SayHelloAndWait() { 49 void SayHelloAndWait() {
50 // Send a hello message to the service process and wait for a reply. 50 // Send a hello message to the service process and wait for a reply.
51 process()->SendHello(); 51 process()->SendHello();
52 ui_test_utils::RunMessageLoop(); 52 ui_test_utils::RunMessageLoop();
53 } 53 }
54 54
55 void Disconnect() { 55 void Disconnect() {
56 // This will delete all instances of ServiceProcessControl and close the IPC 56 // This will delete all instances of ServiceProcessControl and close the IPC
57 // connections. 57 // connections.
58 ServiceProcessControlManager::instance()->Shutdown(); 58 ServiceProcessControlManager::GetInstance()->Shutdown();
59 process_ = NULL; 59 process_ = NULL;
60 } 60 }
61 61
62 void WaitForShutdown() { 62 void WaitForShutdown() {
63 EXPECT_TRUE(base::WaitForSingleProcess( 63 EXPECT_TRUE(base::WaitForSingleProcess(
64 service_process_handle_, 64 service_process_handle_,
65 TestTimeouts::wait_for_terminate_timeout_ms())); 65 TestTimeouts::wait_for_terminate_timeout_ms()));
66 } 66 }
67 67
68 void ProcessControlLaunched() { 68 void ProcessControlLaunched() {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 static void DecrementUntilZero(int* count) { 133 static void DecrementUntilZero(int* count) {
134 (*count)--; 134 (*count)--;
135 if (!(*count)) 135 if (!(*count))
136 MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask()); 136 MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask());
137 } 137 }
138 138
139 // Invoke multiple Launch calls in succession and ensure that all the tasks 139 // Invoke multiple Launch calls in succession and ensure that all the tasks
140 // get invoked. 140 // get invoked.
141 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, MultipleLaunchTasks) { 141 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, MultipleLaunchTasks) {
142 ServiceProcessControl* process = 142 ServiceProcessControl* process =
143 ServiceProcessControlManager::instance()->GetProcessControl( 143 ServiceProcessControlManager::GetInstance()->GetProcessControl(
144 browser()->profile()); 144 browser()->profile());
145 int launch_count = 5; 145 int launch_count = 5;
146 for (int i = 0; i < launch_count; i++) { 146 for (int i = 0; i < launch_count; i++) {
147 // Launch the process asynchronously. 147 // Launch the process asynchronously.
148 process->Launch( 148 process->Launch(
149 NewRunnableFunction(&DecrementUntilZero, &launch_count), 149 NewRunnableFunction(&DecrementUntilZero, &launch_count),
150 new MessageLoop::QuitTask()); 150 new MessageLoop::QuitTask());
151 } 151 }
152 // Then run the message loop to keep things running. 152 // Then run the message loop to keep things running.
153 ui_test_utils::RunMessageLoop(); 153 ui_test_utils::RunMessageLoop();
154 EXPECT_EQ(0, launch_count); 154 EXPECT_EQ(0, launch_count);
155 // And then shutdown the service process. 155 // And then shutdown the service process.
156 EXPECT_TRUE(process->Shutdown()); 156 EXPECT_TRUE(process->Shutdown());
157 } 157 }
158 158
159 // Make sure using the same task for success and failure tasks works. 159 // Make sure using the same task for success and failure tasks works.
160 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, SameLaunchTask) { 160 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, SameLaunchTask) {
161 ServiceProcessControl* process = 161 ServiceProcessControl* process =
162 ServiceProcessControlManager::instance()->GetProcessControl( 162 ServiceProcessControlManager::GetInstance()->GetProcessControl(
163 browser()->profile()); 163 browser()->profile());
164 int launch_count = 5; 164 int launch_count = 5;
165 for (int i = 0; i < launch_count; i++) { 165 for (int i = 0; i < launch_count; i++) {
166 // Launch the process asynchronously. 166 // Launch the process asynchronously.
167 Task * task = NewRunnableFunction(&DecrementUntilZero, &launch_count); 167 Task * task = NewRunnableFunction(&DecrementUntilZero, &launch_count);
168 process->Launch(task, task); 168 process->Launch(task, task);
169 } 169 }
170 // Then run the message loop to keep things running. 170 // Then run the message loop to keep things running.
171 ui_test_utils::RunMessageLoop(); 171 ui_test_utils::RunMessageLoop();
172 EXPECT_EQ(0, launch_count); 172 EXPECT_EQ(0, launch_count);
(...skipping 25 matching lines...) Expand all
198 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, CheckPid) { 198 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, CheckPid) {
199 EXPECT_EQ(0, GetServiceProcessPid()); 199 EXPECT_EQ(0, GetServiceProcessPid());
200 // Launch the service process. 200 // Launch the service process.
201 LaunchServiceProcessControl(); 201 LaunchServiceProcessControl();
202 EXPECT_NE(static_cast<base::ProcessId>(0), GetServiceProcessPid()); 202 EXPECT_NE(static_cast<base::ProcessId>(0), GetServiceProcessPid());
203 } 203 }
204 204
205 #endif 205 #endif
206 206
207 DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControlBrowserTest); 207 DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControlBrowserTest);
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/resource_message_filter.cc ('k') | chrome/browser/service/service_process_control_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698