Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Unified Diff: components/os_crypt/kwallet_dbus_unittest.cc

Issue 2150543002: OSCrypt supports encryption with KWallet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: feedback Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/os_crypt/kwallet_dbus_unittest.cc
diff --git a/components/os_crypt/kwallet_dbus_unittest.cc b/components/os_crypt/kwallet_dbus_unittest.cc
index 24d6b8e81d1344199ad6cd95690b3d11677b3615..bc494f161d4d46782ed5fd9c4ea0eaea065e8dcc 100644
--- a/components/os_crypt/kwallet_dbus_unittest.cc
+++ b/components/os_crypt/kwallet_dbus_unittest.cc
@@ -272,6 +272,61 @@ MATCHER_P5(ArgumentsAreStringStringsStringsStringBool,
return true;
}
+MATCHER_P5(ArgumentsAreIntStringStringStringString,
+ int_1,
+ str_2,
+ str_3,
+ str_4,
+ str_5,
+ "") {
+ dbus::MessageReader reader(arg);
+
+ int32_t i;
+ EXPECT_TRUE(reader.PopInt32(&i));
+ if (int_1 != i)
+ return false;
+
+ std::string str;
+ EXPECT_TRUE(reader.PopString(&str));
+ if (str_2 != str)
+ return false;
+
+ EXPECT_TRUE(reader.PopString(&str));
+ if (str_3 != str)
+ return false;
+
+ EXPECT_TRUE(reader.PopString(&str));
+ if (str_4 != str)
+ return false;
+
+ EXPECT_TRUE(reader.PopString(&str));
+ if (str_5 != str)
+ return false;
+
+ return true;
+}
+
+MATCHER_P3(ArgumentsAreIntBoolString, int_1, bool_2, str_3, "") {
+ dbus::MessageReader reader(arg);
+
+ int32_t i;
+ EXPECT_TRUE(reader.PopInt32(&i));
+ if (int_1 != i)
+ return false;
+
+ bool b;
+ EXPECT_TRUE(reader.PopBool(&b));
+ if (bool_2 != b)
+ return false;
+
+ std::string str;
+ EXPECT_TRUE(reader.PopString(&str));
+ if (str_3 != str)
+ return false;
+
+ return true;
+}
+
TEST_P(KWalletDBusTest, StartWalletd) {
// The receiver of the message takes ownership of the response object.
dbus::Response* response_success = RespondEmpty();
@@ -693,4 +748,145 @@ TEST_P(KWalletDBusTest, CreateFolderErrorContact) {
kwallet_dbus_.CreateFolder(123, "folder", "app", &created_folder));
}
+TEST_P(KWalletDBusTest, WritePassword) {
+ EXPECT_CALL(*mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(
+ AllOf(Calls(kKWalletInterface, "writePassword"),
+ ArgumentsAreIntStringStringStringString(
+ 123, "folder", "key", "password", "app")),
+ _))
+ .WillOnce(Return(RespondInt32(0)));
+
+ bool write_success = false;
+ EXPECT_EQ(KWalletDBus::Error::SUCCESS,
+ kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app",
+ &write_success));
+ EXPECT_TRUE(write_success);
+}
+
+TEST_P(KWalletDBusTest, WritePasswordRejected) {
+ EXPECT_CALL(*mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(
+ AllOf(Calls(kKWalletInterface, "writePassword"),
+ ArgumentsAreIntStringStringStringString(
+ 123, "folder", "key", "password", "app")),
+ _))
+ .WillOnce(Return(RespondInt32(-1)));
+
+ bool write_success = true;
+ EXPECT_EQ(KWalletDBus::Error::SUCCESS,
+ kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app",
+ &write_success));
+ EXPECT_FALSE(write_success);
+}
+
+TEST_P(KWalletDBusTest, WritePasswordErrorRead) {
+ EXPECT_CALL(
+ *mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(Calls(kKWalletInterface, "writePassword"), _))
+ .WillOnce(Return(RespondEmpty()));
+
+ bool write_success = false;
+ EXPECT_EQ(KWalletDBus::Error::CANNOT_READ,
+ kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app",
+ &write_success));
+}
+
+TEST_P(KWalletDBusTest, WritePasswordErrorContact) {
+ EXPECT_CALL(
+ *mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(Calls(kKWalletInterface, "writePassword"), _))
+ .WillOnce(Return(nullptr));
+
+ bool write_success = false;
+ EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT,
+ kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app",
+ &write_success));
+}
+
+TEST_P(KWalletDBusTest, ReadPassword) {
+ EXPECT_CALL(
+ *mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(
+ AllOf(Calls(kKWalletInterface, "readPassword"),
+ ArgumentsAreIntStringStringString(123, "folder", "key", "app")),
+ _))
+ .WillOnce(Return(RespondString("password")));
+
+ std::string password;
+ EXPECT_EQ(KWalletDBus::Error::SUCCESS,
+ kwallet_dbus_.ReadPassword(123, "folder", "key", "app", &password));
+ EXPECT_EQ("password", password);
+}
+
+TEST_P(KWalletDBusTest, ReadPasswordErrorRead) {
+ EXPECT_CALL(
+ *mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(Calls(kKWalletInterface, "readPassword"), _))
+ .WillOnce(Return(RespondEmpty()));
+
+ std::string password;
+ EXPECT_EQ(KWalletDBus::Error::CANNOT_READ,
+ kwallet_dbus_.ReadPassword(123, "folder", "key", "app", &password));
+}
+
+TEST_P(KWalletDBusTest, ReadPasswordErrorContact) {
+ EXPECT_CALL(
+ *mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(Calls(kKWalletInterface, "readPassword"), _))
+ .WillOnce(Return(nullptr));
+
+ std::string password;
+ EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT,
+ kwallet_dbus_.ReadPassword(123, "folder", "key", "app", &password));
+}
+
+TEST_P(KWalletDBusTest, CloseSuccess) {
+ EXPECT_CALL(*mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(
+ AllOf(Calls(kKWalletInterface, "close"),
+ ArgumentsAreIntBoolString(123, false, "app")),
+ _))
+ .WillOnce(Return(RespondInt32(0)));
+
+ bool success = false;
+ EXPECT_EQ(KWalletDBus::Error::SUCCESS,
+ kwallet_dbus_.Close(123, false, "app", &success));
+ EXPECT_TRUE(success);
+}
+
+TEST_P(KWalletDBusTest, CloseUnsuccessful) {
+ EXPECT_CALL(*mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(
+ AllOf(Calls(kKWalletInterface, "close"),
+ ArgumentsAreIntBoolString(123, false, "app")),
+ _))
+ .WillOnce(Return(RespondInt32(1)));
+
+ bool success = true;
+ EXPECT_EQ(KWalletDBus::Error::SUCCESS,
+ kwallet_dbus_.Close(123, false, "app", &success));
+ EXPECT_FALSE(success);
+}
+
+TEST_P(KWalletDBusTest, CloseErrorRead) {
+ EXPECT_CALL(*mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(Calls(kKWalletInterface, "close"), _))
+ .WillOnce(Return(RespondEmpty()));
+
+ bool success = true;
+ EXPECT_EQ(KWalletDBus::Error::CANNOT_READ,
+ kwallet_dbus_.Close(123, false, "app", &success));
+}
+
+TEST_P(KWalletDBusTest, CloseErrorContact) {
+ EXPECT_CALL(*mock_kwallet_proxy_.get(),
+ MockCallMethodAndBlock(Calls(kKWalletInterface, "close"), _))
+ .WillOnce(Return(nullptr));
+
+ bool success = true;
+ EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT,
+ kwallet_dbus_.Close(123, false, "app", &success));
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698