OLD | NEW |
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/bind.h" | 5 #include "base/bind.h" |
6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
7 #include "base/process_util.h" | 7 #include "base/process_util.h" |
8 #include "base/test/test_timeouts.h" | 8 #include "base/test/test_timeouts.h" |
9 #include "chrome/browser/service/service_process_control.h" | 9 #include "chrome/browser/service/service_process_control.h" |
10 #include "chrome/browser/ui/browser.h" | 10 #include "chrome/browser/ui/browser.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 }; | 94 }; |
95 | 95 |
96 // They way that the IPC is implemented only works on windows. This has to | 96 // They way that the IPC is implemented only works on windows. This has to |
97 // change when we implement a different scheme for IPC. | 97 // change when we implement a different scheme for IPC. |
98 // Times out flakily, http://crbug.com/70076. | 98 // Times out flakily, http://crbug.com/70076. |
99 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, | 99 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, |
100 DISABLED_LaunchAndIPC) { | 100 DISABLED_LaunchAndIPC) { |
101 LaunchServiceProcessControl(); | 101 LaunchServiceProcessControl(); |
102 | 102 |
103 // Make sure we are connected to the service process. | 103 // Make sure we are connected to the service process. |
104 EXPECT_TRUE(ServiceProcessControl::GetInstance()->is_connected()); | 104 EXPECT_TRUE(ServiceProcessControl::GetInstance()->IsConnected()); |
105 SendRequestAndWait(); | 105 SendRequestAndWait(); |
106 | 106 |
107 // And then shutdown the service process. | 107 // And then shutdown the service process. |
108 EXPECT_TRUE(ServiceProcessControl::GetInstance()->Shutdown()); | 108 EXPECT_TRUE(ServiceProcessControl::GetInstance()->Shutdown()); |
109 } | 109 } |
110 | 110 |
111 // This tests the case when a service process is launched when the browser | 111 // This tests the case when a service process is launched when the browser |
112 // starts but we try to launch it again while setting up Cloud Print. | 112 // starts but we try to launch it again while setting up Cloud Print. |
113 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, LaunchTwice) { | 113 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, LaunchTwice) { |
114 // Launch the service process the first time. | 114 // Launch the service process the first time. |
115 LaunchServiceProcessControl(); | 115 LaunchServiceProcessControl(); |
116 | 116 |
117 // Make sure we are connected to the service process. | 117 // Make sure we are connected to the service process. |
118 EXPECT_TRUE(ServiceProcessControl::GetInstance()->is_connected()); | 118 EXPECT_TRUE(ServiceProcessControl::GetInstance()->IsConnected()); |
119 SendRequestAndWait(); | 119 SendRequestAndWait(); |
120 | 120 |
121 // Launch the service process again. | 121 // Launch the service process again. |
122 LaunchServiceProcessControl(); | 122 LaunchServiceProcessControl(); |
123 EXPECT_TRUE(ServiceProcessControl::GetInstance()->is_connected()); | 123 EXPECT_TRUE(ServiceProcessControl::GetInstance()->IsConnected()); |
124 SendRequestAndWait(); | 124 SendRequestAndWait(); |
125 | 125 |
126 // And then shutdown the service process. | 126 // And then shutdown the service process. |
127 EXPECT_TRUE(ServiceProcessControl::GetInstance()->Shutdown()); | 127 EXPECT_TRUE(ServiceProcessControl::GetInstance()->Shutdown()); |
128 } | 128 } |
129 | 129 |
130 static void DecrementUntilZero(int* count) { | 130 static void DecrementUntilZero(int* count) { |
131 (*count)--; | 131 (*count)--; |
132 if (!(*count)) | 132 if (!(*count)) |
133 MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask()); | 133 MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask()); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 EXPECT_TRUE(process->Shutdown()); | 167 EXPECT_TRUE(process->Shutdown()); |
168 } | 168 } |
169 | 169 |
170 // Tests whether disconnecting from the service IPC causes the service process | 170 // Tests whether disconnecting from the service IPC causes the service process |
171 // to die. | 171 // to die. |
172 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, | 172 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, |
173 DieOnDisconnect) { | 173 DieOnDisconnect) { |
174 // Launch the service process. | 174 // Launch the service process. |
175 LaunchServiceProcessControl(); | 175 LaunchServiceProcessControl(); |
176 // Make sure we are connected to the service process. | 176 // Make sure we are connected to the service process. |
177 EXPECT_TRUE(ServiceProcessControl::GetInstance()->is_connected()); | 177 EXPECT_TRUE(ServiceProcessControl::GetInstance()->IsConnected()); |
178 Disconnect(); | 178 Disconnect(); |
179 WaitForShutdown(); | 179 WaitForShutdown(); |
180 } | 180 } |
181 | 181 |
182 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, | 182 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, |
183 ForceShutdown) { | 183 ForceShutdown) { |
184 // Launch the service process. | 184 // Launch the service process. |
185 LaunchServiceProcessControl(); | 185 LaunchServiceProcessControl(); |
186 // Make sure we are connected to the service process. | 186 // Make sure we are connected to the service process. |
187 EXPECT_TRUE(ServiceProcessControl::GetInstance()->is_connected()); | 187 EXPECT_TRUE(ServiceProcessControl::GetInstance()->IsConnected()); |
188 base::ProcessId service_pid; | 188 base::ProcessId service_pid; |
189 EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid)); | 189 EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid)); |
190 EXPECT_NE(static_cast<base::ProcessId>(0), service_pid); | 190 EXPECT_NE(static_cast<base::ProcessId>(0), service_pid); |
191 chrome::VersionInfo version_info; | 191 chrome::VersionInfo version_info; |
192 ForceServiceProcessShutdown(version_info.Version(), service_pid); | 192 ForceServiceProcessShutdown(version_info.Version(), service_pid); |
193 WaitForShutdown(); | 193 WaitForShutdown(); |
194 } | 194 } |
195 | 195 |
196 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, CheckPid) { | 196 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, CheckPid) { |
197 base::ProcessId service_pid; | 197 base::ProcessId service_pid; |
198 EXPECT_FALSE(GetServiceProcessData(NULL, &service_pid)); | 198 EXPECT_FALSE(GetServiceProcessData(NULL, &service_pid)); |
199 // Launch the service process. | 199 // Launch the service process. |
200 LaunchServiceProcessControl(); | 200 LaunchServiceProcessControl(); |
201 EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid)); | 201 EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid)); |
202 EXPECT_NE(static_cast<base::ProcessId>(0), service_pid); | 202 EXPECT_NE(static_cast<base::ProcessId>(0), service_pid); |
203 // Disconnect from service process. | 203 // Disconnect from service process. |
204 ServiceProcessControl::GetInstance()->Disconnect(); | 204 ServiceProcessControl::GetInstance()->Disconnect(); |
205 } | 205 } |
206 | 206 |
207 DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControlBrowserTest); | 207 DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControlBrowserTest); |
OLD | NEW |