blob: 7442f1758e82976c0d8298d5571c1a5b1a5edd7b [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_MOCK_CLOUD_POLICY_CLIENT_H_
#define COMPONENTS_POLICY_CORE_COMMON_CLOUD_MOCK_CLOUD_POLICY_CLIENT_H_
#include <stdint.h>
#include <string>
#include "base/threading/thread_task_runner_handle.h"
#include "components/policy/core/common/cloud/cloud_policy_client.h"
#include "components/policy/core/common/cloud/device_management_service.h"
#include "components/reporting/proto/synced/record.pb.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace network {
class SharedURLLoaderFactory;
}
namespace policy {
ACTION_P(ScheduleStatusCallback, status) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::BindOnce(std::move(arg0), status));
}
class MockCloudPolicyClient : public CloudPolicyClient {
public:
MockCloudPolicyClient();
explicit MockCloudPolicyClient(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
explicit MockCloudPolicyClient(DeviceManagementService* service);
MockCloudPolicyClient(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
DeviceManagementService* service);
MockCloudPolicyClient(const MockCloudPolicyClient&) = delete;
MockCloudPolicyClient& operator=(const MockCloudPolicyClient&) = delete;
~MockCloudPolicyClient() override;
MOCK_METHOD3(SetupRegistration,
void(const std::string&,
const std::string&,
const std::vector<std::string>&));
MOCK_METHOD3(Register,
void(const RegistrationParameters&,
const std::string&,
const std::string&));
MOCK_METHOD0(FetchPolicy, void(void));
MOCK_METHOD0(Unregister, void(void));
MOCK_METHOD2(UploadEnterpriseMachineCertificate,
void(const std::string&, StatusCallback));
MOCK_METHOD2(UploadEnterpriseEnrollmentCertificate,
void(const std::string&, StatusCallback));
MOCK_METHOD2(UploadEnterpriseEnrollmentId,
void(const std::string&, StatusCallback));
void UploadDeviceStatus(
const enterprise_management::DeviceStatusReportRequest* device_status,
const enterprise_management::SessionStatusReportRequest* session_status,
const enterprise_management::ChildStatusReportRequest* child_status,
StatusCallback callback) override {
UploadDeviceStatus_(device_status, session_status, child_status, callback);
}
MOCK_METHOD4(UploadDeviceStatus_,
void(const enterprise_management::DeviceStatusReportRequest*,
const enterprise_management::SessionStatusReportRequest*,
const enterprise_management::ChildStatusReportRequest*,
StatusCallback&));
MOCK_METHOD0(CancelAppInstallReportUpload, void(void));
MOCK_METHOD0(CancelExtensionInstallReportUpload, void(void));
void UpdateGcmId(const std::string& id, StatusCallback callback) override {
UpdateGcmId_(id, callback);
}
MOCK_METHOD2(UpdateGcmId_, void(const std::string&, StatusCallback&));
MOCK_METHOD4(UploadPolicyValidationReport,
void(CloudPolicyValidatorBase::Status,
const std::vector<ValueValidationIssue>&,
const std::string&,
const std::string&));
void UploadChromeDesktopReport(
std::unique_ptr<enterprise_management::ChromeDesktopReportRequest>
request,
StatusCallback callback) override {
UploadChromeDesktopReportProxy(request.get(), callback);
}
// Use Proxy function because unique_ptr can't be used in mock function.
MOCK_METHOD2(UploadChromeDesktopReportProxy,
void(enterprise_management::ChromeDesktopReportRequest*,
StatusCallback&));
void UploadChromeOsUserReport(
std::unique_ptr<enterprise_management::ChromeOsUserReportRequest> request,
StatusCallback callback) override {
UploadChromeOsUserReportProxy(request.get(), callback);
}
// Use Proxy function because unique_ptr can't be used in mock function.
MOCK_METHOD2(UploadChromeOsUserReportProxy,
void(enterprise_management::ChromeOsUserReportRequest*,
StatusCallback&));
void UploadSecurityEventReport(content::BrowserContext* context,
bool include_device_info,
base::Value value,
StatusCallback callback) override {
UploadSecurityEventReport_(context, include_device_info, value, callback);
}
MOCK_METHOD4(UploadSecurityEventReport_,
void(content::BrowserContext* context,
bool include_device_info,
base::Value&,
StatusCallback&));
MOCK_METHOD3(UploadEncryptedReport,
void(base::Value,
absl::optional<base::Value>,
ResponseCallback));
void UploadAppInstallReport(base::Value value,
StatusCallback callback) override {
UploadAppInstallReport_(value, callback);
}
MOCK_METHOD2(UploadAppInstallReport_, void(base::Value&, StatusCallback&));
void UploadExtensionInstallReport(base::Value value,
StatusCallback callback) override {
UploadExtensionInstallReport_(value, callback);
}
MOCK_METHOD2(UploadExtensionInstallReport_,
void(base::Value&, StatusCallback&));
MOCK_METHOD5(ClientCertProvisioningStartCsr,
void(const std::string& cert_scope,
const std::string& cert_profile_id,
const std::string& cert_profile_version,
const std::string& public_key,
ClientCertProvisioningStartCsrCallback callback));
MOCK_METHOD7(ClientCertProvisioningFinishCsr,
void(const std::string& cert_scope,
const std::string& cert_profile_id,
const std::string& cert_profile_version,
const std::string& public_key,
const std::string& va_challenge_response,
const std::string& signature,
ClientCertProvisioningFinishCsrCallback callback));
MOCK_METHOD5(ClientCertProvisioningDownloadCert,
void(const std::string& cert_scope,
const std::string& cert_profile_id,
const std::string& cert_profile_version,
const std::string& public_key,
ClientCertProvisioningDownloadCertCallback callback));
// Sets the DMToken.
void SetDMToken(const std::string& token);
// Injects policy.
void SetPolicy(const std::string& policy_type,
const std::string& settings_entity_id,
const enterprise_management::PolicyFetchResponse& policy);
// Inject invalidation version.
void SetFetchedInvalidationVersion(int64_t fetched_invalidation_version);
// Sets the status field.
void SetStatus(DeviceManagementStatus status);
// Make the notification helpers public.
using CloudPolicyClient::NotifyClientError;
using CloudPolicyClient::NotifyPolicyFetched;
using CloudPolicyClient::NotifyRegistrationStateChanged;
using CloudPolicyClient::client_id_;
using CloudPolicyClient::dm_token_;
using CloudPolicyClient::fetched_invalidation_version_;
using CloudPolicyClient::invalidation_payload_;
using CloudPolicyClient::invalidation_version_;
using CloudPolicyClient::last_policy_timestamp_;
using CloudPolicyClient::public_key_version_;
using CloudPolicyClient::public_key_version_valid_;
using CloudPolicyClient::types_to_fetch_;
};
class MockCloudPolicyClientObserver : public CloudPolicyClient::Observer {
public:
MockCloudPolicyClientObserver();
MockCloudPolicyClientObserver(const MockCloudPolicyClientObserver&) = delete;
MockCloudPolicyClientObserver& operator=(
const MockCloudPolicyClientObserver&) = delete;
~MockCloudPolicyClientObserver() override;
MOCK_METHOD1(OnPolicyFetched, void(CloudPolicyClient*));
MOCK_METHOD1(OnRegistrationStateChanged, void(CloudPolicyClient*));
MOCK_METHOD1(OnClientError, void(CloudPolicyClient*));
};
} // namespace policy
#endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_MOCK_CLOUD_POLICY_CLIENT_H_