15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_PASSWORDS_HELPER_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_SYNC_TEST_INTEGRATION_PASSWORDS_HELPER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/profile_sync_service.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync/test/integration/sync_test.h" 1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "components/autofill/core/common/password_form.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace password_manager { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PasswordStore; 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace passwords_helper { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds the login held in |form| to the password store |store|. Even though 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// logins are normally added asynchronously, this method will block until the 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// login is added. 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid AddLogin(password_manager::PasswordStore* store, 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const autofill::PasswordForm& form); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Update the data held in password store |store| with a modified |form|. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This method blocks until the operation is complete. 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid UpdateLogin(password_manager::PasswordStore* store, 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const autofill::PasswordForm& form); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Searches |store| for all logins matching a fake signon realm used only by 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// LivePasswordsSyncTest and adds the results to |matches|. Note that the 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// caller is responsible for deleting the forms added to |matches|. 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid GetLogins(password_manager::PasswordStore* store, 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) std::vector<autofill::PasswordForm>& matches); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Removes the login held in |form| from the password store |store|. This 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// method blocks until the operation is complete. 40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid RemoveLogin(password_manager::PasswordStore* store, 41c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const autofill::PasswordForm& form); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Removes all password forms from the password store |store|. 44c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid RemoveLogins(password_manager::PasswordStore* store); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sets the cryptographer's encryption passphrase for the profile at index 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |index| to |passphrase|, and passphrase type |type|. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetEncryptionPassphrase(int index, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& passphrase, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProfileSyncService::PassphraseType type); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sets the cryptographer's decryption passphrase for the profile at index 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |index| to |passphrase|. Returns false if the operation failed, and true 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// otherwise. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SetDecryptionPassphrase(int index, const std::string& passphrase); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Gets the password store of the profile with index |index|. 58c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochpassword_manager::PasswordStore* GetPasswordStore(int index); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Gets the password store of the verifier profile. 61c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochpassword_manager::PasswordStore* GetVerifierPasswordStore(); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns true iff the profile with index |index| contains the same password 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// forms as the verifier profile. 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ProfileContainsSamePasswordFormsAsVerifier(int index); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns true iff the profile with index |index_a| contains the same 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// password forms as the profile with index |index_b|. 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ProfilesContainSamePasswordForms(int index_a, int index_b); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns true iff all profiles contain the same password forms as the 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// verifier profile. 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool AllProfilesContainSamePasswordFormsAsVerifier(); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns true iff all profiles contain the same password forms. 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool AllProfilesContainSamePasswordForms(); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 78a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Returns true if all profiles contain the same password forms and 79a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// it doesn't time out. 80a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochbool AwaitAllProfilesContainSamePasswordForms(); 81a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 82010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Returns true if specified profile contains the same password forms as the 83010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// verifier and it doesn't time out. 84010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)bool AwaitProfileContainsSamePasswordFormsAsVerifier(int index); 85010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the number of forms in the password store of the profile with index 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |index|. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int GetPasswordCount(int index); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the number of forms in the password store of the verifier profile. 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int GetVerifierPasswordCount(); 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Creates a test password form with a well known fake signon realm used only 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// by LivePasswordsSyncTest based on |index|. 9558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)autofill::PasswordForm CreateTestPasswordForm(int index); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace passwords_helper 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_PASSWORDS_HELPER_H_ 100