diff --git a/buffet/device_registration_info.h b/buffet/device_registration_info.h
index f153cda..1e63539 100644
--- a/buffet/device_registration_info.h
+++ b/buffet/device_registration_info.h
@@ -116,9 +116,8 @@
   // Loads the device registration information from cache.
   bool Load();
 
-  // Checks for the valid device registration as well as refreshes
-  // the device access token, if available.
-  bool CheckRegistration(chromeos::ErrorPtr* error);
+  // Checks whether we have credentials generated during registration.
+  bool HaveRegistrationCredentials(chromeos::ErrorPtr* error);
 
   // Gets the full device description JSON object, or nullptr if
   // the device is not registered or communication failure.
@@ -162,10 +161,11 @@
   // Saves the device registration to cache.
   bool Save() const;
 
-  // Checks whether we have credentials generated during registration.
-  bool HaveRegistrationCredentials(chromeos::ErrorPtr* error);
+  // Checks for the valid device registration as well as refreshes
+  // the device access token, if available.
+  bool CheckRegistration(chromeos::ErrorPtr* error);
 
-  // If we currently have an access token and it doesn't like like it
+  // If we currently have an access token and it doesn't look like it
   // has expired yet, returns true immediately. Otherwise calls
   // RefreshAccessToken().
   bool MaybeRefreshAccessToken(chromeos::ErrorPtr* error);
diff --git a/buffet/device_registration_info_unittest.cc b/buffet/device_registration_info_unittest.cc
index 7e09cfd..4d1279b 100644
--- a/buffet/device_registration_info_unittest.cc
+++ b/buffet/device_registration_info_unittest.cc
@@ -170,10 +170,16 @@
   static bool Save(DeviceRegistrationInfo* info) {
     return info->Save();
   }
+
   static void PublishCommands(DeviceRegistrationInfo* info,
                               const base::ListValue& commands) {
     return info->PublishCommands(commands);
   }
+
+  static bool CheckRegistration(DeviceRegistrationInfo* info,
+                                chromeos::ErrorPtr* error) {
+    return info->CheckRegistration(error);
+  }
 };
 
 class DeviceRegistrationInfoTest : public ::testing::Test {
@@ -274,7 +280,8 @@
 
 TEST_F(DeviceRegistrationInfoTest, CheckRegistration) {
   EXPECT_TRUE(dev_reg_->Load());
-  EXPECT_FALSE(dev_reg_->CheckRegistration(nullptr));
+  EXPECT_FALSE(DeviceRegistrationInfo::TestHelper::CheckRegistration(
+      dev_reg_.get(), nullptr));
   EXPECT_EQ(0, transport_->GetRequestCount());
 
   SetDefaultDeviceRegistration(&data_);
@@ -285,7 +292,8 @@
                          chromeos::http::request_type::kPost,
                          base::Bind(OAuth2Handler));
   transport_->ResetRequestCount();
-  EXPECT_TRUE(dev_reg_->CheckRegistration(nullptr));
+  EXPECT_TRUE(DeviceRegistrationInfo::TestHelper::CheckRegistration(
+      dev_reg_.get(), nullptr));
   EXPECT_EQ(1, transport_->GetRequestCount());
 }
 
@@ -300,7 +308,8 @@
                          base::Bind(OAuth2HandlerFail));
   transport_->ResetRequestCount();
   chromeos::ErrorPtr error;
-  EXPECT_FALSE(dev_reg_->CheckRegistration(&error));
+  EXPECT_FALSE(DeviceRegistrationInfo::TestHelper::CheckRegistration(
+      dev_reg_.get(), &error));
   EXPECT_EQ(1, transport_->GetRequestCount());
   EXPECT_TRUE(error->HasError(buffet::kErrorDomainOAuth2,
                               "unable_to_authenticate"));
@@ -318,7 +327,8 @@
                          base::Bind(OAuth2HandlerDeregister));
   transport_->ResetRequestCount();
   chromeos::ErrorPtr error;
-  EXPECT_FALSE(dev_reg_->CheckRegistration(&error));
+  EXPECT_FALSE(DeviceRegistrationInfo::TestHelper::CheckRegistration(
+      dev_reg_.get(), &error));
   EXPECT_EQ(1, transport_->GetRequestCount());
   EXPECT_TRUE(error->HasError(buffet::kErrorDomainOAuth2,
                               "invalid_grant"));
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 897c8a4..33b1763 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -83,7 +83,7 @@
 void Manager::CheckDeviceRegistered(DBusMethodResponse<std::string> response) {
   LOG(INFO) << "Received call to Manager.CheckDeviceRegistered()";
   chromeos::ErrorPtr error;
-  bool registered = device_info_->CheckRegistration(&error);
+  bool registered = device_info_->HaveRegistrationCredentials(&error);
   // If it fails due to any reason other than 'device not registered',
   // treat it as a real error and report it to the caller.
   if (!registered &&
