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

Unified Diff: chrome/browser/policy/mock_device_management_service.cc

Issue 10449071: Enable user policy handling through the new cloud policy stack. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 8 years, 7 months 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698