| 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 d0a0eaaaa4cb6e39b77db73d09a7d270999ec9e5..8dc3bf4b2ca85cec3a8b4c87ce41a6801a98cea7 100644
|
| --- a/chrome/browser/policy/device_management_policy_provider_unittest.cc
|
| +++ b/chrome/browser/policy/device_management_policy_provider_unittest.cc
|
| @@ -7,9 +7,9 @@
|
| #include "base/scoped_temp_dir.h"
|
| #include "chrome/browser/browser_thread.h"
|
| #include "chrome/browser/net/gaia/token_service.h"
|
| +#include "chrome/browser/policy/cloud_policy_cache.h"
|
| #include "chrome/browser/policy/configuration_policy_pref_store.h"
|
| #include "chrome/browser/policy/configuration_policy_provider.h"
|
| -#include "chrome/browser/policy/device_management_policy_cache.h"
|
| #include "chrome/browser/policy/device_management_policy_provider.h"
|
| #include "chrome/browser/policy/mock_configuration_policy_store.h"
|
| #include "chrome/browser/policy/mock_device_management_backend.h"
|
| @@ -113,9 +113,8 @@ class DeviceManagementPolicyProviderTest : public testing::Test {
|
| MockConfigurationPolicyStore store;
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| - MockDeviceManagementBackendSucceedBooleanPolicy(
|
| - key::kDisableSpdy, true));
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| SimulateSuccessfulLoginAndRunPending();
|
| EXPECT_FALSE(waiting_for_initial_policies());
|
| EXPECT_CALL(store, Apply(kPolicyDisableSpdy, _)).Times(1);
|
| @@ -138,7 +137,7 @@ class DeviceManagementPolicyProviderTest : public testing::Test {
|
| scoped_ptr<DeviceManagementPolicyProvider> provider_;
|
|
|
| protected:
|
| - DeviceManagementPolicyCache* cache(DeviceManagementPolicyProvider* provider) {
|
| + CloudPolicyCache* cache(DeviceManagementPolicyProvider* provider) {
|
| return provider->cache_.get();
|
| }
|
|
|
| @@ -193,9 +192,8 @@ 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).
|
| CreateNewProvider();
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| - MockDeviceManagementBackendSucceedBooleanPolicy(
|
| - key::kDisableSpdy, true));
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| loop_.RunAllPending();
|
| Mock::VerifyAndClearExpectations(backend_);
|
|
|
| @@ -203,7 +201,7 @@ TEST_F(DeviceManagementPolicyProviderTest, SecondProvide) {
|
| // Cached policy should still be available.
|
| MockConfigurationPolicyStore store;
|
| CreateNewProvider();
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorRequestFailed));
|
| SimulateSuccessfulLoginAndRunPending();
|
| @@ -231,15 +229,14 @@ TEST_F(DeviceManagementPolicyProviderTest, ErrorCausesNewRequest) {
|
| DeviceManagementBackend::kErrorRequestFailed));
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorRequestFailed));
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorRequestFailed));
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| - MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy,
|
| - true));
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| }
|
| SimulateSuccessfulLoginAndRunPending();
|
| }
|
| @@ -250,16 +247,13 @@ TEST_F(DeviceManagementPolicyProviderTest, RefreshPolicies) {
|
| CreateNewProvider(0, 0, 0, 1000 * 1000, 1000, 0);
|
| 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(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorRequestFailed));
|
| }
|
| @@ -273,14 +267,13 @@ TEST_F(DeviceManagementPolicyProviderTest, DeviceNotFound) {
|
| InSequence s;
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorServiceDeviceNotFound));
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| - MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy,
|
| - true));
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| }
|
| SimulateSuccessfulLoginAndRunPending();
|
| }
|
| @@ -292,14 +285,13 @@ TEST_F(DeviceManagementPolicyProviderTest, InvalidTokenOnPolicyRequest) {
|
| InSequence s;
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorServiceManagementTokenInvalid));
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| - MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy,
|
| - true));
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| }
|
| SimulateSuccessfulLoginAndRunPending();
|
| }
|
| @@ -312,13 +304,11 @@ TEST_F(DeviceManagementPolicyProviderTest, DeviceNoLongerManaged) {
|
| CreateNewProvider(0, 0, 0, 0, 0, 1000 * 1000);
|
| 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(
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailPolicy(
|
| DeviceManagementBackend::kErrorServiceManagementNotSupported));
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| @@ -341,7 +331,7 @@ TEST_F(DeviceManagementPolicyProviderTest, UnmanagedDevice) {
|
| SimulateSuccessfulLoginAndRunPending();
|
| // (1) The provider's DMPolicyCache should know that the device is not
|
| // managed.
|
| - EXPECT_TRUE(cache(provider_.get())->is_device_unmanaged());
|
| + EXPECT_TRUE(cache(provider_.get())->is_unmanaged());
|
| // (2) On restart, the provider should detect that this is not the first
|
| // login.
|
| CreateNewProvider(1000 * 1000, 0, 0, 0, 0, 0);
|
| @@ -350,14 +340,43 @@ TEST_F(DeviceManagementPolicyProviderTest, UnmanagedDevice) {
|
| InSequence s;
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| - MockDeviceManagementBackendSucceedBooleanPolicy(key::kDisableSpdy,
|
| - true));
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedSpdyCloudPolicy());
|
| }
|
| SimulateSuccessfulLoginAndRunPending();
|
| // (3) Since the backend call this time returned a device id, the "unmanaged"
|
| // marker should have been deleted.
|
| - EXPECT_FALSE(cache(provider_.get())->is_device_unmanaged());
|
| + EXPECT_FALSE(cache(provider_.get())->is_unmanaged());
|
| +}
|
| +
|
| +TEST_F(DeviceManagementPolicyProviderTest, FallbackToOldProtocol) {
|
| + { // Scoping so SimulateSuccessfulLoginAndRunPending doesn't see the sequence.
|
| + InSequence s;
|
| + CreateNewProvider(0, 0, 0, 0, 0, 1000 * 1000);
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedRegister());
|
| + // If the CloudPolicyRequest fails with kErrorRequestInvalid...
|
| + EXPECT_CALL(*backend_, ProcessCloudPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorRequestInvalid));
|
| + // ...the client should fall back to a classic PolicyRequest...
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendSucceedBooleanPolicy(
|
| + key::kDisableSpdy, true));
|
| + // ...and remember this fallback for any future request, ...
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorHttpStatus));
|
| + // ...both after successful fetches and after errors.
|
| + EXPECT_CALL(*backend_, ProcessPolicyRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailPolicy(
|
| + DeviceManagementBackend::kErrorServiceManagementNotSupported));
|
| + // Finally, we set the client to 'unmanaged' to stop its request stream.
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| + MockDeviceManagementBackendFailRegister(
|
| + DeviceManagementBackend::kErrorServiceManagementNotSupported));
|
| + }
|
| + SimulateSuccessfulLoginAndRunPending();
|
| }
|
|
|
| } // namespace policy
|
|
|