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 029d8d44b393d9a122c52a744a6f2a29cc8f831b..a8ae3182dfde5789aa9685da794b3931099de0fe 100644 |
--- a/chrome/browser/policy/device_token_fetcher_unittest.cc |
+++ b/chrome/browser/policy/device_token_fetcher_unittest.cc |
@@ -83,11 +83,26 @@ class DeviceTokenFetcherTest : public testing::Test { |
content::TestBrowserThread file_thread_; |
}; |
+ACTION_P(VerifyRegisterRequest, known_machine_id) { |
+ ASSERT_TRUE(arg0); |
+ ASSERT_TRUE(arg0->GetRequest()); |
+ ASSERT_TRUE(arg0->GetRequest()->has_register_request()); |
+ const em::DeviceRegisterRequest& request = |
+ arg0->GetRequest()->register_request(); |
+ if (known_machine_id) { |
+ EXPECT_TRUE(request.has_known_machine_id()); |
+ EXPECT_TRUE(request.known_machine_id()); |
+ } else { |
+ EXPECT_FALSE(request.has_known_machine_id()); |
+ } |
+} |
+ |
TEST_F(DeviceTokenFetcherTest, FetchToken) { |
testing::InSequence s; |
EXPECT_CALL(service_, |
CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
.WillOnce(service_.SucceedJob(successful_registration_response_)); |
+ EXPECT_CALL(service_, StartJob(_)).WillOnce(VerifyRegisterRequest(false)); |
DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
¬ifier_); |
EXPECT_CALL(observer_, OnDeviceTokenChanged()); |
@@ -187,4 +202,24 @@ TEST_F(DeviceTokenFetcherTest, SetFetchingDoneOnFailures) { |
EXPECT_TRUE(cache_->IsReady()); |
} |
+TEST_F(DeviceTokenFetcherTest, SetKnownMachineId) { |
+ EXPECT_CALL(service_, |
+ CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) |
+ .WillOnce(service_.SucceedJob(successful_registration_response_)); |
+ EXPECT_CALL(service_, StartJob(_)).WillOnce(VerifyRegisterRequest(true)); |
+ |
+ DeviceTokenFetcher fetcher(&service_, cache_.get(), data_store_.get(), |
+ ¬ifier_); |
+ EXPECT_CALL(observer_, OnDeviceTokenChanged()); |
+ EXPECT_EQ("", data_store_->device_token()); |
+ |
+ data_store_->set_known_machine_id(true); |
+ FetchToken(&fetcher); |
+ loop_.RunAllPending(); |
+ |
+ Mock::VerifyAndClearExpectations(&observer_); |
+ std::string token = data_store_->device_token(); |
+ EXPECT_NE("", token); |
+} |
+ |
} // namespace policy |