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

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

Issue 8403015: base::Bind: Convert ServiceProcessControl::CloudPrintProxyInfoHandler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fix. Created 9 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/service/service_process_control.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/bind.h" 5 #include "base/bind.h"
6 #include "base/callback.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"
11 #include "chrome/common/chrome_version_info.h" 11 #include "chrome/common/chrome_version_info.h"
12 #include "chrome/common/service_process_util.h" 12 #include "chrome/common/service_process_util.h"
13 #include "chrome/test/base/in_process_browser_test.h" 13 #include "chrome/test/base/in_process_browser_test.h"
14 #include "chrome/test/base/ui_test_utils.h" 14 #include "chrome/test/base/ui_test_utils.h"
15 15
16 class ServiceProcessControlBrowserTest 16 class ServiceProcessControlBrowserTest
17 : public InProcessBrowserTest { 17 : public InProcessBrowserTest {
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 } 25 }
26 26
27 #if defined(OS_MACOSX) 27 #if defined(OS_MACOSX)
28 virtual void TearDown() { 28 virtual void TearDown() {
29 // ForceServiceProcessShutdown removes the process from launchd on Mac. 29 // ForceServiceProcessShutdown removes the process from launched on Mac.
30 ForceServiceProcessShutdown("", 0); 30 ForceServiceProcessShutdown("", 0);
31 } 31 }
32 #endif // OS_MACOSX 32 #endif // OS_MACOSX
33 33
34 protected: 34 protected:
35 void LaunchServiceProcessControl() { 35 void LaunchServiceProcessControl() {
36 // Launch the process asynchronously. 36 // Launch the process asynchronously.
37 ServiceProcessControl::GetInstance()->Launch( 37 ServiceProcessControl::GetInstance()->Launch(
38 base::Bind(&ServiceProcessControlBrowserTest::ProcessControlLaunched, 38 base::Bind(&ServiceProcessControlBrowserTest::ProcessControlLaunched,
39 this), 39 this),
40 base::Bind( 40 base::Bind(
41 &ServiceProcessControlBrowserTest::ProcessControlLaunchFailed, 41 &ServiceProcessControlBrowserTest::ProcessControlLaunchFailed,
42 this)); 42 this));
43 43
44 // Then run the message loop to keep things running. 44 // Then run the message loop to keep things running.
45 ui_test_utils::RunMessageLoop(); 45 ui_test_utils::RunMessageLoop();
46 } 46 }
47 47
48 // Send a Cloud Print status request and wait for a reply from the service. 48 // Send a Cloud Print status request and wait for a reply from the service.
49 void SendRequestAndWait() { 49 void SendRequestAndWait() {
50 ServiceProcessControl::GetInstance()->GetCloudPrintProxyInfo(NewCallback( 50 ServiceProcessControl::GetInstance()->GetCloudPrintProxyInfo(
51 this, &ServiceProcessControlBrowserTest::CloudPrintInfoCallback)); 51 base::Bind(&ServiceProcessControlBrowserTest::CloudPrintInfoCallback,
52 base::Unretained(this)));
52 ui_test_utils::RunMessageLoop(); 53 ui_test_utils::RunMessageLoop();
53 } 54 }
54 55
55 void CloudPrintInfoCallback( 56 void CloudPrintInfoCallback(
56 const cloud_print::CloudPrintProxyInfo& proxy_info) { 57 const cloud_print::CloudPrintProxyInfo& proxy_info) {
57 MessageLoop::current()->Quit(); 58 MessageLoop::current()->Quit();
58 } 59 }
59 60
60 void Disconnect() { 61 void Disconnect() {
61 // This will close the IPC connection. 62 // This will close the IPC connection.
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 EXPECT_FALSE(GetServiceProcessData(NULL, &service_pid)); 198 EXPECT_FALSE(GetServiceProcessData(NULL, &service_pid));
198 // Launch the service process. 199 // Launch the service process.
199 LaunchServiceProcessControl(); 200 LaunchServiceProcessControl();
200 EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid)); 201 EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid));
201 EXPECT_NE(static_cast<base::ProcessId>(0), service_pid); 202 EXPECT_NE(static_cast<base::ProcessId>(0), service_pid);
202 // Disconnect from service process. 203 // Disconnect from service process.
203 ServiceProcessControl::GetInstance()->Disconnect(); 204 ServiceProcessControl::GetInstance()->Disconnect();
204 } 205 }
205 206
206 DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControlBrowserTest); 207 DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControlBrowserTest);
OLDNEW
« no previous file with comments | « chrome/browser/service/service_process_control.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698