| Index: components/policy/core/common/cloud/cloud_policy_client_unittest.cc
|
| diff --git a/components/policy/core/common/cloud/cloud_policy_client_unittest.cc b/components/policy/core/common/cloud/cloud_policy_client_unittest.cc
|
| index 97393cfc10353826ccf0e9eaa997cdc31bc68291..f209e1a6686f6d923e45db0345fb004421e7bffd 100644
|
| --- a/components/policy/core/common/cloud/cloud_policy_client_unittest.cc
|
| +++ b/components/policy/core/common/cloud/cloud_policy_client_unittest.cc
|
| @@ -41,28 +41,15 @@ const char kDeviceCertificate[] = "fake-device-certificate";
|
| const char kRequisition[] = "fake-requisition";
|
| const char kStateKey[] = "fake-state-key";
|
|
|
| -class MockStatusProvider : public CloudPolicyClient::StatusProvider {
|
| - public:
|
| - MockStatusProvider() {}
|
| - virtual ~MockStatusProvider() {}
|
| -
|
| - MOCK_METHOD1(GetDeviceStatus, bool(em::DeviceStatusReportRequest* status));
|
| - MOCK_METHOD1(GetSessionStatus, bool(em::SessionStatusReportRequest* status));
|
| - MOCK_METHOD0(OnSubmittedSuccessfully, void(void));
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockStatusProvider);
|
| -};
|
| -
|
| MATCHER_P(MatchProto, expected, "matches protobuf") {
|
| return arg.SerializePartialAsString() == expected.SerializePartialAsString();
|
| }
|
|
|
| -// A mock class to allow us to set expectations on upload certificate callbacks.
|
| -class MockUploadCertificateObserver {
|
| +// A mock class to allow us to set expectations on upload callbacks.
|
| +class MockUploadObserver {
|
| public:
|
| - MockUploadCertificateObserver() {}
|
| - virtual ~MockUploadCertificateObserver() {}
|
| + MockUploadObserver() {}
|
| + virtual ~MockUploadObserver() {}
|
|
|
| MOCK_METHOD1(OnUploadComplete, void(bool));
|
| };
|
| @@ -97,14 +84,13 @@ class CloudPolicyClientTest : public testing::Test {
|
| upload_certificate_request_.mutable_cert_upload_request()->
|
| set_device_certificate(kDeviceCertificate);
|
| upload_certificate_response_.mutable_cert_upload_response();
|
| +
|
| + upload_status_request_.mutable_device_status_report_request();
|
| + upload_status_request_.mutable_session_status_report_request();
|
| }
|
|
|
| virtual void SetUp() override {
|
| CreateClient(USER_AFFILIATION_NONE);
|
| - EXPECT_CALL(*status_provider_, GetDeviceStatus(_))
|
| - .WillRepeatedly(Return(false));
|
| - EXPECT_CALL(*status_provider_, GetSessionStatus(_))
|
| - .WillRepeatedly(Return(false));
|
| }
|
|
|
| virtual void TearDown() override {
|
| @@ -127,10 +113,6 @@ class CloudPolicyClientTest : public testing::Test {
|
| user_affiliation,
|
| &service_,
|
| request_context_));
|
| - scoped_ptr<StrictMock<MockStatusProvider> > status_provider =
|
| - make_scoped_ptr(new StrictMock<MockStatusProvider>());
|
| - status_provider_ = status_provider.get();
|
| - client_->SetStatusProvider(status_provider.Pass());
|
| client_->AddPolicyTypeToFetch(policy_type_, std::string());
|
| client_->AddObserver(&observer_);
|
| }
|
| @@ -181,6 +163,17 @@ class CloudPolicyClientTest : public testing::Test {
|
| client_id_, MatchProto(upload_certificate_request_)));
|
| }
|
|
|
| + void ExpectUploadStatus() {
|
| + EXPECT_CALL(service_,
|
| + CreateJob(DeviceManagementRequestJob::TYPE_UPLOAD_STATUS,
|
| + request_context_))
|
| + .WillOnce(service_.SucceedJob(upload_status_response_));
|
| + EXPECT_CALL(service_,
|
| + StartJob(dm_protocol::kValueRequestUploadStatus,
|
| + std::string(), std::string(), kDMToken, std::string(),
|
| + client_id_, MatchProto(upload_status_request_)));
|
| + }
|
| +
|
| void CheckPolicyResponse() {
|
| ASSERT_TRUE(client_->GetPolicyFor(policy_type_, std::string()));
|
| EXPECT_THAT(*client_->GetPolicyFor(policy_type_, std::string()),
|
| @@ -199,21 +192,21 @@ class CloudPolicyClientTest : public testing::Test {
|
| em::DeviceManagementRequest policy_request_;
|
| em::DeviceManagementRequest unregistration_request_;
|
| em::DeviceManagementRequest upload_certificate_request_;
|
| + em::DeviceManagementRequest upload_status_request_;
|
|
|
| // Protobufs used in successful responses.
|
| em::DeviceManagementResponse registration_response_;
|
| em::DeviceManagementResponse policy_response_;
|
| em::DeviceManagementResponse unregistration_response_;
|
| em::DeviceManagementResponse upload_certificate_response_;
|
| + em::DeviceManagementResponse upload_status_response_;
|
|
|
| base::MessageLoop loop_;
|
| std::string client_id_;
|
| std::string policy_type_;
|
| MockDeviceManagementService service_;
|
| - // Weak pointer to StatusProvider - actual object is owned by client_.
|
| - StrictMock<MockStatusProvider>* status_provider_;
|
| StrictMock<MockCloudPolicyClientObserver> observer_;
|
| - StrictMock<MockUploadCertificateObserver> upload_certificate_observer_;
|
| + StrictMock<MockUploadObserver> upload_observer_;
|
| scoped_ptr<CloudPolicyClient> client_;
|
| // Pointer to the client's request context.
|
| scoped_refptr<net::URLRequestContextGetter> request_context_;
|
| @@ -235,7 +228,6 @@ TEST_F(CloudPolicyClientTest, SetupRegistrationAndPolicyFetch) {
|
|
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| CheckPolicyResponse();
|
| @@ -253,7 +245,6 @@ TEST_F(CloudPolicyClientTest, RegistrationAndPolicyFetch) {
|
|
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| CheckPolicyResponse();
|
| @@ -345,7 +336,6 @@ TEST_F(CloudPolicyClientTest, PolicyUpdate) {
|
|
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| CheckPolicyResponse();
|
|
|
| @@ -354,7 +344,6 @@ TEST_F(CloudPolicyClientTest, PolicyUpdate) {
|
| CreatePolicyData("updated-fake-policy-data"));
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| CheckPolicyResponse();
|
| @@ -377,7 +366,6 @@ TEST_F(CloudPolicyClientTest, PolicyFetchWithMetaData) {
|
|
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| CheckPolicyResponse();
|
| }
|
| @@ -395,7 +383,6 @@ TEST_F(CloudPolicyClientTest, PolicyFetchWithInvalidation) {
|
|
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| CheckPolicyResponse();
|
| EXPECT_EQ(12345, client_->fetched_invalidation_version());
|
| @@ -410,7 +397,6 @@ TEST_F(CloudPolicyClientTest, PolicyFetchWithInvalidationNoPayload) {
|
|
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| CheckPolicyResponse();
|
| EXPECT_EQ(-12345, client_->fetched_invalidation_version());
|
| @@ -432,7 +418,6 @@ TEST_F(CloudPolicyClientTest, BadPolicyResponse) {
|
| CreatePolicyData("excess-fake-policy-data"));
|
| ExpectPolicyFetch(kDMToken, dm_protocol::kValueUserAffiliationNone);
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->FetchPolicy();
|
| EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| CheckPolicyResponse();
|
| @@ -447,7 +432,6 @@ TEST_F(CloudPolicyClientTest, PolicyRequestFailure) {
|
| .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED));
|
| EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _));
|
| EXPECT_CALL(observer_, OnClientError(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully()).Times(0);
|
| client_->FetchPolicy();
|
| EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status());
|
| EXPECT_FALSE(client_->GetPolicyFor(policy_type_, std::string()));
|
| @@ -534,7 +518,6 @@ TEST_F(CloudPolicyClientTest, PolicyFetchWithExtensionPolicy) {
|
| kDMToken, dm_protocol::kValueUserAffiliationNone, client_id_, _))
|
| .WillOnce(SaveArg<6>(&policy_request_));
|
| EXPECT_CALL(observer_, OnPolicyFetched(_));
|
| - EXPECT_CALL(*status_provider_, OnSubmittedSuccessfully());
|
| client_->AddPolicyTypeToFetch(dm_protocol::kChromeExtensionPolicyType,
|
| std::string());
|
| client_->FetchPolicy();
|
| @@ -568,10 +551,10 @@ TEST_F(CloudPolicyClientTest, UploadCertificate) {
|
| Register();
|
|
|
| ExpectUploadCertificate();
|
| - EXPECT_CALL(upload_certificate_observer_, OnUploadComplete(true)).Times(1);
|
| + EXPECT_CALL(upload_observer_, OnUploadComplete(true)).Times(1);
|
| CloudPolicyClient::StatusCallback callback = base::Bind(
|
| - &MockUploadCertificateObserver::OnUploadComplete,
|
| - base::Unretained(&upload_certificate_observer_));
|
| + &MockUploadObserver::OnUploadComplete,
|
| + base::Unretained(&upload_observer_));
|
| client_->UploadCertificate(kDeviceCertificate, callback);
|
| EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| }
|
| @@ -581,10 +564,10 @@ TEST_F(CloudPolicyClientTest, UploadCertificateEmpty) {
|
|
|
| upload_certificate_response_.clear_cert_upload_response();
|
| ExpectUploadCertificate();
|
| - EXPECT_CALL(upload_certificate_observer_, OnUploadComplete(false)).Times(1);
|
| + EXPECT_CALL(upload_observer_, OnUploadComplete(false)).Times(1);
|
| CloudPolicyClient::StatusCallback callback = base::Bind(
|
| - &MockUploadCertificateObserver::OnUploadComplete,
|
| - base::Unretained(&upload_certificate_observer_));
|
| + &MockUploadObserver::OnUploadComplete,
|
| + base::Unretained(&upload_observer_));
|
| client_->UploadCertificate(kDeviceCertificate, callback);
|
| EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| }
|
| @@ -592,7 +575,7 @@ TEST_F(CloudPolicyClientTest, UploadCertificateEmpty) {
|
| TEST_F(CloudPolicyClientTest, UploadCertificateFailure) {
|
| Register();
|
|
|
| - EXPECT_CALL(upload_certificate_observer_, OnUploadComplete(false)).Times(1);
|
| + EXPECT_CALL(upload_observer_, OnUploadComplete(false)).Times(1);
|
| EXPECT_CALL(service_,
|
| CreateJob(DeviceManagementRequestJob::TYPE_UPLOAD_CERTIFICATE,
|
| request_context_))
|
| @@ -600,10 +583,44 @@ TEST_F(CloudPolicyClientTest, UploadCertificateFailure) {
|
| EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _));
|
| EXPECT_CALL(observer_, OnClientError(_));
|
| CloudPolicyClient::StatusCallback callback = base::Bind(
|
| - &MockUploadCertificateObserver::OnUploadComplete,
|
| - base::Unretained(&upload_certificate_observer_));
|
| + &MockUploadObserver::OnUploadComplete,
|
| + base::Unretained(&upload_observer_));
|
| client_->UploadCertificate(kDeviceCertificate, callback);
|
| EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status());
|
| }
|
|
|
| +TEST_F(CloudPolicyClientTest, UploadStatus) {
|
| + Register();
|
| +
|
| + ExpectUploadStatus();
|
| + EXPECT_CALL(upload_observer_, OnUploadComplete(true)).Times(1);
|
| + CloudPolicyClient::StatusCallback callback = base::Bind(
|
| + &MockUploadObserver::OnUploadComplete,
|
| + base::Unretained(&upload_observer_));
|
| + em::DeviceStatusReportRequest device_status;
|
| + em::SessionStatusReportRequest session_status;
|
| + client_->UploadDeviceStatus(&device_status, &session_status, callback);
|
| + EXPECT_EQ(DM_STATUS_SUCCESS, client_->status());
|
| +}
|
| +
|
| +TEST_F(CloudPolicyClientTest, UploadStatusFailure) {
|
| + Register();
|
| +
|
| + EXPECT_CALL(upload_observer_, OnUploadComplete(false)).Times(1);
|
| + EXPECT_CALL(service_,
|
| + CreateJob(DeviceManagementRequestJob::TYPE_UPLOAD_STATUS,
|
| + request_context_))
|
| + .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED));
|
| + EXPECT_CALL(service_, StartJob(_, _, _, _, _, _, _));
|
| + EXPECT_CALL(observer_, OnClientError(_));
|
| + CloudPolicyClient::StatusCallback callback = base::Bind(
|
| + &MockUploadObserver::OnUploadComplete,
|
| + base::Unretained(&upload_observer_));
|
| +
|
| + em::DeviceStatusReportRequest device_status;
|
| + em::SessionStatusReportRequest session_status;
|
| + client_->UploadDeviceStatus(&device_status, &session_status, callback);
|
| + EXPECT_EQ(DM_STATUS_REQUEST_FAILED, client_->status());
|
| +}
|
| +
|
| } // namespace policy
|
|
|