OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 MockCloudPolicyDataStoreObserver observer_; | 76 MockCloudPolicyDataStoreObserver observer_; |
77 PolicyNotifier notifier_; | 77 PolicyNotifier notifier_; |
78 ScopedTempDir temp_user_data_dir_; | 78 ScopedTempDir temp_user_data_dir_; |
79 em::DeviceManagementResponse successful_registration_response_; | 79 em::DeviceManagementResponse successful_registration_response_; |
80 | 80 |
81 private: | 81 private: |
82 content::TestBrowserThread ui_thread_; | 82 content::TestBrowserThread ui_thread_; |
83 content::TestBrowserThread file_thread_; | 83 content::TestBrowserThread file_thread_; |
84 }; | 84 }; |
85 | 85 |
| 86 ACTION_P(VerifyRegisterRequest, known_machine_id) { |
| 87 ASSERT_TRUE(arg0); |
| 88 ASSERT_TRUE(arg0->GetRequest()); |
| 89 ASSERT_TRUE(arg0->GetRequest()->has_register_request()); |
| 90 const em::DeviceRegisterRequest& request = |
| 91 arg0->GetRequest()->register_request(); |
| 92 if (known_machine_id) { |
| 93 EXPECT_TRUE(request.has_known_machine_id()); |
| 94 EXPECT_TRUE(request.known_machine_id()); |
| 95 } else { |
| 96 EXPECT_FALSE(request.has_known_machine_id()); |
| 97 } |
| 98 } |
| 99 |
86 TEST_F(DeviceTokenFetcherTest, FetchToken) { | 100 TEST_F(DeviceTokenFetcherTest, FetchToken) { |
87 testing::InSequence s; | 101 testing::InSequence s; |
88 EXPECT_CALL(service_, | 102 EXPECT_CALL(service_, |
89 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) | 103 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
90 .WillOnce(service_.SucceedJob(successful_registration_response_)); | 104 .WillOnce(service_.SucceedJob(successful_registration_response_)); |
| 105 EXPECT_CALL(service_, StartJob(_)).WillOnce(VerifyRegisterRequest(false)); |
91 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | 106 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
92 ¬ifier_); | 107 ¬ifier_); |
93 EXPECT_CALL(observer_, OnDeviceTokenChanged()); | 108 EXPECT_CALL(observer_, OnDeviceTokenChanged()); |
94 EXPECT_EQ("", data_store_->device_token()); | 109 EXPECT_EQ("", data_store_->device_token()); |
95 FetchToken(&fetcher); | 110 FetchToken(&fetcher); |
96 loop_.RunAllPending(); | 111 loop_.RunAllPending(); |
97 Mock::VerifyAndClearExpectations(&observer_); | 112 Mock::VerifyAndClearExpectations(&observer_); |
98 std::string token = data_store_->device_token(); | 113 std::string token = data_store_->device_token(); |
99 EXPECT_NE("", token); | 114 EXPECT_NE("", token); |
100 | 115 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) | 195 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
181 .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED)); | 196 .WillOnce(service_.FailJob(DM_STATUS_REQUEST_FAILED)); |
182 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), | 197 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
183 ¬ifier_); | 198 ¬ifier_); |
184 FetchToken(&fetcher); | 199 FetchToken(&fetcher); |
185 loop_.RunAllPending(); | 200 loop_.RunAllPending(); |
186 // This is the opposite case of DontSetFetchingDone1. | 201 // This is the opposite case of DontSetFetchingDone1. |
187 EXPECT_TRUE(cache_->IsReady()); | 202 EXPECT_TRUE(cache_->IsReady()); |
188 } | 203 } |
189 | 204 |
| 205 TEST_F(DeviceTokenFetcherTest, SetKnownMachineId) { |
| 206 EXPECT_CALL(service_, |
| 207 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
| 208 .WillOnce(service_.SucceedJob(successful_registration_response_)); |
| 209 EXPECT_CALL(service_, StartJob(_)).WillOnce(VerifyRegisterRequest(true)); |
| 210 |
| 211 DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
| 212 ¬ifier_); |
| 213 EXPECT_CALL(observer_, OnDeviceTokenChanged()); |
| 214 EXPECT_EQ("", data_store_->device_token()); |
| 215 |
| 216 data_store_->set_known_machine_id(true); |
| 217 FetchToken(&fetcher); |
| 218 loop_.RunAllPending(); |
| 219 |
| 220 Mock::VerifyAndClearExpectations(&observer_); |
| 221 std::string token = data_store_->device_token(); |
| 222 EXPECT_NE("", token); |
| 223 } |
| 224 |
190 } // namespace policy | 225 } // namespace policy |
OLD | NEW |