Home | History | Annotate | Download | only in integration
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_AUTOFILL_HELPER_H_
      6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_AUTOFILL_HELPER_H_
      7 
      8 #include <set>
      9 #include <string>
     10 #include <vector>
     11 
     12 #include "base/compiler_specific.h"
     13 #include "base/memory/ref_counted.h"
     14 #include "base/strings/string16.h"
     15 #include "chrome/browser/sync/test/integration/sync_datatype_helper.h"
     16 
     17 namespace autofill {
     18 class AutofillEntry;
     19 class AutofillKey;
     20 class AutofillProfile;
     21 class AutofillType;
     22 class AutofillWebDataService;
     23 class CreditCard;
     24 class PersonalDataManager;
     25 }  // namespace autofill
     26 
     27 namespace autofill_helper {
     28 
     29 enum ProfileType {
     30   PROFILE_MARION,
     31   PROFILE_HOMER,
     32   PROFILE_FRASIER,
     33   PROFILE_NULL
     34 };
     35 
     36 // Used to access the web data service within a particular sync profile.
     37 scoped_refptr<autofill::AutofillWebDataService> GetWebDataService(
     38     int index) WARN_UNUSED_RESULT;
     39 
     40 // Used to access the personal data manager within a particular sync profile.
     41 autofill::PersonalDataManager* GetPersonalDataManager(
     42     int index) WARN_UNUSED_RESULT;
     43 
     44 // Adds the form fields in |keys| to the WebDataService of sync profile
     45 // |profile|.
     46 void AddKeys(int profile, const std::set<autofill::AutofillKey>& keys);
     47 
     48 // Removes the form field in |key| from the WebDataService of sync profile
     49 // |profile|.
     50 void RemoveKey(int profile, const autofill::AutofillKey& key);
     51 
     52 // Removes all of the keys from the WebDataService of sync profile |profile|.
     53 void RemoveKeys(int profile);
     54 
     55 // Gets all the form fields in the WebDataService of sync profile |profile|.
     56 std::set<autofill::AutofillEntry> GetAllKeys(int profile) WARN_UNUSED_RESULT;
     57 
     58 // Compares the form fields in the WebDataServices of sync profiles
     59 // |profile_a| and |profile_b|. Returns true if they match.
     60 bool KeysMatch(int profile_a, int profile_b) WARN_UNUSED_RESULT;
     61 
     62 // Allows syncers to run until KeysMatch() returns true.
     63 bool AwaitKeysMatch(int profile_a, int profile_b);
     64 
     65 // Replaces the Autofill profiles in sync profile |profile| with
     66 // |autofill_profiles|.
     67 void SetProfiles(int profile,
     68                  std::vector<autofill::AutofillProfile>* autofill_profiles);
     69 
     70 // Replaces the CreditCard profiles in sync profile |profile| with
     71 // |credit_cards|.
     72 void SetCreditCards(int profile,
     73                     std::vector<autofill::CreditCard>* credit_cards);
     74 
     75 // Adds the autofill profile |autofill_profile| to sync profile |profile|.
     76 void AddProfile(int profile, const autofill::AutofillProfile& autofill_profile);
     77 
     78 // Removes the autofill profile with guid |guid| from sync profile
     79 // |profile|.
     80 void RemoveProfile(int profile, const std::string& guid);
     81 
     82 // Updates the autofill profile with guid |guid| in sync profile |profile|
     83 // to |type| and |value|.
     84 void UpdateProfile(int profile,
     85                    const std::string& guid,
     86                    const autofill::AutofillType& type,
     87                    const base::string16& value);
     88 
     89 // Gets all the Autofill profiles in the PersonalDataManager of sync profile
     90 // |profile|.
     91 const std::vector<autofill::AutofillProfile*>& GetAllProfiles(
     92     int profile) WARN_UNUSED_RESULT;
     93 
     94 // Returns the number of autofill profiles contained by sync profile
     95 // |profile|.
     96 int GetProfileCount(int profile);
     97 
     98 // Returns the number of autofill keys contained by sync profile |profile|.
     99 int GetKeyCount(int profile);
    100 
    101 // Compares the Autofill profiles in the PersonalDataManagers of sync profiles
    102 // |profile_a| and |profile_b|. Returns true if they match.
    103 bool ProfilesMatch(int profile_a, int profile_b) WARN_UNUSED_RESULT;
    104 
    105 // Compares the autofill profiles for all sync profiles, and returns true if
    106 // they all match.
    107 bool AllProfilesMatch() WARN_UNUSED_RESULT;
    108 
    109 // Allows the syncers to run until ProfilesMatch() returns true.
    110 bool AwaitProfilesMatch(int profile_a, int profile_b);
    111 
    112 // Creates a test autofill profile based on the persona specified in |type|.
    113 autofill::AutofillProfile CreateAutofillProfile(ProfileType type);
    114 
    115 }  // namespace autofill_helper
    116 
    117 #endif  // CHROME_BROWSER_SYNC_TEST_INTEGRATION_AUTOFILL_HELPER_H_
    118