Chromium Code Reviews| Index: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc |
| diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc |
| index 82f36272d94bc20b567401a71847a22d83987d89..bf63ea0d02efafac898edc5f24de6874204cc28e 100644 |
| --- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc |
| +++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc |
| @@ -20,6 +20,7 @@ |
| #include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h" |
| #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" |
| #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" |
| +#include "chrome/browser/chromeos/policy/fake_consumer_management_service.h" |
|
bartfab (slow)
2014/12/15 15:35:50
Nit: No longer used.
davidyu
2014/12/26 08:17:19
Done.
|
| #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" |
| #include "chrome/browser/chromeos/settings/cros_settings.h" |
| #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" |
| @@ -38,6 +39,7 @@ |
| #include "chromeos/system/statistics_provider.h" |
| #include "components/policy/core/common/cloud/cloud_policy_client.h" |
| #include "components/policy/core/common/cloud/cloud_policy_constants.h" |
| +#include "components/policy/core/common/cloud/cloud_policy_core.h" |
| #include "components/policy/core/common/cloud/mock_device_management_service.h" |
| #include "components/policy/core/common/external_data_fetcher.h" |
| #include "components/policy/core/common/schema_registry.h" |
| @@ -196,6 +198,7 @@ class DeviceCloudPolicyManagerChromeOSTest |
| } |
| MOCK_METHOD0(OnDeviceCloudPolicyManagerConnected, void()); |
| + MOCK_METHOD0(OnDeviceCloudPolicyManagerDisconnected, void()); |
| scoped_ptr<EnterpriseInstallAttributes> install_attributes_; |
| @@ -325,19 +328,28 @@ TEST_F(DeviceCloudPolicyManagerChromeOSTest, ConsumerDevice) { |
| EXPECT_TRUE(manager_->policies().Equals(bundle)); |
| } |
| -TEST_F(DeviceCloudPolicyManagerChromeOSTest, ObserverIsNotifiedOnConnected) { |
| +TEST_F(DeviceCloudPolicyManagerChromeOSTest, ConnectAndDisconnect) { |
| LockDevice(); |
| FlushDeviceSettings(); |
| + EXPECT_FALSE(manager_->core()->service()); // Not connected. |
| + // Connect the manager. |
| MockDeviceManagementJob* policy_fetch_job = nullptr; |
| EXPECT_CALL(device_management_service_, |
| CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH, _)) |
| .WillOnce(device_management_service_.CreateAsyncJob(&policy_fetch_job)); |
| EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)); |
| EXPECT_CALL(*this, OnDeviceCloudPolicyManagerConnected()); |
| - |
| ConnectManager(); |
| base::RunLoop().RunUntilIdle(); |
| + Mock::VerifyAndClearExpectations(&device_management_service_); |
| + Mock::VerifyAndClearExpectations(this); |
| + EXPECT_TRUE(manager_->core()->service()); // Connected. |
| + |
| + // Disconnect the manager. |
| + EXPECT_CALL(*this, OnDeviceCloudPolicyManagerDisconnected()); |
| + manager_->Disconnect(); |
| + EXPECT_FALSE(manager_->core()->service()); // Not connnected. |
| } |
| class DeviceCloudPolicyManagerChromeOSEnrollmentTest |
| @@ -348,6 +360,8 @@ class DeviceCloudPolicyManagerChromeOSEnrollmentTest |
| done_ = true; |
| } |
| + MOCK_METHOD1(OnUnregistered, void(bool)); |
| + |
| protected: |
| DeviceCloudPolicyManagerChromeOSEnrollmentTest() |
| : management_mode_(MANAGEMENT_MODE_ENTERPRISE_MANAGED), |
| @@ -659,6 +673,44 @@ TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, |
| ExpectSuccessfulEnrollment(); |
| } |
| +TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, UnregisterSucceeds) { |
| + // Enroll first. |
| + RunTest(); |
| + ExpectSuccessfulEnrollment(); |
| + |
| + // Set up mock objects for the upcoming unregistration job. |
| + em::DeviceManagementResponse response; |
| + response.mutable_unregister_response(); |
| + EXPECT_CALL(device_management_service_, |
| + CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION, _)) |
| + .WillOnce(device_management_service_.SucceedJob(response)); |
| + EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)); |
| + EXPECT_CALL(*this, OnUnregistered(true)); |
| + |
| + // Start unregistering. |
| + manager_->Unregister(base::Bind( |
| + &DeviceCloudPolicyManagerChromeOSEnrollmentTest::OnUnregistered, |
| + base::Unretained(this))); |
| +} |
| + |
| +TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, UnregisterFails) { |
| + // Enroll first. |
| + RunTest(); |
| + ExpectSuccessfulEnrollment(); |
| + |
| + // Set up mock objects for the upcoming unregistration job. |
| + EXPECT_CALL(device_management_service_, |
| + CreateJob(DeviceManagementRequestJob::TYPE_UNREGISTRATION, _)) |
| + .WillOnce(device_management_service_.FailJob(DM_STATUS_REQUEST_FAILED)); |
| + EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)); |
| + EXPECT_CALL(*this, OnUnregistered(false)); |
| + |
| + // Start unregistering. |
| + manager_->Unregister(base::Bind( |
| + &DeviceCloudPolicyManagerChromeOSEnrollmentTest::OnUnregistered, |
| + base::Unretained(this))); |
| +} |
| + |
| // A subclass that runs with a blank system salt. |
| class DeviceCloudPolicyManagerChromeOSEnrollmentBlankSystemSaltTest |
| : public DeviceCloudPolicyManagerChromeOSEnrollmentTest { |