OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/policy/device_token_fetcher.h" | 5 #include "chrome/browser/policy/device_token_fetcher.h" |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/scoped_temp_dir.h" | 8 #include "base/scoped_temp_dir.h" |
9 #include "chrome/browser/policy/cloud_policy_data_store.h" | 9 #include "chrome/browser/policy/cloud_policy_data_store.h" |
10 #include "chrome/browser/policy/logging_work_scheduler.h" | 10 #include "chrome/browser/policy/logging_work_scheduler.h" |
(...skipping 18 matching lines...) Expand all Loading... | |
29 class DeviceTokenFetcherTest : public testing::Test { | 29 class DeviceTokenFetcherTest : public testing::Test { |
30 protected: | 30 protected: |
31 DeviceTokenFetcherTest() | 31 DeviceTokenFetcherTest() |
32 : ui_thread_(BrowserThread::UI, &loop_), | 32 : ui_thread_(BrowserThread::UI, &loop_), |
33 file_thread_(BrowserThread::FILE, &loop_) { | 33 file_thread_(BrowserThread::FILE, &loop_) { |
34 EXPECT_TRUE(temp_user_data_dir_.CreateUniqueTempDir()); | 34 EXPECT_TRUE(temp_user_data_dir_.CreateUniqueTempDir()); |
35 } | 35 } |
36 | 36 |
37 virtual void SetUp() { | 37 virtual void SetUp() { |
38 cache_.reset(new UserPolicyCache( | 38 cache_.reset(new UserPolicyCache( |
39 temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest"))); | 39 temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest"), |
40 false /* wait_for_policy_fetch */)); | |
40 EXPECT_CALL(service_, CreateBackend()) | 41 EXPECT_CALL(service_, CreateBackend()) |
41 .Times(AnyNumber()) | 42 .Times(AnyNumber()) |
42 .WillRepeatedly(MockDeviceManagementServiceProxyBackend(&backend_)); | 43 .WillRepeatedly(MockDeviceManagementServiceProxyBackend(&backend_)); |
43 data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies()); | 44 data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies()); |
44 data_store_->AddObserver(&observer_); | 45 data_store_->AddObserver(&observer_); |
45 } | 46 } |
46 | 47 |
47 virtual void TearDown() { | 48 virtual void TearDown() { |
48 loop_.RunAllPending(); | 49 loop_.RunAllPending(); |
49 data_store_->RemoveObserver(&observer_); | 50 data_store_->RemoveObserver(&observer_); |
50 } | 51 } |
51 | 52 |
52 void FetchToken(DeviceTokenFetcher* fetcher) { | 53 void FetchToken(DeviceTokenFetcher* fetcher) { |
53 data_store_->SetupForTesting("", "fake_device_id", "fake_user_name", | 54 data_store_->SetupForTesting("", "fake_device_id", "fake_user_name", |
54 "fake_auth_token", true); | 55 "fake_auth_token", true); |
55 fetcher->FetchToken(); | 56 fetcher->FetchToken(); |
56 } | 57 } |
57 | 58 |
59 void CreateNewWaitingCache() { | |
60 cache_.reset(new UserPolicyCache( | |
61 temp_user_data_dir_.path().AppendASCII("DeviceTokenFetcherTest"), | |
62 true /* wait_for_policy_fetch */)); | |
63 // Make this cache's disk cache ready, but have it still waiting for a | |
64 // policy fetch. | |
65 cache_->Load(); | |
66 loop_.RunAllPending(); | |
67 ASSERT_TRUE(cache_->last_policy_refresh_time().is_null()); | |
68 ASSERT_FALSE(cache_->IsReady()); | |
69 } | |
70 | |
58 MessageLoop loop_; | 71 MessageLoop loop_; |
59 MockDeviceManagementBackend backend_; | 72 MockDeviceManagementBackend backend_; |
60 MockDeviceManagementService service_; | 73 MockDeviceManagementService service_; |
61 scoped_ptr<CloudPolicyCacheBase> cache_; | 74 scoped_ptr<CloudPolicyCacheBase> cache_; |
62 scoped_ptr<CloudPolicyDataStore> data_store_; | 75 scoped_ptr<CloudPolicyDataStore> data_store_; |
63 MockCloudPolicyDataStoreObserver observer_; | 76 MockCloudPolicyDataStoreObserver observer_; |
64 PolicyNotifier notifier_; | 77 PolicyNotifier notifier_; |
65 ScopedTempDir temp_user_data_dir_; | 78 ScopedTempDir temp_user_data_dir_; |
66 | 79 |
67 private: | 80 private: |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
118 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | 131 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
119 ¬ifier_); | 132 ¬ifier_); |
120 EXPECT_CALL(observer_, OnDeviceTokenChanged()).Times(0); | 133 EXPECT_CALL(observer_, OnDeviceTokenChanged()).Times(0); |
121 FetchToken(&fetcher); | 134 FetchToken(&fetcher); |
122 loop_.RunAllPending(); | 135 loop_.RunAllPending(); |
123 Mock::VerifyAndClearExpectations(&observer_); | 136 Mock::VerifyAndClearExpectations(&observer_); |
124 EXPECT_EQ("", data_store_->device_token()); | 137 EXPECT_EQ("", data_store_->device_token()); |
125 EXPECT_TRUE(cache_->is_unmanaged()); | 138 EXPECT_TRUE(cache_->is_unmanaged()); |
126 } | 139 } |
127 | 140 |
141 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.
| |
142 CreateNewWaitingCache(); | |
143 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | |
144 ¬ifier_); | |
145 EXPECT_FALSE(cache_->IsReady()); | |
146 } | |
147 | |
148 TEST_F(DeviceTokenFetcherTest, DontSetFetchingDone1) { | |
149 CreateNewWaitingCache(); | |
150 EXPECT_CALL(backend_, ProcessRegisterRequest(_, _, _, _, _)).WillOnce( | |
151 MockDeviceManagementBackendSucceedRegister()); | |
152 EXPECT_CALL(observer_, OnDeviceTokenChanged()); | |
153 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | |
154 ¬ifier_); | |
155 FetchToken(&fetcher); | |
156 loop_.RunAllPending(); | |
157 // On successful token fetching the cache isn't set to ready, since the next | |
158 // step is to fetch policy. Only failures to fetch the token should make | |
159 // the cache ready. | |
160 EXPECT_FALSE(cache_->IsReady()); | |
161 } | |
162 | |
163 TEST_F(DeviceTokenFetcherTest, SetFetchingDone0) { | |
164 CreateNewWaitingCache(); | |
165 cache_->SetUnmanaged(); | |
166 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | |
167 ¬ifier_); | |
168 EXPECT_TRUE(cache_->IsReady()); | |
169 } | |
170 | |
171 TEST_F(DeviceTokenFetcherTest, SetFetchingDone1) { | |
172 CreateNewWaitingCache(); | |
173 EXPECT_CALL(backend_, ProcessRegisterRequest(_, _, _, _, _)).WillOnce( | |
174 MockDeviceManagementBackendFailRegister( | |
175 DeviceManagementBackend::kErrorRequestFailed)); | |
176 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | |
177 ¬ifier_); | |
178 FetchToken(&fetcher); | |
179 loop_.RunAllPending(); | |
180 // This is the opposite case of DontSetFetchingDone1. | |
181 EXPECT_TRUE(cache_->IsReady()); | |
182 } | |
183 | |
128 } // namespace policy | 184 } // namespace policy |
OLD | NEW |