Index: chrome/browser/policy/cloud_policy_controller_unittest.cc |
diff --git a/chrome/browser/policy/cloud_policy_controller_unittest.cc b/chrome/browser/policy/cloud_policy_controller_unittest.cc |
index 12d2fe7fccd0001b0e9d2c6cbd28ff32203905b6..6295b2c15d3f2f765861ae54ae1644ad75e68d08 100644 |
--- a/chrome/browser/policy/cloud_policy_controller_unittest.cc |
+++ b/chrome/browser/policy/cloud_policy_controller_unittest.cc |
@@ -10,9 +10,10 @@ |
#include "chrome/browser/policy/cloud_policy_data_store.h" |
#include "chrome/browser/policy/device_token_fetcher.h" |
#include "chrome/browser/policy/logging_work_scheduler.h" |
-#include "chrome/browser/policy/mock_device_management_backend.h" |
-#include "chrome/browser/policy/mock_device_management_service_old.h" |
+#include "chrome/browser/policy/mock_device_management_service.h" |
#include "chrome/browser/policy/policy_notifier.h" |
+#include "chrome/browser/policy/proto/cloud_policy.pb.h" |
+#include "chrome/browser/policy/proto/device_management_backend.pb.h" |
#include "chrome/browser/policy/user_policy_cache.h" |
#include "content/test/test_browser_thread.h" |
#include "policy/policy_constants.h" |
@@ -24,7 +25,9 @@ namespace em = enterprise_management; |
namespace policy { |
using ::testing::AnyNumber; |
+using ::testing::DoAll; |
using ::testing::InSequence; |
+using ::testing::InvokeWithoutArgs; |
using ::testing::_; |
using content::BrowserThread; |
@@ -46,7 +49,24 @@ class CloudPolicyControllerTest : public testing::Test { |
public: |
CloudPolicyControllerTest() |
: ui_thread_(BrowserThread::UI, &loop_), |
- file_thread_(BrowserThread::FILE, &loop_) {} |
+ file_thread_(BrowserThread::FILE, &loop_) { |
+ em::PolicyData signed_response; |
+ em::CloudPolicySettings settings; |
+ em::DisableSpdyProto* spdy_proto = settings.mutable_disablespdy(); |
+ spdy_proto->set_disablespdy(true); |
+ spdy_proto->mutable_policy_options()->set_mode( |
+ em::PolicyOptions::MANDATORY); |
+ EXPECT_TRUE( |
+ settings.SerializeToString(signed_response.mutable_policy_value())); |
+ base::TimeDelta timestamp = |
+ base::Time::NowFromSystemTime() - base::Time::UnixEpoch(); |
+ signed_response.set_timestamp(timestamp.InMilliseconds()); |
+ std::string serialized_signed_response; |
+ EXPECT_TRUE(signed_response.SerializeToString(&serialized_signed_response)); |
+ em::PolicyFetchResponse* fetch_response = |
+ spdy_policy_response_.mutable_policy_response()->add_response(); |
+ fetch_response->set_policy_data(serialized_signed_response); |
+ } |
virtual ~CloudPolicyControllerTest() {} |
@@ -56,9 +76,7 @@ class CloudPolicyControllerTest : public testing::Test { |
temp_user_data_dir_.path().AppendASCII("CloudPolicyControllerTest"), |
false /* wait_for_policy_fetch */)); |
token_fetcher_.reset(new MockDeviceTokenFetcher(cache_.get())); |
- EXPECT_CALL(service_, CreateBackend()) |
- .Times(AnyNumber()) |
- .WillRepeatedly(MockDeviceManagementServiceProxyBackend(&backend_)); |
+ EXPECT_CALL(service_, StartJob(_)).Times(AnyNumber()); |
data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies()); |
} |
@@ -92,20 +110,16 @@ class CloudPolicyControllerTest : public testing::Test { |
ASSERT_TRUE(Value::Equals(&expected, policy_map->Get(kPolicyDisableSpdy))); |
} |
- void StopMessageLoop() { |
- loop_.QuitNow(); |
- } |
- |
protected: |
scoped_ptr<CloudPolicyCacheBase> cache_; |
scoped_ptr<CloudPolicyController> controller_; |
scoped_ptr<MockDeviceTokenFetcher> token_fetcher_; |
scoped_ptr<CloudPolicyDataStore> data_store_; |
- MockDeviceManagementBackend backend_; |
- MockDeviceManagementServiceOld service_; |
+ MockDeviceManagementService service_; |
PolicyNotifier notifier_; |
ScopedTempDir temp_user_data_dir_; |
MessageLoop loop_; |
+ em::DeviceManagementResponse spdy_policy_response_; |
private: |
content::TestBrowserThread ui_thread_; |
@@ -119,9 +133,10 @@ class CloudPolicyControllerTest : public testing::Test { |
TEST_F(CloudPolicyControllerTest, StartupWithDeviceToken) { |
data_store_->SetupForTesting("fake_device_token", "device_id", "", "", |
true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce(DoAll( |
- InvokeWithoutArgs(this, &CloudPolicyControllerTest::StopMessageLoop), |
- MockDeviceManagementBackendSucceedSpdyCloudPolicy())); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(DoAll(InvokeWithoutArgs(&loop_, &MessageLoop::QuitNow), |
+ service_.SucceedJob(spdy_policy_response_))); |
CreateNewController(); |
loop_.RunAllPending(); |
ExpectHasSpdyPolicy(); |
@@ -155,13 +170,13 @@ TEST_F(CloudPolicyControllerTest, RefreshAfterSuccessfulPolicy) { |
"auth_token", true); |
{ |
InSequence s; |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendSucceedSpdyCloudPolicy()); |
- EXPECT_CALL(backend_, |
- ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce(DoAll( |
- InvokeWithoutArgs(this, &CloudPolicyControllerTest::StopMessageLoop), |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorRequestFailed))); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.SucceedJob(spdy_policy_response_)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(DoAll(InvokeWithoutArgs(&loop_, &MessageLoop::QuitNow), |
+ service_.FailJob(DM_STATUS_REQUEST_FAILED))); |
} |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -175,14 +190,13 @@ TEST_F(CloudPolicyControllerTest, RefreshAfterError) { |
"auth_token", true); |
{ |
InSequence s; |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorRequestFailed)); |
- EXPECT_CALL(backend_, |
- ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce(DoAll( |
- InvokeWithoutArgs(this, |
- &CloudPolicyControllerTest::StopMessageLoop), |
- MockDeviceManagementBackendSucceedSpdyCloudPolicy())); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(DoAll(InvokeWithoutArgs(&loop_, &MessageLoop::QuitNow), |
+ service_.SucceedJob(spdy_policy_response_))); |
} |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -194,9 +208,9 @@ TEST_F(CloudPolicyControllerTest, RefreshAfterError) { |
TEST_F(CloudPolicyControllerTest, InvalidToken) { |
data_store_->SetupForTesting("device_token", "device_id", |
"standup@ten.am", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorServiceManagementTokenInvalid)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.FailJob(DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID)); |
EXPECT_CALL(*token_fetcher_.get(), FetchToken()).Times(1); |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -207,9 +221,9 @@ TEST_F(CloudPolicyControllerTest, InvalidToken) { |
TEST_F(CloudPolicyControllerTest, DeviceNotFound) { |
data_store_->SetupForTesting("device_token", "device_id", |
"me@you.com", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorServiceDeviceNotFound)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.FailJob(DM_STATUS_SERVICE_DEVICE_NOT_FOUND)); |
EXPECT_CALL(*token_fetcher_.get(), FetchToken()).Times(1); |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -220,9 +234,9 @@ TEST_F(CloudPolicyControllerTest, DeviceNotFound) { |
TEST_F(CloudPolicyControllerTest, DeviceIdConflict) { |
data_store_->SetupForTesting("device_token", "device_id", |
"me@you.com", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorServiceDeviceIdConflict)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.FailJob(DM_STATUS_SERVICE_DEVICE_ID_CONFLICT)); |
EXPECT_CALL(*token_fetcher_.get(), FetchToken()).Times(1); |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -234,9 +248,9 @@ TEST_F(CloudPolicyControllerTest, DeviceIdConflict) { |
TEST_F(CloudPolicyControllerTest, NoLongerManaged) { |
data_store_->SetupForTesting("device_token", "device_id", |
"who@what.com", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorServiceManagementNotSupported)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.FailJob(DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED)); |
EXPECT_CALL(*token_fetcher_.get(), SetUnmanagedState()).Times(1); |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -248,9 +262,9 @@ TEST_F(CloudPolicyControllerTest, NoLongerManaged) { |
TEST_F(CloudPolicyControllerTest, InvalidSerialNumber) { |
data_store_->SetupForTesting("device_token", "device_id", |
"who@what.com", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce( |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorServiceInvalidSerialNumber)); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(service_.FailJob(DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER)); |
EXPECT_CALL(*token_fetcher_.get(), SetSerialNumberInvalidState()).Times(1); |
CreateNewController(); |
loop_.RunAllPending(); |
@@ -308,9 +322,10 @@ TEST_F(CloudPolicyControllerTest, SetFetchingDoneAfterPolicyFetch) { |
CreateNewWaitingCache(); |
data_store_->SetupForTesting("device_token", "device_id", |
"user@enterprise.com", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce(DoAll( |
- InvokeWithoutArgs(this, &CloudPolicyControllerTest::StopMessageLoop), |
- MockDeviceManagementBackendSucceedSpdyCloudPolicy())); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(DoAll(InvokeWithoutArgs(&loop_, &MessageLoop::QuitNow), |
+ service_.SucceedJob(spdy_policy_response_))); |
CreateNewController(); |
loop_.RunAllPending(); |
EXPECT_TRUE(cache_->IsReady()); |
@@ -321,10 +336,10 @@ TEST_F(CloudPolicyControllerTest, SetFetchingDoneAfterPolicyFetchFails) { |
CreateNewWaitingCache(); |
data_store_->SetupForTesting("device_token", "device_id", |
"user@enterprise.com", "auth", true); |
- EXPECT_CALL(backend_, ProcessPolicyRequest(_, _, _, _, _, _)).WillOnce(DoAll( |
- InvokeWithoutArgs(this, &CloudPolicyControllerTest::StopMessageLoop), |
- MockDeviceManagementBackendFailPolicy( |
- DeviceManagementBackend::kErrorRequestFailed))); |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
+ .WillOnce(DoAll(InvokeWithoutArgs(&loop_, &MessageLoop::QuitNow), |
+ service_.FailJob(DM_STATUS_REQUEST_FAILED))); |
CreateNewController(); |
loop_.RunAllPending(); |
EXPECT_TRUE(cache_->IsReady()); |