Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(932)

Unified Diff: chrome/browser/policy/device_management_policy_provider_unittest.cc

Issue 6409040: New policy protobuf protocol. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « chrome/browser/policy/device_management_policy_provider.cc ('k') | chrome/browser/policy/mock_device_management_backend.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698