| Index: chrome/browser/policy/mock_device_management_backend.cc
|
| diff --git a/chrome/browser/policy/mock_device_management_backend.cc b/chrome/browser/policy/mock_device_management_backend.cc
|
| index 05d2c3cf8da464b5d1faf2d17250a66e10dad9ed..ca61feb5e26540b09c06b6dd70b8c2d790800511 100644
|
| --- a/chrome/browser/policy/mock_device_management_backend.cc
|
| +++ b/chrome/browser/policy/mock_device_management_backend.cc
|
| @@ -28,7 +28,10 @@ using em::DeviceUnregisterResponse;
|
| using em::DevicePolicyResponse;
|
|
|
| MockDeviceManagementBackend::MockDeviceManagementBackend()
|
| - : DeviceManagementBackend() {
|
| + : DeviceManagementBackend(),
|
| + policy_remaining_fail_count_(0),
|
| + register_remaining_fail_count_(0),
|
| + policy_remaining_success_count_(0) {
|
| policy_setting_ = policy_response_.add_setting();
|
| policy_setting_->set_policy_key("chrome-policy");
|
| policy_setting_->set_watermark("fresh");
|
| @@ -66,6 +69,17 @@ void MockDeviceManagementBackend::UnmanagedDevice() {
|
| &MockDeviceManagementBackend::SimulateUnmanagedRegisterRequest));
|
| }
|
|
|
| +void MockDeviceManagementBackend::RegisterFailsOncePolicyFailsTwice() {
|
| + register_remaining_fail_count_ = 1;
|
| + policy_remaining_fail_count_ = 2;
|
| + AllShouldFail();
|
| +}
|
| +
|
| +void MockDeviceManagementBackend::AllWorksFirstPolicyFailsLater() {
|
| + policy_remaining_success_count_ = 3;
|
| + AllShouldSucceed();
|
| +}
|
| +
|
| void MockDeviceManagementBackend::AddBooleanPolicy(const char* policy_name,
|
| bool value) {
|
| em::GenericSetting* policy_value = policy_setting_->mutable_policy_value();
|
| @@ -93,6 +107,15 @@ void MockDeviceManagementBackend::SimulateSuccessfulPolicyRequest(
|
| const std::string& device_id,
|
| const em::DevicePolicyRequest& request,
|
| DevicePolicyResponseDelegate* delegate) {
|
| + if (policy_remaining_success_count_) {
|
| + policy_remaining_success_count_--;
|
| + if (!policy_remaining_success_count_) {
|
| + ON_CALL(*this, ProcessPolicyRequest(_, _, _, _)).
|
| + WillByDefault(Invoke(
|
| + this,
|
| + &MockDeviceManagementBackend::SimulateFailedPolicyRequest));
|
| + }
|
| + }
|
| delegate->HandlePolicyResponse(policy_response_);
|
| }
|
|
|
| @@ -101,6 +124,14 @@ void MockDeviceManagementBackend::SimulateFailedRegisterRequest(
|
| const std::string& device_id,
|
| const em::DeviceRegisterRequest& request,
|
| DeviceRegisterResponseDelegate* delegate) {
|
| + if (register_remaining_fail_count_) {
|
| + register_remaining_fail_count_--;
|
| + if (!register_remaining_fail_count_) {
|
| + ON_CALL(*this, ProcessRegisterRequest(_, _, _, _)).WillByDefault(Invoke(
|
| + this,
|
| + &MockDeviceManagementBackend::SimulateSuccessfulRegisterRequest));
|
| + }
|
| + }
|
| delegate->OnError(kErrorRequestFailed);
|
| }
|
|
|
| @@ -109,6 +140,15 @@ void MockDeviceManagementBackend::SimulateFailedPolicyRequest(
|
| const std::string& device_id,
|
| const em::DevicePolicyRequest& request,
|
| DevicePolicyResponseDelegate* delegate) {
|
| + if (policy_remaining_fail_count_) {
|
| + policy_remaining_fail_count_--;
|
| + if (!policy_remaining_fail_count_) {
|
| + ON_CALL(*this, ProcessPolicyRequest(_, _, _, _)).
|
| + WillByDefault(Invoke(
|
| + this,
|
| + &MockDeviceManagementBackend::SimulateSuccessfulPolicyRequest));
|
| + }
|
| + }
|
| delegate->OnError(kErrorRequestFailed);
|
| }
|
|
|
|
|