• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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