Chromium Code Reviews| 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..7a143ef481785e9519d861a62f9797da6d8de80c 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" |
| @@ -25,6 +26,7 @@ namespace policy { |
| using ::testing::AnyNumber; |
| using ::testing::InSequence; |
|
Joao da Silva
2012/01/03 08:19:02
Nit: using DoAll
Mattias Nissler (ping if slow)
2012/01/03 10:02:45
Done.
|
| +using ::testing::InvokeWithoutArgs; |
| using ::testing::_; |
| using content::BrowserThread; |
| @@ -46,7 +48,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 +75,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 +109,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 +132,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 +169,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 +189,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 +207,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 +220,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 +233,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 +247,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 +261,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 +321,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 +335,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()); |