Chromium Code Reviews| Index: chrome/browser/policy/device_token_fetcher_unittest.cc |
| diff --git a/chrome/browser/policy/device_token_fetcher_unittest.cc b/chrome/browser/policy/device_token_fetcher_unittest.cc |
| index f3f5fbea59ca39b05275f25a778deb21c4501f6f..339f3f95a88ae7628694a064be8e5590293317c4 100644 |
| --- a/chrome/browser/policy/device_token_fetcher_unittest.cc |
| +++ b/chrome/browser/policy/device_token_fetcher_unittest.cc |
| @@ -36,7 +36,8 @@ class DeviceTokenFetcherTest : public testing::Test { |
| virtual void SetUp() { |
| cache_.reset(new UserPolicyCache( |
| - temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest"))); |
| + temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest"), |
| + false /* wait_for_policy_fetch */)); |
| EXPECT_CALL(service_, CreateBackend()) |
| .Times(AnyNumber()) |
| .WillRepeatedly(MockDeviceManagementServiceProxyBackend(&backend_)); |
| @@ -55,6 +56,18 @@ class DeviceTokenFetcherTest : public testing::Test { |
| fetcher->FetchToken(); |
| } |
| + void CreateNewWaitingCache() { |
| + cache_.reset(new UserPolicyCache( |
| + temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest"), |
| + true /* wait_for_policy_fetch */)); |
| + // Make this cache's disk cache ready, but have it still waiting for a |
| + // policy fetch. |
| + cache_->Load(); |
| + loop_.RunAllPending(); |
| + ASSERT_TRUE(cache_->last_policy_refresh_time().is_null()); |
| + ASSERT_FALSE(cache_->IsReady()); |
| + } |
| + |
| MessageLoop loop_; |
| MockDeviceManagementBackend backend_; |
| MockDeviceManagementService service_; |
| @@ -125,4 +138,47 @@ TEST_F(DeviceTokenFetcherTest, UnmanagedDevice) { |
| EXPECT_TRUE(cache_->is_unmanaged()); |
| } |
| +TEST_F(DeviceTokenFetcherTest, DontSetFetchingDone0) { |
|
Mattias Nissler (ping if slow)
2011/11/11 14:38:50
more descriptive names.
Joao da Silva
2011/11/14 15:59:48
Done.
|
| + CreateNewWaitingCache(); |
| + DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
| + ¬ifier_); |
| + EXPECT_FALSE(cache_->IsReady()); |
| +} |
| + |
| +TEST_F(DeviceTokenFetcherTest, DontSetFetchingDone1) { |
| + CreateNewWaitingCache(); |
| + EXPECT_CALL(backend_, ProcessRegisterRequest(_, _, _, _, _)).WillOnce( |
| + MockDeviceManagementBackendSucceedRegister()); |
| + EXPECT_CALL(observer_, OnDeviceTokenChanged()); |
| + DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
| + ¬ifier_); |
| + FetchToken(&fetcher); |
| + loop_.RunAllPending(); |
| + // On successful token fetching the cache isn't set to ready, since the next |
| + // step is to fetch policy. Only failures to fetch the token should make |
| + // the cache ready. |
| + EXPECT_FALSE(cache_->IsReady()); |
| +} |
| + |
| +TEST_F(DeviceTokenFetcherTest, SetFetchingDone0) { |
| + CreateNewWaitingCache(); |
| + cache_->SetUnmanaged(); |
| + DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
| + ¬ifier_); |
| + EXPECT_TRUE(cache_->IsReady()); |
| +} |
| + |
| +TEST_F(DeviceTokenFetcherTest, SetFetchingDone1) { |
| + CreateNewWaitingCache(); |
| + EXPECT_CALL(backend_, ProcessRegisterRequest(_, _, _, _, _)).WillOnce( |
| + MockDeviceManagementBackendFailRegister( |
| + DeviceManagementBackend::kErrorRequestFailed)); |
| + DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
| + ¬ifier_); |
| + FetchToken(&fetcher); |
| + loop_.RunAllPending(); |
| + // This is the opposite case of DontSetFetchingDone1. |
| + EXPECT_TRUE(cache_->IsReady()); |
| +} |
| + |
| } // namespace policy |