| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 return false; | 73 return false; |
| 74 } | 74 } |
| 75 | 75 |
| 76 bool RemoveLoginsSyncedBetween( | 76 bool RemoveLoginsSyncedBetween( |
| 77 base::Time delete_begin, | 77 base::Time delete_begin, |
| 78 base::Time delete_end, | 78 base::Time delete_end, |
| 79 password_manager::PasswordStoreChangeList* changes) override { | 79 password_manager::PasswordStoreChangeList* changes) override { |
| 80 return false; | 80 return false; |
| 81 } | 81 } |
| 82 | 82 |
| 83 // Inserts some unexpected values into |forms|. Useful as a landmine to check |
| 84 // whether results of failed Get*Logins calls get ignored. |
| 85 static InsertTrashForms(ScopedVector<autofill::PasswordForm>* forms) { |
| 86 PasswordForm trash; |
| 87 trash.username_element = base::ASCIIToUTF16("trash u. element"); |
| 88 trash.username_value = base::ASCIIToUTF16("trash u. value"); |
| 89 trash.password_element = base::ASCIIToUTF16("trash p. element"); |
| 90 trash.password_value = base::ASCIIToUTF16("trash p. value"); |
| 91 for (size_t i = 0; i < 3; ++i) { |
| 92 trash.origin = base::StringPrintf("http://trash%zu.com", i); |
| 93 forms->push_back(new PasswordForm(trash)); |
| 94 } |
| 95 } |
| 96 |
| 83 bool GetLogins(const PasswordForm& form, | 97 bool GetLogins(const PasswordForm& form, |
| 84 ScopedVector<autofill::PasswordForm>* forms) override { | 98 ScopedVector<autofill::PasswordForm>* forms) override { |
| 99 InsertTrashForms(forms); |
| 85 return false; | 100 return false; |
| 86 } | 101 } |
| 87 | 102 |
| 88 bool GetAutofillableLogins( | 103 bool GetAutofillableLogins( |
| 89 ScopedVector<autofill::PasswordForm>* forms) override { | 104 ScopedVector<autofill::PasswordForm>* forms) override { |
| 105 InsertTrashForms(forms); |
| 90 return false; | 106 return false; |
| 91 } | 107 } |
| 92 bool GetBlacklistLogins( | 108 bool GetBlacklistLogins( |
| 93 ScopedVector<autofill::PasswordForm>* forms) override { | 109 ScopedVector<autofill::PasswordForm>* forms) override { |
| 110 InsertTrashForms(forms); |
| 94 return false; | 111 return false; |
| 95 } | 112 } |
| 96 }; | 113 }; |
| 97 | 114 |
| 98 class MockBackend : public PasswordStoreX::NativeBackend { | 115 class MockBackend : public PasswordStoreX::NativeBackend { |
| 99 public: | 116 public: |
| 100 bool Init() override { return true; } | 117 bool Init() override { return true; } |
| 101 | 118 |
| 102 PasswordStoreChangeList AddLogin(const PasswordForm& form) override { | 119 PasswordStoreChangeList AddLogin(const PasswordForm& form) override { |
| 103 all_forms_.push_back(form); | 120 all_forms_.push_back(form); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 public: | 217 public: |
| 201 MOCK_METHOD1(OnLoginDatabaseQueryDone, | 218 MOCK_METHOD1(OnLoginDatabaseQueryDone, |
| 202 void(const std::vector<PasswordForm*>&)); | 219 void(const std::vector<PasswordForm*>&)); |
| 203 }; | 220 }; |
| 204 | 221 |
| 205 void LoginDatabaseQueryCallback(password_manager::LoginDatabase* login_db, | 222 void LoginDatabaseQueryCallback(password_manager::LoginDatabase* login_db, |
| 206 bool autofillable, | 223 bool autofillable, |
| 207 MockLoginDatabaseReturn* mock_return) { | 224 MockLoginDatabaseReturn* mock_return) { |
| 208 ScopedVector<autofill::PasswordForm> forms; | 225 ScopedVector<autofill::PasswordForm> forms; |
| 209 if (autofillable) | 226 if (autofillable) |
| 210 login_db->GetAutofillableLogins(&forms); | 227 EXPECT_TRUE(login_db->GetAutofillableLogins(&forms)); |
| 211 else | 228 else |
| 212 login_db->GetBlacklistLogins(&forms); | 229 EXPECT_TRUE(login_db->GetBlacklistLogins(&forms)); |
| 213 mock_return->OnLoginDatabaseQueryDone(forms.get()); | 230 mock_return->OnLoginDatabaseQueryDone(forms.get()); |
| 214 } | 231 } |
| 215 | 232 |
| 216 // Generate |count| expected logins, either auto-fillable or blacklisted. | 233 // Generate |count| expected logins, either auto-fillable or blacklisted. |
| 217 void InitExpectedForms(bool autofillable, | 234 void InitExpectedForms(bool autofillable, |
| 218 size_t count, | 235 size_t count, |
| 219 ScopedVector<autofill::PasswordForm>* forms) { | 236 ScopedVector<autofill::PasswordForm>* forms) { |
| 220 const char* domain = autofillable ? "example" : "blacklisted"; | 237 const char* domain = autofillable ? "example" : "blacklisted"; |
| 221 for (size_t i = 0; i < count; ++i) { | 238 for (size_t i = 0; i < count; ++i) { |
| 222 std::string realm = base::StringPrintf("http://%zu.%s.com", i, domain); | 239 std::string realm = base::StringPrintf("http://%zu.%s.com", i, domain); |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 | 476 |
| 460 INSTANTIATE_TEST_CASE_P(NoBackend, | 477 INSTANTIATE_TEST_CASE_P(NoBackend, |
| 461 PasswordStoreXTest, | 478 PasswordStoreXTest, |
| 462 testing::Values(NO_BACKEND)); | 479 testing::Values(NO_BACKEND)); |
| 463 INSTANTIATE_TEST_CASE_P(FailingBackend, | 480 INSTANTIATE_TEST_CASE_P(FailingBackend, |
| 464 PasswordStoreXTest, | 481 PasswordStoreXTest, |
| 465 testing::Values(FAILING_BACKEND)); | 482 testing::Values(FAILING_BACKEND)); |
| 466 INSTANTIATE_TEST_CASE_P(WorkingBackend, | 483 INSTANTIATE_TEST_CASE_P(WorkingBackend, |
| 467 PasswordStoreXTest, | 484 PasswordStoreXTest, |
| 468 testing::Values(WORKING_BACKEND)); | 485 testing::Values(WORKING_BACKEND)); |
| OLD | NEW |