| 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 // The passwords in the tests below are all empty because PasswordStoreDefault | 5 // The passwords in the tests below are all empty because PasswordStoreDefault |
| 6 // does not store the actual passwords on OS X (they are stored in the Keychain | 6 // does not store the actual passwords on OS X (they are stored in the Keychain |
| 7 // instead). We could special-case it, but it is easier to just have empty | 7 // instead). We could special-case it, but it is easier to just have empty |
| 8 // passwords. This will not be needed anymore if crbug.com/466638 is fixed. | 8 // passwords. This will not be needed anymore if crbug.com/466638 is fixed. |
| 9 | 9 |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| 11 #include <utility> |
| 11 | 12 |
| 12 #include "base/bind.h" | 13 #include "base/bind.h" |
| 13 #include "base/files/scoped_temp_dir.h" | 14 #include "base/files/scoped_temp_dir.h" |
| 14 #include "base/macros.h" | 15 #include "base/macros.h" |
| 15 #include "base/stl_util.h" | 16 #include "base/stl_util.h" |
| 16 #include "base/strings/string_util.h" | 17 #include "base/strings/string_util.h" |
| 17 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
| 18 #include "base/synchronization/waitable_event.h" | 19 #include "base/synchronization/waitable_event.h" |
| 19 #include "base/thread_task_runner_handle.h" | 20 #include "base/thread_task_runner_handle.h" |
| 20 #include "base/time/time.h" | 21 #include "base/time/time.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 L"username_element", | 163 L"username_element", |
| 163 L"password_element", | 164 L"password_element", |
| 164 L"username_value", | 165 L"username_value", |
| 165 L"", | 166 L"", |
| 166 true, false, cutoff - 1 }, | 167 true, false, cutoff - 1 }, |
| 167 }; | 168 }; |
| 168 | 169 |
| 169 // Build the forms vector and add the forms to the store. | 170 // Build the forms vector and add the forms to the store. |
| 170 ScopedVector<PasswordForm> all_forms; | 171 ScopedVector<PasswordForm> all_forms; |
| 171 for (size_t i = 0; i < arraysize(form_data); ++i) { | 172 for (size_t i = 0; i < arraysize(form_data); ++i) { |
| 172 all_forms.push_back( | 173 all_forms.push_back(CreatePasswordFormFromDataForTesting(form_data[i])); |
| 173 CreatePasswordFormFromDataForTesting(form_data[i]).Pass()); | |
| 174 store->AddLogin(*all_forms.back()); | 174 store->AddLogin(*all_forms.back()); |
| 175 } | 175 } |
| 176 base::MessageLoop::current()->RunUntilIdle(); | 176 base::MessageLoop::current()->RunUntilIdle(); |
| 177 | 177 |
| 178 // We expect to get back only the "recent" www.google.com login. | 178 // We expect to get back only the "recent" www.google.com login. |
| 179 // Theoretically these should never actually exist since there are no longer | 179 // Theoretically these should never actually exist since there are no longer |
| 180 // any login forms on www.google.com to save, but we technically allow them. | 180 // any login forms on www.google.com to save, but we technically allow them. |
| 181 // We should not get back the older saved password though. | 181 // We should not get back the older saved password though. |
| 182 PasswordForm www_google; | 182 PasswordForm www_google; |
| 183 www_google.scheme = PasswordForm::SCHEME_HTML; | 183 www_google.scheme = PasswordForm::SCHEME_HTML; |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 old_primary_key.signon_realm = old_form->signon_realm; | 333 old_primary_key.signon_realm = old_form->signon_realm; |
| 334 old_primary_key.origin = old_form->origin; | 334 old_primary_key.origin = old_form->origin; |
| 335 old_primary_key.username_element = old_form->username_element; | 335 old_primary_key.username_element = old_form->username_element; |
| 336 old_primary_key.username_value = old_form->username_value; | 336 old_primary_key.username_value = old_form->username_value; |
| 337 old_primary_key.password_element = old_form->password_element; | 337 old_primary_key.password_element = old_form->password_element; |
| 338 store->UpdateLoginWithPrimaryKey(*new_form, old_primary_key); | 338 store->UpdateLoginWithPrimaryKey(*new_form, old_primary_key); |
| 339 base::MessageLoop::current()->RunUntilIdle(); | 339 base::MessageLoop::current()->RunUntilIdle(); |
| 340 | 340 |
| 341 MockPasswordStoreConsumer mock_consumer; | 341 MockPasswordStoreConsumer mock_consumer; |
| 342 ScopedVector<autofill::PasswordForm> expected_forms; | 342 ScopedVector<autofill::PasswordForm> expected_forms; |
| 343 expected_forms.push_back(new_form.Pass()); | 343 expected_forms.push_back(std::move(new_form)); |
| 344 EXPECT_CALL(mock_consumer, | 344 EXPECT_CALL(mock_consumer, |
| 345 OnGetPasswordStoreResultsConstRef( | 345 OnGetPasswordStoreResultsConstRef( |
| 346 UnorderedPasswordFormElementsAre(expected_forms.get()))); | 346 UnorderedPasswordFormElementsAre(expected_forms.get()))); |
| 347 store->GetAutofillableLogins(&mock_consumer); | 347 store->GetAutofillableLogins(&mock_consumer); |
| 348 base::MessageLoop::current()->RunUntilIdle(); | 348 base::MessageLoop::current()->RunUntilIdle(); |
| 349 | 349 |
| 350 store->RemoveObserver(&mock_observer); | 350 store->RemoveObserver(&mock_observer); |
| 351 store->ShutdownOnUIThread(); | 351 store->ShutdownOnUIThread(); |
| 352 base::MessageLoop::current()->RunUntilIdle(); | 352 base::MessageLoop::current()->RunUntilIdle(); |
| 353 } | 353 } |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 793 OnGetPasswordStoreResultsConstRef(UnorderedPasswordFormElementsAre( | 793 OnGetPasswordStoreResultsConstRef(UnorderedPasswordFormElementsAre( |
| 794 expected_credentials_after_update.get()))); | 794 expected_credentials_after_update.get()))); |
| 795 store->GetAutofillableLogins(&mock_consumer); | 795 store->GetAutofillableLogins(&mock_consumer); |
| 796 store->ShutdownOnUIThread(); | 796 store->ShutdownOnUIThread(); |
| 797 base::MessageLoop::current()->RunUntilIdle(); | 797 base::MessageLoop::current()->RunUntilIdle(); |
| 798 } | 798 } |
| 799 } | 799 } |
| 800 } | 800 } |
| 801 | 801 |
| 802 } // namespace password_manager | 802 } // namespace password_manager |
| OLD | NEW |