Chromium Code Reviews| Index: chrome/browser/policy/mock_device_management_service.cc |
| diff --git a/chrome/browser/policy/mock_device_management_service.cc b/chrome/browser/policy/mock_device_management_service.cc |
| index 106e4545570e8132c7080d1d4704b1767287f3c7..bcb6e5a9ebb38e6b4d5945b62c9c2e7e8f1f8fc7 100644 |
| --- a/chrome/browser/policy/mock_device_management_service.cc |
| +++ b/chrome/browser/policy/mock_device_management_service.cc |
| @@ -12,18 +12,16 @@ namespace em = enterprise_management; |
| namespace policy { |
| -class MockDeviceManagementRequestJob : public DeviceManagementRequestJob { |
| +namespace { |
| + |
| +// Common mock request job functionality. |
| +class MockRequestJobBase : public DeviceManagementRequestJob { |
| public: |
| - MockDeviceManagementRequestJob( |
| - JobType type, |
| - MockDeviceManagementService* service, |
| - DeviceManagementStatus status, |
| - const enterprise_management::DeviceManagementResponse& response) |
| + MockRequestJobBase(JobType type, |
| + MockDeviceManagementService* service) |
| : DeviceManagementRequestJob(type), |
| - service_(service), |
| - status_(status), |
| - response_(response) {} |
| - virtual ~MockDeviceManagementRequestJob() {} |
| + service_(service) {} |
| + virtual ~MockRequestJobBase() {} |
| protected: |
| virtual void Run() OVERRIDE { |
| @@ -34,7 +32,6 @@ class MockDeviceManagementRequestJob : public DeviceManagementRequestJob { |
| ExtractParameter(dm_protocol::kParamUserAffiliation), |
| ExtractParameter(dm_protocol::kParamDeviceID), |
| request_); |
| - callback_.Run(status_, response_); |
| } |
| private: |
| @@ -51,16 +48,68 @@ class MockDeviceManagementRequestJob : public DeviceManagementRequestJob { |
| } |
| MockDeviceManagementService* service_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MockRequestJobBase); |
| +}; |
| + |
| +// Synchronous mock request job that immediately completes on calling Run(). |
| +class SyncRequestJob : public MockRequestJobBase { |
| + public: |
| + SyncRequestJob(JobType type, |
| + MockDeviceManagementService* service, |
| + DeviceManagementStatus status, |
| + const em::DeviceManagementResponse& response) |
| + : MockRequestJobBase(type, service), |
| + status_(status), |
| + response_(response) {} |
| + virtual ~SyncRequestJob() {} |
| + |
| + protected: |
| + virtual void Run() OVERRIDE { |
| + MockRequestJobBase::Run(); |
| + callback_.Run(status_, response_); |
| + } |
| + |
| + private: |
| DeviceManagementStatus status_; |
| - enterprise_management::DeviceManagementResponse response_; |
| + em::DeviceManagementResponse response_; |
| - DISALLOW_COPY_AND_ASSIGN(MockDeviceManagementRequestJob); |
| + DISALLOW_COPY_AND_ASSIGN(SyncRequestJob); |
| +}; |
| + |
| +// Asynchronous job that allows the test to delay job completion. |
| +class AsyncRequestJob : public MockRequestJobBase, |
| + public MockDeviceManagementJob { |
| + public: |
| + AsyncRequestJob(JobType type, MockDeviceManagementService* service) |
| + : MockRequestJobBase(type, service) {} |
| + virtual ~AsyncRequestJob() {} |
| + |
| + protected: |
| + virtual void SendResponse( |
| + DeviceManagementStatus status, |
| + const em::DeviceManagementResponse& response) OVERRIDE { |
| + callback_.Run(status, response); |
| + } |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(AsyncRequestJob); |
| }; |
| -ACTION_P3(CreateMockDeviceManagementRequestJob, service, status, response) { |
| - return new MockDeviceManagementRequestJob(arg0, service, status, response); |
| } |
|
Joao da Silva
2012/06/01 12:27:47
// namespace
Mattias Nissler (ping if slow)
2012/06/04 17:42:37
Done.
|
| +ACTION_P3(CreateSyncMockDeviceManagementJob, service, status, response) { |
| + return new SyncRequestJob(arg0, service, status, response); |
| +} |
| + |
| +ACTION_P2(CreateAsyncMockDeviceManagementJob, service, mock_job) { |
| + AsyncRequestJob* job = new AsyncRequestJob(arg0, service); |
| + *mock_job = job; |
| + return job; |
| +} |
| + |
| +MockDeviceManagementJob::~MockDeviceManagementJob() {} |
| + |
| MockDeviceManagementService::MockDeviceManagementService() |
| : DeviceManagementService("") {} |
| @@ -68,15 +117,19 @@ MockDeviceManagementService::~MockDeviceManagementService() {} |
| Action<MockDeviceManagementService::CreateJobFunction> |
| MockDeviceManagementService::SucceedJob( |
| - const enterprise_management::DeviceManagementResponse& response) { |
| - return CreateMockDeviceManagementRequestJob(this, DM_STATUS_SUCCESS, |
| - response); |
| + const em::DeviceManagementResponse& response) { |
| + return CreateSyncMockDeviceManagementJob(this, DM_STATUS_SUCCESS, response); |
| } |
| Action<MockDeviceManagementService::CreateJobFunction> |
| MockDeviceManagementService::FailJob(DeviceManagementStatus status) { |
| - const enterprise_management::DeviceManagementResponse dummy_response; |
| - return CreateMockDeviceManagementRequestJob(this, status, dummy_response); |
| + const em::DeviceManagementResponse dummy_response; |
| + return CreateSyncMockDeviceManagementJob(this, status, dummy_response); |
| +} |
| + |
| +Action<MockDeviceManagementService::CreateJobFunction> |
| + MockDeviceManagementService::CreateAsyncJob(MockDeviceManagementJob** job) { |
| + return CreateAsyncMockDeviceManagementJob(this, job); |
| } |
| } // namespace policy |