OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/os_crypt/kwallet_dbus.h" | 5 #include "components/os_crypt/kwallet_dbus.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 return false; | 265 return false; |
266 | 266 |
267 bool b; | 267 bool b; |
268 EXPECT_TRUE(reader.PopBool(&b)); | 268 EXPECT_TRUE(reader.PopBool(&b)); |
269 if (bool_5 != b) | 269 if (bool_5 != b) |
270 return false; | 270 return false; |
271 | 271 |
272 return true; | 272 return true; |
273 } | 273 } |
274 | 274 |
| 275 MATCHER_P5(ArgumentsAreIntStringStringStringString, |
| 276 int_1, |
| 277 str_2, |
| 278 str_3, |
| 279 str_4, |
| 280 str_5, |
| 281 "") { |
| 282 dbus::MessageReader reader(arg); |
| 283 |
| 284 int32_t i; |
| 285 EXPECT_TRUE(reader.PopInt32(&i)); |
| 286 if (int_1 != i) |
| 287 return false; |
| 288 |
| 289 std::string str; |
| 290 EXPECT_TRUE(reader.PopString(&str)); |
| 291 if (str_2 != str) |
| 292 return false; |
| 293 |
| 294 EXPECT_TRUE(reader.PopString(&str)); |
| 295 if (str_3 != str) |
| 296 return false; |
| 297 |
| 298 EXPECT_TRUE(reader.PopString(&str)); |
| 299 if (str_4 != str) |
| 300 return false; |
| 301 |
| 302 EXPECT_TRUE(reader.PopString(&str)); |
| 303 if (str_5 != str) |
| 304 return false; |
| 305 |
| 306 return true; |
| 307 } |
| 308 |
| 309 MATCHER_P3(ArgumentsAreIntBoolString, int_1, bool_2, str_3, "") { |
| 310 dbus::MessageReader reader(arg); |
| 311 |
| 312 int32_t i; |
| 313 EXPECT_TRUE(reader.PopInt32(&i)); |
| 314 if (int_1 != i) |
| 315 return false; |
| 316 |
| 317 bool b; |
| 318 EXPECT_TRUE(reader.PopBool(&b)); |
| 319 if (bool_2 != b) |
| 320 return false; |
| 321 |
| 322 std::string str; |
| 323 EXPECT_TRUE(reader.PopString(&str)); |
| 324 if (str_3 != str) |
| 325 return false; |
| 326 |
| 327 return true; |
| 328 } |
| 329 |
275 TEST_P(KWalletDBusTest, StartWalletd) { | 330 TEST_P(KWalletDBusTest, StartWalletd) { |
276 // The receiver of the message takes ownership of the response object. | 331 // The receiver of the message takes ownership of the response object. |
277 dbus::Response* response_success = RespondEmpty(); | 332 dbus::Response* response_success = RespondEmpty(); |
278 dbus::MessageWriter writer(response_success); | 333 dbus::MessageWriter writer(response_success); |
279 writer.AppendInt32(0); // return code | 334 writer.AppendInt32(0); // return code |
280 writer.AppendString("dbus_name"); | 335 writer.AppendString("dbus_name"); |
281 writer.AppendString(std::string()); // error message | 336 writer.AppendString(std::string()); // error message |
282 writer.AppendInt32(100); // pid | 337 writer.AppendInt32(100); // pid |
283 | 338 |
284 EXPECT_CALL( | 339 EXPECT_CALL( |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 EXPECT_CALL( | 741 EXPECT_CALL( |
687 *mock_kwallet_proxy_.get(), | 742 *mock_kwallet_proxy_.get(), |
688 MockCallMethodAndBlock(Calls(kKWalletInterface, "createFolder"), _)) | 743 MockCallMethodAndBlock(Calls(kKWalletInterface, "createFolder"), _)) |
689 .WillOnce(Return(nullptr)); | 744 .WillOnce(Return(nullptr)); |
690 | 745 |
691 bool created_folder = false; | 746 bool created_folder = false; |
692 EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT, | 747 EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT, |
693 kwallet_dbus_.CreateFolder(123, "folder", "app", &created_folder)); | 748 kwallet_dbus_.CreateFolder(123, "folder", "app", &created_folder)); |
694 } | 749 } |
695 | 750 |
| 751 TEST_P(KWalletDBusTest, WritePassword) { |
| 752 EXPECT_CALL(*mock_kwallet_proxy_.get(), |
| 753 MockCallMethodAndBlock( |
| 754 AllOf(Calls(kKWalletInterface, "writePassword"), |
| 755 ArgumentsAreIntStringStringStringString( |
| 756 123, "folder", "key", "password", "app")), |
| 757 _)) |
| 758 .WillOnce(Return(RespondInt32(0))); |
| 759 |
| 760 bool write_success = false; |
| 761 EXPECT_EQ(KWalletDBus::Error::SUCCESS, |
| 762 kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app", |
| 763 &write_success)); |
| 764 EXPECT_TRUE(write_success); |
| 765 } |
| 766 |
| 767 TEST_P(KWalletDBusTest, WritePasswordRejected) { |
| 768 EXPECT_CALL(*mock_kwallet_proxy_.get(), |
| 769 MockCallMethodAndBlock( |
| 770 AllOf(Calls(kKWalletInterface, "writePassword"), |
| 771 ArgumentsAreIntStringStringStringString( |
| 772 123, "folder", "key", "password", "app")), |
| 773 _)) |
| 774 .WillOnce(Return(RespondInt32(-1))); |
| 775 |
| 776 bool write_success = true; |
| 777 EXPECT_EQ(KWalletDBus::Error::SUCCESS, |
| 778 kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app", |
| 779 &write_success)); |
| 780 EXPECT_FALSE(write_success); |
| 781 } |
| 782 |
| 783 TEST_P(KWalletDBusTest, WritePasswordErrorRead) { |
| 784 EXPECT_CALL( |
| 785 *mock_kwallet_proxy_.get(), |
| 786 MockCallMethodAndBlock(Calls(kKWalletInterface, "writePassword"), _)) |
| 787 .WillOnce(Return(RespondEmpty())); |
| 788 |
| 789 bool write_success = false; |
| 790 EXPECT_EQ(KWalletDBus::Error::CANNOT_READ, |
| 791 kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app", |
| 792 &write_success)); |
| 793 } |
| 794 |
| 795 TEST_P(KWalletDBusTest, WritePasswordErrorContact) { |
| 796 EXPECT_CALL( |
| 797 *mock_kwallet_proxy_.get(), |
| 798 MockCallMethodAndBlock(Calls(kKWalletInterface, "writePassword"), _)) |
| 799 .WillOnce(Return(nullptr)); |
| 800 |
| 801 bool write_success = false; |
| 802 EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT, |
| 803 kwallet_dbus_.WritePassword(123, "folder", "key", "password", "app", |
| 804 &write_success)); |
| 805 } |
| 806 |
| 807 TEST_P(KWalletDBusTest, ReadPassword) { |
| 808 EXPECT_CALL( |
| 809 *mock_kwallet_proxy_.get(), |
| 810 MockCallMethodAndBlock( |
| 811 AllOf(Calls(kKWalletInterface, "readPassword"), |
| 812 ArgumentsAreIntStringStringString(123, "folder", "key", "app")), |
| 813 _)) |
| 814 .WillOnce(Return(RespondString("password"))); |
| 815 |
| 816 std::string password; |
| 817 EXPECT_EQ(KWalletDBus::Error::SUCCESS, |
| 818 kwallet_dbus_.ReadPassword(123, "folder", "key", "app", &password)); |
| 819 EXPECT_EQ("password", password); |
| 820 } |
| 821 |
| 822 TEST_P(KWalletDBusTest, ReadPasswordErrorRead) { |
| 823 EXPECT_CALL( |
| 824 *mock_kwallet_proxy_.get(), |
| 825 MockCallMethodAndBlock(Calls(kKWalletInterface, "readPassword"), _)) |
| 826 .WillOnce(Return(RespondEmpty())); |
| 827 |
| 828 std::string password; |
| 829 EXPECT_EQ(KWalletDBus::Error::CANNOT_READ, |
| 830 kwallet_dbus_.ReadPassword(123, "folder", "key", "app", &password)); |
| 831 } |
| 832 |
| 833 TEST_P(KWalletDBusTest, ReadPasswordErrorContact) { |
| 834 EXPECT_CALL( |
| 835 *mock_kwallet_proxy_.get(), |
| 836 MockCallMethodAndBlock(Calls(kKWalletInterface, "readPassword"), _)) |
| 837 .WillOnce(Return(nullptr)); |
| 838 |
| 839 std::string password; |
| 840 EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT, |
| 841 kwallet_dbus_.ReadPassword(123, "folder", "key", "app", &password)); |
| 842 } |
| 843 |
| 844 TEST_P(KWalletDBusTest, CloseSuccess) { |
| 845 EXPECT_CALL(*mock_kwallet_proxy_.get(), |
| 846 MockCallMethodAndBlock( |
| 847 AllOf(Calls(kKWalletInterface, "close"), |
| 848 ArgumentsAreIntBoolString(123, false, "app")), |
| 849 _)) |
| 850 .WillOnce(Return(RespondInt32(0))); |
| 851 |
| 852 bool success = false; |
| 853 EXPECT_EQ(KWalletDBus::Error::SUCCESS, |
| 854 kwallet_dbus_.Close(123, false, "app", &success)); |
| 855 EXPECT_TRUE(success); |
| 856 } |
| 857 |
| 858 TEST_P(KWalletDBusTest, CloseUnsuccessful) { |
| 859 EXPECT_CALL(*mock_kwallet_proxy_.get(), |
| 860 MockCallMethodAndBlock( |
| 861 AllOf(Calls(kKWalletInterface, "close"), |
| 862 ArgumentsAreIntBoolString(123, false, "app")), |
| 863 _)) |
| 864 .WillOnce(Return(RespondInt32(1))); |
| 865 |
| 866 bool success = true; |
| 867 EXPECT_EQ(KWalletDBus::Error::SUCCESS, |
| 868 kwallet_dbus_.Close(123, false, "app", &success)); |
| 869 EXPECT_FALSE(success); |
| 870 } |
| 871 |
| 872 TEST_P(KWalletDBusTest, CloseErrorRead) { |
| 873 EXPECT_CALL(*mock_kwallet_proxy_.get(), |
| 874 MockCallMethodAndBlock(Calls(kKWalletInterface, "close"), _)) |
| 875 .WillOnce(Return(RespondEmpty())); |
| 876 |
| 877 bool success = true; |
| 878 EXPECT_EQ(KWalletDBus::Error::CANNOT_READ, |
| 879 kwallet_dbus_.Close(123, false, "app", &success)); |
| 880 } |
| 881 |
| 882 TEST_P(KWalletDBusTest, CloseErrorContact) { |
| 883 EXPECT_CALL(*mock_kwallet_proxy_.get(), |
| 884 MockCallMethodAndBlock(Calls(kKWalletInterface, "close"), _)) |
| 885 .WillOnce(Return(nullptr)); |
| 886 |
| 887 bool success = true; |
| 888 EXPECT_EQ(KWalletDBus::Error::CANNOT_CONTACT, |
| 889 kwallet_dbus_.Close(123, false, "app", &success)); |
| 890 } |
| 891 |
696 } // namespace | 892 } // namespace |
OLD | NEW |