| 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());
|
|
|