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

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

Issue 8499021: UserPolicyCache only becomes ready after policy has been fetched. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed build-breaking typo Created 9 years, 1 month 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_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(),
+ &notifier_);
+ 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(),
+ &notifier_);
+ 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(),
+ &notifier_);
+ 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(),
+ &notifier_);
+ FetchToken(&fetcher);
+ loop_.RunAllPending();
+ // This is the opposite case of DontSetFetchingDone1.
+ EXPECT_TRUE(cache_->IsReady());
+}
+
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698