Index: chromeos/dbus/biod/biod_client_unittest.cc |
diff --git a/chromeos/dbus/biod/biod_client_unittest.cc b/chromeos/dbus/biod/biod_client_unittest.cc |
index ec86d098b77081aed6d556f4d4493677ea977746..b3185cbb46f2a184a4258bd3f2d622805a27cde4 100644 |
--- a/chromeos/dbus/biod/biod_client_unittest.cc |
+++ b/chromeos/dbus/biod/biod_client_unittest.cc |
@@ -52,6 +52,18 @@ void CopyString(std::string* dest_str, const std::string& src_str) { |
*dest_str = src_str; |
} |
+void CopyDBusMethodCallStatus(DBusMethodCallStatus* dest_status, |
+ DBusMethodCallStatus src_status) { |
+ CHECK(dest_status); |
+ *dest_status = src_status; |
+} |
+ |
+void CopyBiometricType(biod::BiometricType* dest_type, |
+ biod::BiometricType src_type) { |
+ CHECK(dest_type); |
+ *dest_type = src_type; |
+} |
+ |
// Matcher that verifies that a dbus::Message has member |name|. |
MATCHER_P(HasMember, name, "") { |
if (arg->GetMember() != name) { |
@@ -135,7 +147,7 @@ class BiodClientTest : public testing::Test { |
protected: |
// Add an expectation for method with |method_name| to be called. When the |
- // method is called the response shoudl match |response|. |
+ // method is called the response should match |response|. |
void AddMethodExpectation(const std::string& method_name, |
std::unique_ptr<dbus::Response> response) { |
ASSERT_FALSE(pending_method_calls_.count(method_name)); |
@@ -258,7 +270,7 @@ TEST_F(BiodClientTest, TestStartEnrollSession) { |
EXPECT_EQ(kFakeObjectPath, returned_path); |
// Verify that by sending a empty reponse or a improperly formatted one, the |
- // response is an empty object path. Also, logs will get printed. |
+ // response is an empty object path. |
AddMethodExpectation(biod::kBiometricsManagerStartEnrollSessionMethod, |
nullptr); |
returned_path = dbus::ObjectPath(kInvalidTestPath); |
@@ -302,7 +314,7 @@ TEST_F(BiodClientTest, TestGetRecordsForUser) { |
EXPECT_EQ(kFakeObjectPaths, returned_object_paths); |
// Verify that by sending a empty reponse the response is an empty array of |
- // object paths. Also, logs will get printed. |
+ // object paths. |
AddMethodExpectation(biod::kBiometricsManagerGetRecordsForUserMethod, |
nullptr); |
returned_object_paths = {dbus::ObjectPath(kInvalidTestPath)}; |
@@ -312,6 +324,29 @@ TEST_F(BiodClientTest, TestGetRecordsForUser) { |
EXPECT_EQ(std::vector<dbus::ObjectPath>(), returned_object_paths); |
} |
+TEST_F(BiodClientTest, TestDestroyAllRecords) { |
+ std::unique_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); |
+ dbus::MessageWriter writer(response.get()); |
+ |
+ // Create an empty response to simulate success. |
+ AddMethodExpectation(biod::kBiometricsManagerDestroyAllRecordsMethod, |
+ std::move(response)); |
+ DBusMethodCallStatus returned_status = static_cast<DBusMethodCallStatus>(-1); |
+ client_->DestroyAllRecords( |
+ base::Bind(&CopyDBusMethodCallStatus, &returned_status)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, returned_status); |
+ |
+ // Return a null response to simulate failure. |
+ AddMethodExpectation(biod::kBiometricsManagerDestroyAllRecordsMethod, |
+ nullptr); |
+ returned_status = static_cast<DBusMethodCallStatus>(-1); |
+ client_->DestroyAllRecords( |
+ base::Bind(&CopyDBusMethodCallStatus, &returned_status)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(DBUS_METHOD_CALL_FAILURE, returned_status); |
+} |
+ |
TEST_F(BiodClientTest, TestStartAuthentication) { |
const dbus::ObjectPath kFakeObjectPath(std::string("/fake/object/path")); |
@@ -329,7 +364,7 @@ TEST_F(BiodClientTest, TestStartAuthentication) { |
EXPECT_EQ(kFakeObjectPath, returned_path); |
// Verify that by sending a empty reponse or a improperly formatted one, the |
- // response is an empty object path. Also, logs will get printed. |
+ // response is an empty object path. |
AddMethodExpectation(biod::kBiometricsManagerStartAuthSessionMethod, nullptr); |
returned_path = dbus::ObjectPath(kInvalidTestPath); |
client_->StartAuthSession(base::Bind(&CopyObjectPath, &returned_path)); |
@@ -347,6 +382,60 @@ TEST_F(BiodClientTest, TestStartAuthentication) { |
EXPECT_EQ(dbus::ObjectPath(), returned_path); |
} |
+TEST_F(BiodClientTest, TestRequestBiometricType) { |
+ const biod::BiometricType kFakeBiometricType = |
+ biod::BIOMETRIC_TYPE_FINGERPRINT; |
+ |
+ std::unique_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); |
+ dbus::MessageWriter writer(response.get()); |
+ writer.AppendVariantOfUint32(static_cast<uint32_t>(kFakeBiometricType)); |
+ |
+ // Create a fake response with biometric type. The get label call should |
+ // return this exact biometric type. |
+ biod::BiometricType returned_biometric_type = biod::BIOMETRIC_TYPE_MAX; |
+ AddMethodExpectation(dbus::kDBusPropertiesGet, std::move(response)); |
+ client_->RequestType( |
+ base::Bind(&CopyBiometricType, &returned_biometric_type)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(kFakeBiometricType, returned_biometric_type); |
+ |
+ // Verify that by sending a null reponse, the result is an unknown biometric |
+ // type. |
+ returned_biometric_type = biod::BIOMETRIC_TYPE_MAX; |
+ AddMethodExpectation(dbus::kDBusPropertiesGet, nullptr); |
+ client_->RequestType( |
+ base::Bind(&CopyBiometricType, &returned_biometric_type)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(biod::BiometricType::BIOMETRIC_TYPE_UNKNOWN, |
+ returned_biometric_type); |
+} |
+ |
+TEST_F(BiodClientTest, TestRequestRecordLabel) { |
+ const std::string kFakeLabel("fakeLabel"); |
+ const dbus::ObjectPath kFakeRecordPath(std::string("/fake/record/path")); |
+ |
+ std::unique_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); |
+ dbus::MessageWriter writer(response.get()); |
+ writer.AppendString(kFakeLabel); |
+ |
+ // Create a fake response with string. The get label call should return this |
+ // exact string. |
+ std::string returned_label = kInvalidString; |
+ AddMethodExpectation(dbus::kDBusPropertiesGet, std::move(response)); |
+ client_->RequestRecordLabel(kFakeRecordPath, |
+ base::Bind(&CopyString, &returned_label)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(kFakeLabel, returned_label); |
+ |
+ // Verify that by sending a null reponse, the result is an empty string. |
+ returned_label = kInvalidString; |
+ AddMethodExpectation(dbus::kDBusPropertiesGet, nullptr); |
+ client_->RequestRecordLabel(kFakeRecordPath, |
+ base::Bind(&CopyString, &returned_label)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ("", returned_label); |
+} |
+ |
// Verify when signals are mocked, an observer will catch the signals as |
// expected. |
TEST_F(BiodClientTest, TestNotifyObservers) { |
@@ -378,31 +467,4 @@ TEST_F(BiodClientTest, TestNotifyObservers) { |
EXPECT_EQ(1, observer.num_auth_scans_received()); |
EXPECT_EQ(1, observer.num_failures_received()); |
} |
- |
-TEST_F(BiodClientTest, TestGetRecordLabel) { |
- const std::string kFakeLabel("fakeLabel"); |
- const dbus::ObjectPath kFakeRecordPath(std::string("/fake/record/path")); |
- |
- std::unique_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); |
- dbus::MessageWriter writer(response.get()); |
- writer.AppendString(kFakeLabel); |
- |
- // Create a fake response with string. The get label call should return this |
- // exact string. |
- std::string returned_label = kInvalidString; |
- AddMethodExpectation(dbus::kDBusPropertiesGet, std::move(response)); |
- client_->RequestRecordLabel(kFakeRecordPath, |
- base::Bind(&CopyString, &returned_label)); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ(kFakeLabel, returned_label); |
- |
- // Verify that by sending a empty reponse the response is an empty string. |
- // Also, logs will get printed. |
- returned_label = kInvalidString; |
- AddMethodExpectation(dbus::kDBusPropertiesGet, nullptr); |
- client_->RequestRecordLabel(kFakeRecordPath, |
- base::Bind(&CopyString, &returned_label)); |
- base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ("", returned_label); |
-} |
} // namespace chromeos |