| Index: chrome/browser/policy/device_management_policy_provider_unittest.cc
|
| diff --git a/chrome/browser/policy/device_management_policy_provider_unittest.cc b/chrome/browser/policy/device_management_policy_provider_unittest.cc
|
| index 705b2288c5538e71b16413d8715bc5d76d3dcb45..1761e80ea60cd7b72cd0418f1f26421cd38aa2cc 100644
|
| --- a/chrome/browser/policy/device_management_policy_provider_unittest.cc
|
| +++ b/chrome/browser/policy/device_management_policy_provider_unittest.cc
|
| @@ -21,6 +21,7 @@ const char kTestToken[] = "device_policy_provider_test_auth_token";
|
| namespace policy {
|
|
|
| using ::testing::_;
|
| +using ::testing::InSequence;
|
| using ::testing::Mock;
|
|
|
| class DeviceManagementPolicyProviderTest : public testing::Test {
|
| @@ -39,7 +40,6 @@ class DeviceManagementPolicyProviderTest : public testing::Test {
|
|
|
| void CreateNewBackend() {
|
| backend_ = new MockDeviceManagementBackend;
|
| - backend_->AddBooleanPolicy(key::kDisableSpdy, true);
|
| }
|
|
|
| void CreateNewProvider() {
|
| @@ -61,9 +61,11 @@ class DeviceManagementPolicyProviderTest : public testing::Test {
|
|
|
| void SimulateSuccessfulInitialPolicyFetch() {
|
| MockConfigurationPolicyStore store;
|
| - backend_->AllShouldSucceed();
|
| - EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).Times(1);
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).Times(1);
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedRegister());
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(
|
| + key::kDisableSpdy, true));
|
| SimulateSuccessfulLoginAndRunPending();
|
| EXPECT_CALL(store, Apply(kPolicyDisableSpdy, _)).Times(1);
|
| provider_->Provide(&store);
|
| @@ -105,7 +107,6 @@ class DeviceManagementPolicyProviderTest : public testing::Test {
|
| // provide an empty policy.
|
| TEST_F(DeviceManagementPolicyProviderTest, InitialProvideNoLogin) {
|
| MockConfigurationPolicyStore store;
|
| - backend_->AllShouldSucceed();
|
| EXPECT_CALL(store, Apply(_, _)).Times(0);
|
| provider_->Provide(&store);
|
| EXPECT_TRUE(store.policy_map().empty());
|
| @@ -118,12 +119,13 @@ TEST_F(DeviceManagementPolicyProviderTest, InitialProvideWithLogin) {
|
| SimulateSuccessfulInitialPolicyFetch();
|
| }
|
|
|
| -// If the login succeeds but the device management backend is unreachable,
|
| +// If the login succeed but the device management backend is unreachable,
|
| // there should be no policy provided if there's no previously-fetched policy,
|
| TEST_F(DeviceManagementPolicyProviderTest, EmptyProvideWithFailedBackend) {
|
| MockConfigurationPolicyStore store;
|
| - backend_->AllShouldFail();
|
| - EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).Times(1);
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailRegister(
|
| + DeviceManagementBackend::kErrorRequestFailed));
|
| EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).Times(0);
|
| SimulateSuccessfulLoginAndRunPending();
|
| EXPECT_CALL(store, Apply(kPolicyDisableSpdy, _)).Times(0);
|
| @@ -140,16 +142,19 @@ TEST_F(DeviceManagementPolicyProviderTest, SecondProvide) {
|
| // Simulate a app relaunch by constructing a new provider. Policy should be
|
| // refreshed (since that might be the purpose of the app relaunch).
|
| CreateNewBackend();
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).Times(1);
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(
|
| + key::kDisableSpdy, true));
|
| CreateNewProvider();
|
| Mock::VerifyAndClearExpectations(backend_);
|
|
|
| // Simulate another app relaunch, this time against a failing backend.
|
| // Cached policy should still be available.
|
| CreateNewBackend();
|
| - backend_->AllShouldFail();
|
| MockConfigurationPolicyStore store;
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).Times(1);
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorRequestFailed));
|
| CreateNewProvider();
|
| SimulateSuccessfulLoginAndRunPending();
|
| EXPECT_CALL(store, Apply(kPolicyDisableSpdy, _)).Times(1);
|
| @@ -170,18 +175,38 @@ TEST_F(DeviceManagementPolicyProviderTest, FetchTriggersRefresh) {
|
| }
|
|
|
| TEST_F(DeviceManagementPolicyProviderTest, ErrorCausesNewRequest) {
|
| - backend_->RegisterFailsOncePolicyFailsTwice();
|
| + InSequence s;
|
| SetRefreshDelays(provider_.get(), 1000 * 1000, 0, 0, 0);
|
| - EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).Times(2);
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).Times(3);
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailRegister(
|
| + DeviceManagementBackend::kErrorRequestFailed));
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedRegister());
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorRequestFailed));
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorRequestFailed));
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy, true));
|
| SimulateSuccessfulLoginAndRunPending();
|
| }
|
|
|
| TEST_F(DeviceManagementPolicyProviderTest, RefreshPolicies) {
|
| - backend_->AllWorksFirstPolicyFailsLater();
|
| + InSequence s;
|
| SetRefreshDelays(provider_.get(), 0, 0, 1000 * 1000, 1000);
|
| - EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).Times(1);
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).Times(4);
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedRegister());
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy, true));
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy, true));
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy, true));
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorRequestFailed));
|
| SimulateSuccessfulLoginAndRunPending();
|
| }
|
|
|
|
|