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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
11 #include <string> | 11 #include <string> |
12 #include <utility> | 12 #include <utility> |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
15 #include "base/bind.h" | 15 #include "base/bind.h" |
16 #include "base/callback.h" | 16 #include "base/callback.h" |
17 #include "base/location.h" | 17 #include "base/location.h" |
18 #include "base/pickle.h" | 18 #include "base/pickle.h" |
19 #include "base/run_loop.h" | 19 #include "base/run_loop.h" |
20 #include "base/single_thread_task_runner.h" | 20 #include "base/single_thread_task_runner.h" |
21 #include "base/stl_util.h" | 21 #include "base/stl_util.h" |
22 #include "base/strings/utf_string_conversions.h" | 22 #include "base/strings/utf_string_conversions.h" |
23 #include "base/synchronization/waitable_event.h" | |
24 #include "base/threading/thread_task_runner_handle.h" | 23 #include "base/threading/thread_task_runner_handle.h" |
25 #include "chrome/browser/password_manager/native_backend_kwallet_x.h" | 24 #include "chrome/browser/password_manager/native_backend_kwallet_x.h" |
26 #include "chrome/test/base/testing_profile.h" | 25 #include "chrome/test/base/testing_profile.h" |
27 #include "components/autofill/core/common/password_form.h" | 26 #include "components/autofill/core/common/password_form.h" |
28 #include "components/password_manager/core/common/password_manager_pref_names.h" | 27 #include "components/password_manager/core/common/password_manager_pref_names.h" |
29 #include "components/prefs/pref_service.h" | 28 #include "components/prefs/pref_service.h" |
30 #include "content/public/test/test_browser_thread.h" | 29 #include "content/public/test/test_browser_thread_bundle.h" |
| 30 #include "content/public/test/test_utils.h" |
31 #include "dbus/message.h" | 31 #include "dbus/message.h" |
32 #include "dbus/mock_bus.h" | 32 #include "dbus/mock_bus.h" |
33 #include "dbus/mock_object_proxy.h" | 33 #include "dbus/mock_object_proxy.h" |
34 #include "dbus/object_path.h" | 34 #include "dbus/object_path.h" |
35 #include "dbus/object_proxy.h" | 35 #include "dbus/object_proxy.h" |
36 #include "testing/gmock/include/gmock/gmock.h" | 36 #include "testing/gmock/include/gmock/gmock.h" |
37 #include "testing/gtest/include/gtest/gtest.h" | 37 #include "testing/gtest/include/gtest/gtest.h" |
38 | 38 |
39 using autofill::PasswordForm; | 39 using autofill::PasswordForm; |
40 using base::UTF8ToUTF16; | 40 using base::UTF8ToUTF16; |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 const PasswordStoreChangeList* expected, | 280 const PasswordStoreChangeList* expected, |
281 const PasswordStoreChangeList* actual, | 281 const PasswordStoreChangeList* actual, |
282 bool result) { | 282 bool result) { |
283 EXPECT_TRUE(result); | 283 EXPECT_TRUE(result); |
284 CheckPasswordChanges(*expected, *actual); | 284 CheckPasswordChanges(*expected, *actual); |
285 } | 285 } |
286 | 286 |
287 class NativeBackendKWalletTest : public NativeBackendKWalletTestBase { | 287 class NativeBackendKWalletTest : public NativeBackendKWalletTestBase { |
288 protected: | 288 protected: |
289 NativeBackendKWalletTest() | 289 NativeBackendKWalletTest() |
290 : ui_thread_(BrowserThread::UI, &message_loop_), | 290 : test_browser_thread_bundle_( |
291 db_thread_(BrowserThread::DB), klauncher_ret_(0), | 291 content::TestBrowserThreadBundle::REAL_DB_THREAD), |
292 klauncher_contacted_(false), kwallet_runnable_(true), | 292 klauncher_ret_(0), |
293 kwallet_running_(true), kwallet_enabled_(true), | 293 klauncher_contacted_(false), |
294 desktop_env_(GetParam()) { | 294 kwallet_runnable_(true), |
295 } | 295 kwallet_running_(true), |
| 296 kwallet_enabled_(true), |
| 297 desktop_env_(GetParam()) {} |
296 | 298 |
297 void SetUp() override; | 299 void SetUp() override; |
298 void TearDown() override; | |
299 | |
300 // Let the DB thread run to completion of all current tasks. | |
301 void RunDBThread() { | |
302 base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, | |
303 base::WaitableEvent::InitialState::NOT_SIGNALED); | |
304 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, | |
305 base::BindOnce(ThreadDone, &event)); | |
306 event.Wait(); | |
307 // Some of the tests may post messages to the UI thread, but we don't need | |
308 // to run those until after the DB thread is finished. So run it here. | |
309 base::RunLoop().RunUntilIdle(); | |
310 } | |
311 static void ThreadDone(base::WaitableEvent* event) { | |
312 event->Signal(); | |
313 } | |
314 | 300 |
315 // Utilities to help verify sets of expectations. | 301 // Utilities to help verify sets of expectations. |
316 typedef std::vector< | 302 typedef std::vector< |
317 std::pair<std::string, | 303 std::pair<std::string, |
318 std::vector<const PasswordForm*> > > ExpectationArray; | 304 std::vector<const PasswordForm*> > > ExpectationArray; |
319 void CheckPasswordForms(const std::string& folder, | 305 void CheckPasswordForms(const std::string& folder, |
320 const ExpectationArray& sorted_expected); | 306 const ExpectationArray& sorted_expected); |
321 | 307 |
322 enum RemoveBetweenMethod { | 308 enum RemoveBetweenMethod { |
323 CREATED, | 309 CREATED, |
324 SYNCED, | 310 SYNCED, |
325 }; | 311 }; |
326 | 312 |
327 // Tests RemoveLoginsCreatedBetween or RemoveLoginsSyncedBetween. | 313 // Tests RemoveLoginsCreatedBetween or RemoveLoginsSyncedBetween. |
328 void TestRemoveLoginsBetween(RemoveBetweenMethod date_to_test); | 314 void TestRemoveLoginsBetween(RemoveBetweenMethod date_to_test); |
329 | 315 |
330 base::MessageLoopForUI message_loop_; | 316 content::TestBrowserThreadBundle test_browser_thread_bundle_; |
331 content::TestBrowserThread ui_thread_; | |
332 content::TestBrowserThread db_thread_; | |
333 | 317 |
334 scoped_refptr<dbus::MockBus> mock_session_bus_; | 318 scoped_refptr<dbus::MockBus> mock_session_bus_; |
335 scoped_refptr<dbus::MockObjectProxy> mock_klauncher_proxy_; | 319 scoped_refptr<dbus::MockObjectProxy> mock_klauncher_proxy_; |
336 scoped_refptr<dbus::MockObjectProxy> mock_kwallet_proxy_; | 320 scoped_refptr<dbus::MockObjectProxy> mock_kwallet_proxy_; |
337 | 321 |
338 int klauncher_ret_; | 322 int klauncher_ret_; |
339 std::string klauncher_error_; | 323 std::string klauncher_error_; |
340 bool klauncher_contacted_; | 324 bool klauncher_contacted_; |
341 | 325 |
342 bool kwallet_runnable_; | 326 bool kwallet_runnable_; |
(...skipping 11 matching lines...) Expand all Loading... |
354 | 338 |
355 private: | 339 private: |
356 dbus::Response* KLauncherMethodCall( | 340 dbus::Response* KLauncherMethodCall( |
357 dbus::MethodCall* method_call, testing::Unused); | 341 dbus::MethodCall* method_call, testing::Unused); |
358 | 342 |
359 dbus::Response* KWalletMethodCall( | 343 dbus::Response* KWalletMethodCall( |
360 dbus::MethodCall* method_call, testing::Unused); | 344 dbus::MethodCall* method_call, testing::Unused); |
361 }; | 345 }; |
362 | 346 |
363 void NativeBackendKWalletTest::SetUp() { | 347 void NativeBackendKWalletTest::SetUp() { |
364 ASSERT_TRUE(db_thread_.Start()); | |
365 | |
366 dbus::Bus::Options options; | 348 dbus::Bus::Options options; |
367 options.bus_type = dbus::Bus::SESSION; | 349 options.bus_type = dbus::Bus::SESSION; |
368 mock_session_bus_ = new dbus::MockBus(options); | 350 mock_session_bus_ = new dbus::MockBus(options); |
369 | 351 |
370 mock_klauncher_proxy_ = | 352 mock_klauncher_proxy_ = |
371 new dbus::MockObjectProxy(mock_session_bus_.get(), | 353 new dbus::MockObjectProxy(mock_session_bus_.get(), |
372 "org.kde.klauncher", | 354 "org.kde.klauncher", |
373 dbus::ObjectPath("/KLauncher")); | 355 dbus::ObjectPath("/KLauncher")); |
374 EXPECT_CALL(*mock_klauncher_proxy_.get(), MockCallMethodAndBlock(_, _)) | 356 EXPECT_CALL(*mock_klauncher_proxy_.get(), MockCallMethodAndBlock(_, _)) |
375 .WillRepeatedly( | 357 .WillRepeatedly( |
(...skipping 29 matching lines...) Expand all Loading... |
405 *mock_session_bus_.get(), | 387 *mock_session_bus_.get(), |
406 GetObjectProxy("org.kde.kwalletd", | 388 GetObjectProxy("org.kde.kwalletd", |
407 dbus::ObjectPath("/modules/kwalletd"))) | 389 dbus::ObjectPath("/modules/kwalletd"))) |
408 .WillRepeatedly(Return(mock_kwallet_proxy_.get())); | 390 .WillRepeatedly(Return(mock_kwallet_proxy_.get())); |
409 } | 391 } |
410 | 392 |
411 EXPECT_CALL(*mock_session_bus_.get(), ShutdownAndBlock()).WillOnce(Return()) | 393 EXPECT_CALL(*mock_session_bus_.get(), ShutdownAndBlock()).WillOnce(Return()) |
412 .WillRepeatedly(Return()); | 394 .WillRepeatedly(Return()); |
413 } | 395 } |
414 | 396 |
415 void NativeBackendKWalletTest::TearDown() { | |
416 base::ThreadTaskRunnerHandle::Get()->PostTask( | |
417 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); | |
418 base::RunLoop().Run(); | |
419 db_thread_.Stop(); | |
420 } | |
421 | |
422 void NativeBackendKWalletTest::TestRemoveLoginsBetween( | 397 void NativeBackendKWalletTest::TestRemoveLoginsBetween( |
423 RemoveBetweenMethod date_to_test) { | 398 RemoveBetweenMethod date_to_test) { |
424 NativeBackendKWalletStub backend(42, desktop_env_); | 399 NativeBackendKWalletStub backend(42, desktop_env_); |
425 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 400 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
426 | 401 |
427 form_google_.date_synced = base::Time(); | 402 form_google_.date_synced = base::Time(); |
428 form_isc_.date_synced = base::Time(); | 403 form_isc_.date_synced = base::Time(); |
429 form_google_.date_created = base::Time(); | 404 form_google_.date_created = base::Time(); |
430 form_isc_.date_created = base::Time(); | 405 form_isc_.date_created = base::Time(); |
431 base::Time now = base::Time::Now(); | 406 base::Time now = base::Time::Now(); |
(...skipping 23 matching lines...) Expand all Loading... |
455 base::Time, base::Time, password_manager::PasswordStoreChangeList*) = | 430 base::Time, base::Time, password_manager::PasswordStoreChangeList*) = |
456 date_to_test == CREATED | 431 date_to_test == CREATED |
457 ? &NativeBackendKWalletStub::RemoveLoginsCreatedBetween | 432 ? &NativeBackendKWalletStub::RemoveLoginsCreatedBetween |
458 : &NativeBackendKWalletStub::RemoveLoginsSyncedBetween; | 433 : &NativeBackendKWalletStub::RemoveLoginsSyncedBetween; |
459 BrowserThread::PostTaskAndReplyWithResult( | 434 BrowserThread::PostTaskAndReplyWithResult( |
460 BrowserThread::DB, | 435 BrowserThread::DB, |
461 FROM_HERE, | 436 FROM_HERE, |
462 base::Bind( | 437 base::Bind( |
463 method, base::Unretained(&backend), base::Time(), next_day, &changes), | 438 method, base::Unretained(&backend), base::Time(), next_day, &changes), |
464 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); | 439 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); |
465 RunDBThread(); | 440 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
466 | 441 |
467 std::vector<const PasswordForm*> forms; | 442 std::vector<const PasswordForm*> forms; |
468 forms.push_back(&form_isc_); | 443 forms.push_back(&form_isc_); |
469 ExpectationArray expected; | 444 ExpectationArray expected; |
470 expected.push_back(make_pair(std::string(form_isc_.signon_realm), forms)); | 445 expected.push_back(make_pair(std::string(form_isc_.signon_realm), forms)); |
471 CheckPasswordForms("Chrome Form Data (42)", expected); | 446 CheckPasswordForms("Chrome Form Data (42)", expected); |
472 | 447 |
473 // Remove form_isc_. | 448 // Remove form_isc_. |
474 expected_changes.clear(); | 449 expected_changes.clear(); |
475 expected_changes.push_back( | 450 expected_changes.push_back( |
476 PasswordStoreChange(PasswordStoreChange::REMOVE, form_isc_)); | 451 PasswordStoreChange(PasswordStoreChange::REMOVE, form_isc_)); |
477 BrowserThread::PostTaskAndReplyWithResult( | 452 BrowserThread::PostTaskAndReplyWithResult( |
478 BrowserThread::DB, | 453 BrowserThread::DB, |
479 FROM_HERE, | 454 FROM_HERE, |
480 base::Bind( | 455 base::Bind( |
481 method, base::Unretained(&backend), next_day, base::Time(), &changes), | 456 method, base::Unretained(&backend), next_day, base::Time(), &changes), |
482 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); | 457 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); |
483 RunDBThread(); | 458 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
484 | 459 |
485 CheckPasswordForms("Chrome Form Data (42)", ExpectationArray()); | 460 CheckPasswordForms("Chrome Form Data (42)", ExpectationArray()); |
486 } | 461 } |
487 | 462 |
488 dbus::Response* NativeBackendKWalletTest::KLauncherMethodCall( | 463 dbus::Response* NativeBackendKWalletTest::KLauncherMethodCall( |
489 dbus::MethodCall* method_call, testing::Unused) { | 464 dbus::MethodCall* method_call, testing::Unused) { |
490 EXPECT_EQ("org.kde.KLauncher", method_call->GetInterface()); | 465 EXPECT_EQ("org.kde.KLauncher", method_call->GetInterface()); |
491 EXPECT_EQ("start_service_by_desktop_name", method_call->GetMember()); | 466 EXPECT_EQ("start_service_by_desktop_name", method_call->GetMember()); |
492 | 467 |
493 klauncher_contacted_ = true; | 468 klauncher_contacted_ = true; |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 684 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
710 | 685 |
711 BrowserThread::PostTaskAndReplyWithResult( | 686 BrowserThread::PostTaskAndReplyWithResult( |
712 BrowserThread::DB, FROM_HERE, | 687 BrowserThread::DB, FROM_HERE, |
713 base::Bind(&NativeBackendKWalletStub::AddLogin, | 688 base::Bind(&NativeBackendKWalletStub::AddLogin, |
714 base::Unretained(&backend), form_google_), | 689 base::Unretained(&backend), form_google_), |
715 base::Bind(&CheckPasswordChanges, | 690 base::Bind(&CheckPasswordChanges, |
716 PasswordStoreChangeList(1, PasswordStoreChange( | 691 PasswordStoreChangeList(1, PasswordStoreChange( |
717 PasswordStoreChange::ADD, form_google_)))); | 692 PasswordStoreChange::ADD, form_google_)))); |
718 | 693 |
719 RunDBThread(); | 694 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
720 | 695 |
721 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); | 696 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); |
722 | 697 |
723 std::vector<const PasswordForm*> forms; | 698 std::vector<const PasswordForm*> forms; |
724 forms.push_back(&form_google_); | 699 forms.push_back(&form_google_); |
725 ExpectationArray expected; | 700 ExpectationArray expected; |
726 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 701 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
727 CheckPasswordForms("Chrome Form Data (42)", expected); | 702 CheckPasswordForms("Chrome Form Data (42)", expected); |
728 } | 703 } |
729 | 704 |
730 TEST_P(NativeBackendKWalletTest, BasicUpdateLogin) { | 705 TEST_P(NativeBackendKWalletTest, BasicUpdateLogin) { |
731 NativeBackendKWalletStub backend(42, desktop_env_); | 706 NativeBackendKWalletStub backend(42, desktop_env_); |
732 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 707 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
733 | 708 |
734 BrowserThread::PostTask( | 709 BrowserThread::PostTask( |
735 BrowserThread::DB, FROM_HERE, | 710 BrowserThread::DB, FROM_HERE, |
736 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 711 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
737 base::Unretained(&backend), form_google_)); | 712 base::Unretained(&backend), form_google_)); |
738 | 713 |
739 RunDBThread(); | 714 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
740 | 715 |
741 PasswordForm new_form_google(form_google_); | 716 PasswordForm new_form_google(form_google_); |
742 new_form_google.times_used = 10; | 717 new_form_google.times_used = 10; |
743 new_form_google.action = GURL("http://www.google.com/different/login"); | 718 new_form_google.action = GURL("http://www.google.com/different/login"); |
744 | 719 |
745 // Update login | 720 // Update login |
746 PasswordStoreChangeList changes; | 721 PasswordStoreChangeList changes; |
747 PasswordStoreChangeList expected_changes( | 722 PasswordStoreChangeList expected_changes( |
748 1, PasswordStoreChange(PasswordStoreChange::UPDATE, new_form_google)); | 723 1, PasswordStoreChange(PasswordStoreChange::UPDATE, new_form_google)); |
749 BrowserThread::PostTaskAndReplyWithResult( | 724 BrowserThread::PostTaskAndReplyWithResult( |
750 BrowserThread::DB, FROM_HERE, | 725 BrowserThread::DB, FROM_HERE, |
751 base::Bind(&NativeBackendKWalletStub::UpdateLogin, | 726 base::Bind(&NativeBackendKWalletStub::UpdateLogin, |
752 base::Unretained(&backend), | 727 base::Unretained(&backend), |
753 new_form_google, | 728 new_form_google, |
754 &changes), | 729 &changes), |
755 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); | 730 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); |
756 RunDBThread(); | 731 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
757 | 732 |
758 ASSERT_EQ(1u, changes.size()); | 733 ASSERT_EQ(1u, changes.size()); |
759 EXPECT_EQ(PasswordStoreChange::UPDATE, changes.front().type()); | 734 EXPECT_EQ(PasswordStoreChange::UPDATE, changes.front().type()); |
760 EXPECT_EQ(new_form_google, changes.front().form()); | 735 EXPECT_EQ(new_form_google, changes.front().form()); |
761 | 736 |
762 std::vector<const PasswordForm*> forms; | 737 std::vector<const PasswordForm*> forms; |
763 forms.push_back(&new_form_google); | 738 forms.push_back(&new_form_google); |
764 ExpectationArray expected; | 739 ExpectationArray expected; |
765 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 740 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
766 CheckPasswordForms("Chrome Form Data (42)", expected); | 741 CheckPasswordForms("Chrome Form Data (42)", expected); |
767 } | 742 } |
768 | 743 |
769 TEST_P(NativeBackendKWalletTest, BasicListLogins) { | 744 TEST_P(NativeBackendKWalletTest, BasicListLogins) { |
770 NativeBackendKWalletStub backend(42, desktop_env_); | 745 NativeBackendKWalletStub backend(42, desktop_env_); |
771 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 746 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
772 | 747 |
773 BrowserThread::PostTask( | 748 BrowserThread::PostTask( |
774 BrowserThread::DB, FROM_HERE, | 749 BrowserThread::DB, FROM_HERE, |
775 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 750 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
776 base::Unretained(&backend), form_google_)); | 751 base::Unretained(&backend), form_google_)); |
777 | 752 |
778 std::vector<std::unique_ptr<PasswordForm>> form_list; | 753 std::vector<std::unique_ptr<PasswordForm>> form_list; |
779 BrowserThread::PostTaskAndReplyWithResult( | 754 BrowserThread::PostTaskAndReplyWithResult( |
780 BrowserThread::DB, FROM_HERE, | 755 BrowserThread::DB, FROM_HERE, |
781 base::Bind(&NativeBackendKWalletStub::GetAutofillableLogins, | 756 base::Bind(&NativeBackendKWalletStub::GetAutofillableLogins, |
782 base::Unretained(&backend), &form_list), | 757 base::Unretained(&backend), &form_list), |
783 base::Bind(&CheckTrue)); | 758 base::Bind(&CheckTrue)); |
784 | 759 |
785 RunDBThread(); | 760 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
786 | 761 |
787 // Quick check that we got something back. | 762 // Quick check that we got something back. |
788 EXPECT_EQ(1u, form_list.size()); | 763 EXPECT_EQ(1u, form_list.size()); |
789 | 764 |
790 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); | 765 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); |
791 | 766 |
792 std::vector<const PasswordForm*> forms; | 767 std::vector<const PasswordForm*> forms; |
793 forms.push_back(&form_google_); | 768 forms.push_back(&form_google_); |
794 ExpectationArray expected; | 769 ExpectationArray expected; |
795 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 770 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
796 CheckPasswordForms("Chrome Form Data (42)", expected); | 771 CheckPasswordForms("Chrome Form Data (42)", expected); |
797 } | 772 } |
798 | 773 |
799 TEST_P(NativeBackendKWalletTest, BasicRemoveLogin) { | 774 TEST_P(NativeBackendKWalletTest, BasicRemoveLogin) { |
800 NativeBackendKWalletStub backend(42, desktop_env_); | 775 NativeBackendKWalletStub backend(42, desktop_env_); |
801 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 776 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
802 | 777 |
803 BrowserThread::PostTask( | 778 BrowserThread::PostTask( |
804 BrowserThread::DB, FROM_HERE, | 779 BrowserThread::DB, FROM_HERE, |
805 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 780 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
806 base::Unretained(&backend), form_google_)); | 781 base::Unretained(&backend), form_google_)); |
807 | 782 |
808 RunDBThread(); | 783 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
809 | 784 |
810 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); | 785 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); |
811 | 786 |
812 std::vector<const PasswordForm*> forms; | 787 std::vector<const PasswordForm*> forms; |
813 forms.push_back(&form_google_); | 788 forms.push_back(&form_google_); |
814 ExpectationArray expected; | 789 ExpectationArray expected; |
815 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 790 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
816 CheckPasswordForms("Chrome Form Data (42)", expected); | 791 CheckPasswordForms("Chrome Form Data (42)", expected); |
817 | 792 |
818 PasswordStoreChangeList changes; | 793 PasswordStoreChangeList changes; |
819 PasswordStoreChangeList expected_changes( | 794 PasswordStoreChangeList expected_changes( |
820 1, PasswordStoreChange(PasswordStoreChange::REMOVE, form_google_)); | 795 1, PasswordStoreChange(PasswordStoreChange::REMOVE, form_google_)); |
821 BrowserThread::PostTaskAndReplyWithResult( | 796 BrowserThread::PostTaskAndReplyWithResult( |
822 BrowserThread::DB, FROM_HERE, | 797 BrowserThread::DB, FROM_HERE, |
823 base::Bind(&NativeBackendKWalletStub::RemoveLogin, | 798 base::Bind(&NativeBackendKWalletStub::RemoveLogin, |
824 base::Unretained(&backend), form_google_, &changes), | 799 base::Unretained(&backend), form_google_, &changes), |
825 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); | 800 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); |
826 | 801 |
827 RunDBThread(); | 802 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
828 | 803 |
829 expected.clear(); | 804 expected.clear(); |
830 CheckPasswordForms("Chrome Form Data (42)", expected); | 805 CheckPasswordForms("Chrome Form Data (42)", expected); |
831 } | 806 } |
832 | 807 |
833 TEST_P(NativeBackendKWalletTest, UpdateNonexistentLogin) { | 808 TEST_P(NativeBackendKWalletTest, UpdateNonexistentLogin) { |
834 NativeBackendKWalletStub backend(42, desktop_env_); | 809 NativeBackendKWalletStub backend(42, desktop_env_); |
835 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 810 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
836 | 811 |
837 // First add an unrelated login. | 812 // First add an unrelated login. |
838 BrowserThread::PostTask( | 813 BrowserThread::PostTask( |
839 BrowserThread::DB, FROM_HERE, | 814 BrowserThread::DB, FROM_HERE, |
840 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 815 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
841 base::Unretained(&backend), form_google_)); | 816 base::Unretained(&backend), form_google_)); |
842 | 817 |
843 RunDBThread(); | 818 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
844 | 819 |
845 std::vector<const PasswordForm*> forms; | 820 std::vector<const PasswordForm*> forms; |
846 forms.push_back(&form_google_); | 821 forms.push_back(&form_google_); |
847 ExpectationArray expected; | 822 ExpectationArray expected; |
848 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 823 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
849 CheckPasswordForms("Chrome Form Data (42)", expected); | 824 CheckPasswordForms("Chrome Form Data (42)", expected); |
850 | 825 |
851 // Attempt to update a login that doesn't exist. | 826 // Attempt to update a login that doesn't exist. |
852 PasswordStoreChangeList changes; | 827 PasswordStoreChangeList changes; |
853 BrowserThread::PostTaskAndReplyWithResult( | 828 BrowserThread::PostTaskAndReplyWithResult( |
854 BrowserThread::DB, FROM_HERE, | 829 BrowserThread::DB, FROM_HERE, |
855 base::Bind(&NativeBackendKWalletStub::UpdateLogin, | 830 base::Bind(&NativeBackendKWalletStub::UpdateLogin, |
856 base::Unretained(&backend), | 831 base::Unretained(&backend), |
857 form_isc_, | 832 form_isc_, |
858 &changes), | 833 &changes), |
859 base::Bind(&CheckPasswordChangesWithResult, | 834 base::Bind(&CheckPasswordChangesWithResult, |
860 base::Owned(new PasswordStoreChangeList), &changes)); | 835 base::Owned(new PasswordStoreChangeList), &changes)); |
861 | 836 |
862 RunDBThread(); | 837 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
863 | 838 |
864 EXPECT_EQ(PasswordStoreChangeList(), changes); | 839 EXPECT_EQ(PasswordStoreChangeList(), changes); |
865 CheckPasswordForms("Chrome Form Data (42)", expected); | 840 CheckPasswordForms("Chrome Form Data (42)", expected); |
866 } | 841 } |
867 | 842 |
868 TEST_P(NativeBackendKWalletTest, RemoveNonexistentLogin) { | 843 TEST_P(NativeBackendKWalletTest, RemoveNonexistentLogin) { |
869 NativeBackendKWalletStub backend(42, desktop_env_); | 844 NativeBackendKWalletStub backend(42, desktop_env_); |
870 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 845 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
871 | 846 |
872 // First add an unrelated login. | 847 // First add an unrelated login. |
873 BrowserThread::PostTask( | 848 BrowserThread::PostTask( |
874 BrowserThread::DB, FROM_HERE, | 849 BrowserThread::DB, FROM_HERE, |
875 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 850 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
876 base::Unretained(&backend), form_google_)); | 851 base::Unretained(&backend), form_google_)); |
877 | 852 |
878 RunDBThread(); | 853 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
879 | 854 |
880 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); | 855 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); |
881 | 856 |
882 std::vector<const PasswordForm*> forms; | 857 std::vector<const PasswordForm*> forms; |
883 forms.push_back(&form_google_); | 858 forms.push_back(&form_google_); |
884 ExpectationArray expected; | 859 ExpectationArray expected; |
885 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 860 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
886 CheckPasswordForms("Chrome Form Data (42)", expected); | 861 CheckPasswordForms("Chrome Form Data (42)", expected); |
887 | 862 |
888 // Attempt to remove a login that doesn't exist. | 863 // Attempt to remove a login that doesn't exist. |
889 PasswordStoreChangeList changes; | 864 PasswordStoreChangeList changes; |
890 BrowserThread::PostTaskAndReplyWithResult( | 865 BrowserThread::PostTaskAndReplyWithResult( |
891 BrowserThread::DB, FROM_HERE, | 866 BrowserThread::DB, FROM_HERE, |
892 base::Bind(&NativeBackendKWalletStub::RemoveLogin, | 867 base::Bind(&NativeBackendKWalletStub::RemoveLogin, |
893 base::Unretained(&backend), form_isc_, &changes), | 868 base::Unretained(&backend), form_isc_, &changes), |
894 base::Bind(&CheckPasswordChangesWithResult, | 869 base::Bind(&CheckPasswordChangesWithResult, |
895 base::Owned(new PasswordStoreChangeList), &changes)); | 870 base::Owned(new PasswordStoreChangeList), &changes)); |
896 | 871 |
897 // Make sure we can still get the first form back. | 872 // Make sure we can still get the first form back. |
898 std::vector<std::unique_ptr<PasswordForm>> form_list; | 873 std::vector<std::unique_ptr<PasswordForm>> form_list; |
899 BrowserThread::PostTaskAndReplyWithResult( | 874 BrowserThread::PostTaskAndReplyWithResult( |
900 BrowserThread::DB, FROM_HERE, | 875 BrowserThread::DB, FROM_HERE, |
901 base::Bind(&NativeBackendKWalletStub::GetAutofillableLogins, | 876 base::Bind(&NativeBackendKWalletStub::GetAutofillableLogins, |
902 base::Unretained(&backend), &form_list), | 877 base::Unretained(&backend), &form_list), |
903 base::Bind(&CheckTrue)); | 878 base::Bind(&CheckTrue)); |
904 | 879 |
905 RunDBThread(); | 880 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
906 | 881 |
907 // Quick check that we got something back. | 882 // Quick check that we got something back. |
908 EXPECT_EQ(1u, form_list.size()); | 883 EXPECT_EQ(1u, form_list.size()); |
909 | 884 |
910 CheckPasswordForms("Chrome Form Data (42)", expected); | 885 CheckPasswordForms("Chrome Form Data (42)", expected); |
911 } | 886 } |
912 | 887 |
913 TEST_P(NativeBackendKWalletTest, AddDuplicateLogin) { | 888 TEST_P(NativeBackendKWalletTest, AddDuplicateLogin) { |
914 NativeBackendKWalletStub backend(42, desktop_env_); | 889 NativeBackendKWalletStub backend(42, desktop_env_); |
915 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 890 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
(...skipping 16 matching lines...) Expand all Loading... |
932 changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, | 907 changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, |
933 form_google_)); | 908 form_google_)); |
934 | 909 |
935 BrowserThread::PostTaskAndReplyWithResult( | 910 BrowserThread::PostTaskAndReplyWithResult( |
936 BrowserThread::DB, FROM_HERE, | 911 BrowserThread::DB, FROM_HERE, |
937 base::Bind(&NativeBackendKWalletStub::AddLogin, | 912 base::Bind(&NativeBackendKWalletStub::AddLogin, |
938 base::Unretained(&backend), form_google_), | 913 base::Unretained(&backend), form_google_), |
939 base::Bind(&NativeBackendKWalletTest::CheckPasswordChanges, | 914 base::Bind(&NativeBackendKWalletTest::CheckPasswordChanges, |
940 changes)); | 915 changes)); |
941 | 916 |
942 RunDBThread(); | 917 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
943 | 918 |
944 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); | 919 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); |
945 | 920 |
946 std::vector<const PasswordForm*> forms; | 921 std::vector<const PasswordForm*> forms; |
947 forms.push_back(&form_google_); | 922 forms.push_back(&form_google_); |
948 ExpectationArray expected; | 923 ExpectationArray expected; |
949 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 924 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
950 CheckPasswordForms("Chrome Form Data (42)", expected); | 925 CheckPasswordForms("Chrome Form Data (42)", expected); |
951 } | 926 } |
952 | 927 |
(...skipping 18 matching lines...) Expand all Loading... |
971 PasswordStoreChangeList(1, PasswordStoreChange( | 946 PasswordStoreChangeList(1, PasswordStoreChange( |
972 PasswordStoreChange::ADD, saved_android_form)))); | 947 PasswordStoreChange::ADD, saved_android_form)))); |
973 | 948 |
974 std::vector<std::unique_ptr<PasswordForm>> form_list; | 949 std::vector<std::unique_ptr<PasswordForm>> form_list; |
975 BrowserThread::PostTaskAndReplyWithResult( | 950 BrowserThread::PostTaskAndReplyWithResult( |
976 BrowserThread::DB, FROM_HERE, | 951 BrowserThread::DB, FROM_HERE, |
977 base::Bind(&NativeBackendKWalletStub::GetLogins, | 952 base::Bind(&NativeBackendKWalletStub::GetLogins, |
978 base::Unretained(&backend), observed_android_form, &form_list), | 953 base::Unretained(&backend), observed_android_form, &form_list), |
979 base::Bind(&CheckTrue)); | 954 base::Bind(&CheckTrue)); |
980 | 955 |
981 RunDBThread(); | 956 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
982 | 957 |
983 EXPECT_EQ(1u, form_list.size()); | 958 EXPECT_EQ(1u, form_list.size()); |
984 | 959 |
985 std::vector<const PasswordForm*> forms; | 960 std::vector<const PasswordForm*> forms; |
986 forms.push_back(&saved_android_form); | 961 forms.push_back(&saved_android_form); |
987 ExpectationArray expected; | 962 ExpectationArray expected; |
988 expected.push_back( | 963 expected.push_back( |
989 make_pair(std::string(saved_android_form.signon_realm), forms)); | 964 make_pair(std::string(saved_android_form.signon_realm), forms)); |
990 CheckPasswordForms("Chrome Form Data (42)", expected); | 965 CheckPasswordForms("Chrome Form Data (42)", expected); |
991 } | 966 } |
(...skipping 15 matching lines...) Expand all Loading... |
1007 | 982 |
1008 BrowserThread::PostTask( | 983 BrowserThread::PostTask( |
1009 BrowserThread::DB, FROM_HERE, | 984 BrowserThread::DB, FROM_HERE, |
1010 base::BindOnce(base::IgnoreResult(&NativeBackendKWallet::AddLogin), | 985 base::BindOnce(base::IgnoreResult(&NativeBackendKWallet::AddLogin), |
1011 base::Unretained(&backend), form_isc_)); | 986 base::Unretained(&backend), form_isc_)); |
1012 BrowserThread::PostTask( | 987 BrowserThread::PostTask( |
1013 BrowserThread::DB, FROM_HERE, | 988 BrowserThread::DB, FROM_HERE, |
1014 base::BindOnce(base::IgnoreResult(&NativeBackendKWallet::AddLogin), | 989 base::BindOnce(base::IgnoreResult(&NativeBackendKWallet::AddLogin), |
1015 base::Unretained(&backend), form_google_)); | 990 base::Unretained(&backend), form_google_)); |
1016 | 991 |
1017 RunDBThread(); | 992 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
1018 | 993 |
1019 // Set the canonical forms to the updated value for the following comparison. | 994 // Set the canonical forms to the updated value for the following comparison. |
1020 form_google_.skip_zero_click = true; | 995 form_google_.skip_zero_click = true; |
1021 PasswordStoreChangeList expected_changes; | 996 PasswordStoreChangeList expected_changes; |
1022 expected_changes.push_back( | 997 expected_changes.push_back( |
1023 PasswordStoreChange(PasswordStoreChange::UPDATE, form_google_)); | 998 PasswordStoreChange(PasswordStoreChange::UPDATE, form_google_)); |
1024 | 999 |
1025 PasswordStoreChangeList changes; | 1000 PasswordStoreChangeList changes; |
1026 BrowserThread::PostTaskAndReplyWithResult( | 1001 BrowserThread::PostTaskAndReplyWithResult( |
1027 BrowserThread::DB, FROM_HERE, | 1002 BrowserThread::DB, FROM_HERE, |
1028 base::Bind( | 1003 base::Bind( |
1029 &NativeBackendKWallet::DisableAutoSignInForOrigins, | 1004 &NativeBackendKWallet::DisableAutoSignInForOrigins, |
1030 base::Unretained(&backend), | 1005 base::Unretained(&backend), |
1031 base::Bind( | 1006 base::Bind( |
1032 static_cast<bool (*)(const GURL&, const GURL&)>(operator==), | 1007 static_cast<bool (*)(const GURL&, const GURL&)>(operator==), |
1033 form_google_.origin), | 1008 form_google_.origin), |
1034 &changes), | 1009 &changes), |
1035 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); | 1010 base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes)); |
1036 RunDBThread(); | 1011 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
1037 | 1012 |
1038 std::vector<const PasswordForm*> forms; | 1013 std::vector<const PasswordForm*> forms; |
1039 forms.push_back(&form_google_); | 1014 forms.push_back(&form_google_); |
1040 ExpectationArray expected; | 1015 ExpectationArray expected; |
1041 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 1016 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
1042 forms.clear(); | 1017 forms.clear(); |
1043 forms.push_back(&form_isc_); | 1018 forms.push_back(&form_isc_); |
1044 expected.push_back(make_pair(std::string(form_isc_.signon_realm), forms)); | 1019 expected.push_back(make_pair(std::string(form_isc_.signon_realm), forms)); |
1045 CheckPasswordForms("Chrome Form Data (42)", expected); | 1020 CheckPasswordForms("Chrome Form Data (42)", expected); |
1046 } | 1021 } |
(...skipping 10 matching lines...) Expand all Loading... |
1057 BrowserThread::PostTask( | 1032 BrowserThread::PostTask( |
1058 BrowserThread::DB, FROM_HERE, | 1033 BrowserThread::DB, FROM_HERE, |
1059 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 1034 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
1060 base::Unretained(&backend), form_google_)); | 1035 base::Unretained(&backend), form_google_)); |
1061 form_google_.origin = | 1036 form_google_.origin = |
1062 GURL(std::string("http://www.google.com/") + unique_string_replacement); | 1037 GURL(std::string("http://www.google.com/") + unique_string_replacement); |
1063 BrowserThread::PostTask( | 1038 BrowserThread::PostTask( |
1064 BrowserThread::DB, FROM_HERE, | 1039 BrowserThread::DB, FROM_HERE, |
1065 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 1040 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
1066 base::Unretained(&backend), form_google_)); | 1041 base::Unretained(&backend), form_google_)); |
1067 RunDBThread(); | 1042 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
1068 | 1043 |
1069 // Read the raw value back. Change the |unique_string| to | 1044 // Read the raw value back. Change the |unique_string| to |
1070 // |unique_string_replacement| so the forms become unique. | 1045 // |unique_string_replacement| so the forms become unique. |
1071 TestKWallet::Blob value; | 1046 TestKWallet::Blob value; |
1072 ASSERT_TRUE(wallet_.readEntry("Chrome Form Data (42)", | 1047 ASSERT_TRUE(wallet_.readEntry("Chrome Form Data (42)", |
1073 form_google_.signon_realm, &value)); | 1048 form_google_.signon_realm, &value)); |
1074 TestKWallet::Blob sample(reinterpret_cast<const uint8_t*>(unique_string)); | 1049 TestKWallet::Blob sample(reinterpret_cast<const uint8_t*>(unique_string)); |
1075 size_t position = value.find(sample); | 1050 size_t position = value.find(sample); |
1076 ASSERT_NE(TestKWallet::Blob::npos, position); | 1051 ASSERT_NE(TestKWallet::Blob::npos, position); |
1077 value.replace(position, sample.length(), | 1052 value.replace(position, sample.length(), |
1078 reinterpret_cast<const uint8_t*>(unique_string_replacement)); | 1053 reinterpret_cast<const uint8_t*>(unique_string_replacement)); |
1079 wallet_.writeEntry("Chrome Form Data (42)", form_google_.signon_realm, value); | 1054 wallet_.writeEntry("Chrome Form Data (42)", form_google_.signon_realm, value); |
1080 | 1055 |
1081 // Now test that GetAutofillableLogins returns only one form. | 1056 // Now test that GetAutofillableLogins returns only one form. |
1082 std::vector<std::unique_ptr<PasswordForm>> form_list; | 1057 std::vector<std::unique_ptr<PasswordForm>> form_list; |
1083 BrowserThread::PostTaskAndReplyWithResult( | 1058 BrowserThread::PostTaskAndReplyWithResult( |
1084 BrowserThread::DB, FROM_HERE, | 1059 BrowserThread::DB, FROM_HERE, |
1085 base::Bind(&NativeBackendKWalletStub::GetAutofillableLogins, | 1060 base::Bind(&NativeBackendKWalletStub::GetAutofillableLogins, |
1086 base::Unretained(&backend), &form_list), | 1061 base::Unretained(&backend), &form_list), |
1087 base::Bind(&CheckTrue)); | 1062 base::Bind(&CheckTrue)); |
1088 RunDBThread(); | 1063 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
1089 | 1064 |
1090 EXPECT_EQ(1u, form_list.size()); | 1065 EXPECT_EQ(1u, form_list.size()); |
1091 EXPECT_EQ(form_google_, *form_list[0]); | 1066 EXPECT_EQ(form_google_, *form_list[0]); |
1092 | 1067 |
1093 std::vector<const PasswordForm*> forms; | 1068 std::vector<const PasswordForm*> forms; |
1094 forms.push_back(&form_google_); | 1069 forms.push_back(&form_google_); |
1095 ExpectationArray expected; | 1070 ExpectationArray expected; |
1096 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); | 1071 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); |
1097 CheckPasswordForms("Chrome Form Data (42)", expected); | 1072 CheckPasswordForms("Chrome Form Data (42)", expected); |
1098 } | 1073 } |
(...skipping 13 matching lines...) Expand all Loading... |
1112 base::Bind(&CheckPasswordChanges, | 1087 base::Bind(&CheckPasswordChanges, |
1113 PasswordStoreChangeList(1, PasswordStoreChange( | 1088 PasswordStoreChangeList(1, PasswordStoreChange( |
1114 PasswordStoreChange::ADD, form_google_)))); | 1089 PasswordStoreChange::ADD, form_google_)))); |
1115 | 1090 |
1116 // Verify that nothing is in fact returned, because KWallet fails to respond. | 1091 // Verify that nothing is in fact returned, because KWallet fails to respond. |
1117 std::vector<std::unique_ptr<PasswordForm>> form_list; | 1092 std::vector<std::unique_ptr<PasswordForm>> form_list; |
1118 BrowserThread::PostTask( | 1093 BrowserThread::PostTask( |
1119 BrowserThread::DB, FROM_HERE, | 1094 BrowserThread::DB, FROM_HERE, |
1120 base::BindOnce(&CheckGetAutofillableLoginsFails, | 1095 base::BindOnce(&CheckGetAutofillableLoginsFails, |
1121 base::Unretained(&backend), &form_list)); | 1096 base::Unretained(&backend), &form_list)); |
1122 RunDBThread(); | 1097 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
1123 EXPECT_EQ(0u, form_list.size()); | 1098 EXPECT_EQ(0u, form_list.size()); |
1124 } | 1099 } |
1125 | 1100 |
1126 TEST_P(NativeBackendKWalletTest, GetAllLogins) { | 1101 TEST_P(NativeBackendKWalletTest, GetAllLogins) { |
1127 NativeBackendKWalletStub backend(42, desktop_env_); | 1102 NativeBackendKWalletStub backend(42, desktop_env_); |
1128 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 1103 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
1129 | 1104 |
1130 BrowserThread::PostTask( | 1105 BrowserThread::PostTask( |
1131 BrowserThread::DB, FROM_HERE, | 1106 BrowserThread::DB, FROM_HERE, |
1132 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 1107 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
1133 base::Unretained(&backend), form_google_)); | 1108 base::Unretained(&backend), form_google_)); |
1134 BrowserThread::PostTask( | 1109 BrowserThread::PostTask( |
1135 BrowserThread::DB, FROM_HERE, | 1110 BrowserThread::DB, FROM_HERE, |
1136 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), | 1111 base::BindOnce(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
1137 base::Unretained(&backend), form_isc_)); | 1112 base::Unretained(&backend), form_isc_)); |
1138 | 1113 |
1139 std::vector<std::unique_ptr<PasswordForm>> form_list; | 1114 std::vector<std::unique_ptr<PasswordForm>> form_list; |
1140 BrowserThread::PostTaskAndReplyWithResult( | 1115 BrowserThread::PostTaskAndReplyWithResult( |
1141 BrowserThread::DB, FROM_HERE, | 1116 BrowserThread::DB, FROM_HERE, |
1142 base::Bind(&NativeBackendKWalletStub::GetAllLogins, | 1117 base::Bind(&NativeBackendKWalletStub::GetAllLogins, |
1143 base::Unretained(&backend), &form_list), | 1118 base::Unretained(&backend), &form_list), |
1144 base::Bind(&CheckTrue)); | 1119 base::Bind(&CheckTrue)); |
1145 | 1120 |
1146 RunDBThread(); | 1121 content::RunAllPendingInMessageLoop(BrowserThread::DB); |
1147 | 1122 |
1148 EXPECT_EQ(2u, form_list.size()); | 1123 EXPECT_EQ(2u, form_list.size()); |
1149 EXPECT_THAT(form_list, | 1124 EXPECT_THAT(form_list, |
1150 UnorderedElementsAre(Pointee(form_google_), Pointee(form_isc_))); | 1125 UnorderedElementsAre(Pointee(form_google_), Pointee(form_isc_))); |
1151 } | 1126 } |
1152 | 1127 |
1153 INSTANTIATE_TEST_CASE_P(, | 1128 INSTANTIATE_TEST_CASE_P(, |
1154 NativeBackendKWalletTest, | 1129 NativeBackendKWalletTest, |
1155 ::testing::Values(base::nix::DESKTOP_ENVIRONMENT_KDE4, | 1130 ::testing::Values(base::nix::DESKTOP_ENVIRONMENT_KDE4, |
1156 base::nix::DESKTOP_ENVIRONMENT_KDE5)); | 1131 base::nix::DESKTOP_ENVIRONMENT_KDE5)); |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1430 CheckVersion7Pickle(); | 1405 CheckVersion7Pickle(); |
1431 } | 1406 } |
1432 | 1407 |
1433 TEST_F(NativeBackendKWalletPickleTest, CheckVersion8Pickle) { | 1408 TEST_F(NativeBackendKWalletPickleTest, CheckVersion8Pickle) { |
1434 CheckVersion8Pickle(); | 1409 CheckVersion8Pickle(); |
1435 } | 1410 } |
1436 | 1411 |
1437 TEST_F(NativeBackendKWalletPickleTest, CheckVersion9Pickle) { | 1412 TEST_F(NativeBackendKWalletPickleTest, CheckVersion9Pickle) { |
1438 CheckVersion9Pickle(); | 1413 CheckVersion9Pickle(); |
1439 } | 1414 } |
OLD | NEW |