| Index: chrome/browser/password_manager/native_backend_gnome_x_unittest.cc
|
| diff --git a/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc b/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc
|
| index 7bd8e1330bb34a906ae1f3140f85c29eaa5525ba..bdc9dfa097ca8aba1828c4123cd2bcddf1bedbfe 100644
|
| --- a/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc
|
| +++ b/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc
|
| @@ -406,7 +406,7 @@ class NativeBackendGnomeTest : public testing::Test {
|
| ASSERT_TRUE(helper.IsMatchingEnabled())
|
| << "PSL matching needs to be enabled.";
|
|
|
| - NativeBackendGnome backend(321, profile_.GetPrefs());
|
| + NativeBackendGnome backend(321);
|
| backend.Init();
|
|
|
| BrowserThread::PostTask(
|
| @@ -445,8 +445,6 @@ class NativeBackendGnomeTest : public testing::Test {
|
| content::TestBrowserThread ui_thread_;
|
| content::TestBrowserThread db_thread_;
|
|
|
| - TestingProfile profile_;
|
| -
|
| // Provide some test forms to avoid having to set them up in each test.
|
| PasswordForm form_google_;
|
| PasswordForm form_facebook_;
|
| @@ -454,10 +452,7 @@ class NativeBackendGnomeTest : public testing::Test {
|
| };
|
|
|
| TEST_F(NativeBackendGnomeTest, BasicAddLogin) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| BrowserThread::PostTask(
|
| @@ -473,10 +468,7 @@ TEST_F(NativeBackendGnomeTest, BasicAddLogin) {
|
| }
|
|
|
| TEST_F(NativeBackendGnomeTest, BasicListLogins) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| BrowserThread::PostTask(
|
| @@ -525,10 +517,7 @@ TEST_F(NativeBackendGnomeTest, PSLMatchingDisabledDomains) {
|
| }
|
|
|
| TEST_F(NativeBackendGnomeTest, BasicUpdateLogin) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| // First add google login.
|
| @@ -561,10 +550,7 @@ TEST_F(NativeBackendGnomeTest, BasicUpdateLogin) {
|
| }
|
|
|
| TEST_F(NativeBackendGnomeTest, BasicRemoveLogin) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| BrowserThread::PostTask(
|
| @@ -589,10 +575,7 @@ TEST_F(NativeBackendGnomeTest, BasicRemoveLogin) {
|
| }
|
|
|
| TEST_F(NativeBackendGnomeTest, RemoveNonexistentLogin) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| // First add an unrelated login.
|
| @@ -633,10 +616,7 @@ TEST_F(NativeBackendGnomeTest, RemoveNonexistentLogin) {
|
| }
|
|
|
| TEST_F(NativeBackendGnomeTest, AddDuplicateLogin) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| BrowserThread::PostTask(
|
| @@ -656,10 +636,7 @@ TEST_F(NativeBackendGnomeTest, AddDuplicateLogin) {
|
| }
|
|
|
| TEST_F(NativeBackendGnomeTest, ListLoginsAppends) {
|
| - // Pretend that the migration has already taken place.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| + NativeBackendGnome backend(42);
|
| backend.Init();
|
|
|
| BrowserThread::PostTask(
|
| @@ -691,337 +668,4 @@ TEST_F(NativeBackendGnomeTest, ListLoginsAppends) {
|
| CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42");
|
| }
|
|
|
| -// TODO(mdm): add more basic (i.e. non-migration) tests here at some point.
|
| -
|
| -TEST_F(NativeBackendGnomeTest, DISABLED_MigrateOneLogin) {
|
| - // Reject attempts to migrate so we can populate the store.
|
| - mock_keyring_reject_local_ids = true;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin),
|
| - base::Unretained(&backend), form_google_));
|
| -
|
| - // Make sure we can get the form back even when migration is failing.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got something back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - EXPECT_EQ(1u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| -
|
| - // Now allow the migration.
|
| - mock_keyring_reject_local_ids = false;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // This should not trigger migration because there will be no results.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::GetBlacklistLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Check that we got nothing back.
|
| - EXPECT_EQ(0u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - // Check that the keyring is unmodified.
|
| - EXPECT_EQ(1u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| -
|
| - // Check that we haven't set the persistent preference.
|
| - EXPECT_FALSE(
|
| - profile_.GetPrefs()->GetBoolean(prefs::kPasswordsUseLocalProfileId));
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // Trigger the migration by looking something up.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got something back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - EXPECT_EQ(2u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_google_, "chrome-42");
|
| -
|
| - // Check that we have set the persistent preference.
|
| - EXPECT_TRUE(
|
| - profile_.GetPrefs()->GetBoolean(prefs::kPasswordsUseLocalProfileId));
|
| -}
|
| -
|
| -TEST_F(NativeBackendGnomeTest, DISABLED_MigrateToMultipleProfiles) {
|
| - // Reject attempts to migrate so we can populate the store.
|
| - mock_keyring_reject_local_ids = true;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin),
|
| - base::Unretained(&backend), form_google_));
|
| -
|
| - RunBothThreads();
|
| - }
|
| -
|
| - EXPECT_EQ(1u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| -
|
| - // Now allow the migration.
|
| - mock_keyring_reject_local_ids = false;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // Trigger the migration by looking something up.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got something back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - EXPECT_EQ(2u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_google_, "chrome-42");
|
| -
|
| - // Check that we have set the persistent preference.
|
| - EXPECT_TRUE(
|
| - profile_.GetPrefs()->GetBoolean(prefs::kPasswordsUseLocalProfileId));
|
| -
|
| - // Normally we'd actually have a different profile. But in the test just reset
|
| - // the profile's persistent pref; we pass in the local profile id anyway.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, false);
|
| -
|
| - {
|
| - NativeBackendGnome backend(24, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // Trigger the migration by looking something up.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got something back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - EXPECT_EQ(3u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_google_, "chrome-42");
|
| - if (mock_keyring_items.size() > 2)
|
| - CheckMockKeyringItem(&mock_keyring_items[2], form_google_, "chrome-24");
|
| -}
|
| -
|
| -TEST_F(NativeBackendGnomeTest, DISABLED_NoMigrationWithPrefSet) {
|
| - // Reject attempts to migrate so we can populate the store.
|
| - mock_keyring_reject_local_ids = true;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin),
|
| - base::Unretained(&backend), form_google_));
|
| -
|
| - RunBothThreads();
|
| - }
|
| -
|
| - EXPECT_EQ(1u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| -
|
| - // Now allow migration, but also pretend that the it has already taken place.
|
| - mock_keyring_reject_local_ids = false;
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, true);
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // Trigger the migration by adding a new login.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin),
|
| - base::Unretained(&backend), form_isc_));
|
| -
|
| - // Look up all logins; we expect only the one we added.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got the right thing back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - if (form_list.size() > 0)
|
| - EXPECT_EQ(form_isc_.signon_realm, form_list[0]->signon_realm);
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - EXPECT_EQ(2u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_isc_, "chrome-42");
|
| -}
|
| -
|
| -TEST_F(NativeBackendGnomeTest, DISABLED_DeleteMigratedPasswordIsIsolated) {
|
| - // Reject attempts to migrate so we can populate the store.
|
| - mock_keyring_reject_local_ids = true;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin),
|
| - base::Unretained(&backend), form_google_));
|
| -
|
| - RunBothThreads();
|
| - }
|
| -
|
| - EXPECT_EQ(1u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| -
|
| - // Now allow the migration.
|
| - mock_keyring_reject_local_ids = false;
|
| -
|
| - {
|
| - NativeBackendGnome backend(42, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // Trigger the migration by looking something up.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got something back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| - }
|
| -
|
| - EXPECT_EQ(2u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_google_, "chrome-42");
|
| -
|
| - // Check that we have set the persistent preference.
|
| - EXPECT_TRUE(
|
| - profile_.GetPrefs()->GetBoolean(prefs::kPasswordsUseLocalProfileId));
|
| -
|
| - // Normally we'd actually have a different profile. But in the test just reset
|
| - // the profile's persistent pref; we pass in the local profile id anyway.
|
| - profile_.GetPrefs()->SetBoolean(prefs::kPasswordsUseLocalProfileId, false);
|
| -
|
| - {
|
| - NativeBackendGnome backend(24, profile_.GetPrefs());
|
| - backend.Init();
|
| -
|
| - // Trigger the migration by looking something up.
|
| - std::vector<PasswordForm*> form_list;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(
|
| - base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins),
|
| - base::Unretained(&backend), &form_list));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // Quick check that we got something back.
|
| - EXPECT_EQ(1u, form_list.size());
|
| - STLDeleteElements(&form_list);
|
| -
|
| - // There should be three passwords now.
|
| - EXPECT_EQ(3u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_google_, "chrome-42");
|
| - if (mock_keyring_items.size() > 2)
|
| - CheckMockKeyringItem(&mock_keyring_items[2], form_google_, "chrome-24");
|
| -
|
| - // Now delete the password from this second profile.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB, FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendGnome::RemoveLogin),
|
| - base::Unretained(&backend), form_google_));
|
| -
|
| - RunBothThreads();
|
| -
|
| - // The other two copies of the password in different profiles should remain.
|
| - EXPECT_EQ(2u, mock_keyring_items.size());
|
| - if (mock_keyring_items.size() > 0)
|
| - CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome");
|
| - if (mock_keyring_items.size() > 1)
|
| - CheckMockKeyringItem(&mock_keyring_items[1], form_google_, "chrome-42");
|
| - }
|
| -}
|
| +// TODO(mdm): add more basic tests here at some point.
|
|
|