Chromium Code Reviews| 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 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_PREFERENCES_HELPER_H_ | 5 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_PREFERENCES_HELPER_H_ |
| 6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_PREFERENCES_HELPER_H_ | 6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_PREFERENCES_HELPER_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | |
| 9 | |
| 10 #include <memory> | |
| 11 #include <string> | |
| 12 #include <vector> | |
| 13 | |
| 8 #include "base/files/file_path.h" | 14 #include "base/files/file_path.h" |
| 9 #include "base/values.h" | 15 #include "base/values.h" |
| 16 #include "chrome/browser/sync/test/integration/multi_client_status_change_checke r.h" | |
| 10 | 17 |
| 11 #include <stdint.h> | 18 class PrefChangeRegistrar; |
| 12 | |
| 13 #include <string> | |
| 14 | |
| 15 class PrefService; | 19 class PrefService; |
| 16 | 20 |
| 17 namespace preferences_helper { | 21 namespace preferences_helper { |
| 18 | 22 |
| 19 // Used to access the preferences within a particular sync profile. | 23 // Used to access the preferences within a particular sync profile. |
| 20 PrefService* GetPrefs(int index); | 24 PrefService* GetPrefs(int index); |
| 21 | 25 |
| 22 // Used to access the preferences within the verifier sync profile. | 26 // Used to access the preferences within the verifier sync profile. |
| 23 PrefService* GetVerifierPrefs(); | 27 PrefService* GetVerifierPrefs(); |
| 24 | 28 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 91 // Used to verify that the file path preference with name |pref_name| has the | 95 // Used to verify that the file path preference with name |pref_name| has the |
| 92 // same value across all profiles. Also checks |verifier| if DisableVerifier() | 96 // same value across all profiles. Also checks |verifier| if DisableVerifier() |
| 93 // hasn't been called. | 97 // hasn't been called. |
| 94 bool FilePathPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; | 98 bool FilePathPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; |
| 95 | 99 |
| 96 // Used to verify that the list preference with name |pref_name| has the | 100 // Used to verify that the list preference with name |pref_name| has the |
| 97 // same value across all profiles. Also checks |verifier| if DisableVerifier() | 101 // same value across all profiles. Also checks |verifier| if DisableVerifier() |
| 98 // hasn't been called. | 102 // hasn't been called. |
| 99 bool ListPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; | 103 bool ListPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; |
| 100 | 104 |
| 101 // This is the version of ListPrefMatches that waits for the preference list | |
| 102 // to match in all profiles. Returns false if this operation times out. | |
| 103 bool AwaitListPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; | |
| 104 | |
| 105 // Blocks the test until the specified pref matches on all relevant clients or | |
| 106 // a timeout occurs. Returns false if it returns because of a timeout. | |
| 107 bool AwaitBooleanPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; | |
| 108 | |
| 109 // Blocks the test until the specified pref matches on all relevant clients or | |
| 110 // a timeout occurs. Returns false if it returns because of a timeout. | |
| 111 bool AwaitIntegerPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; | |
| 112 | |
| 113 // Blocks the test until the specified pref matches on all relevant clients or | |
| 114 // a timeout occurs. Returns false if it returns because of a timeout. | |
| 115 bool AwaitStringPrefMatches(const char* pref_name) WARN_UNUSED_RESULT; | |
| 116 | |
| 117 } // namespace preferences_helper | 105 } // namespace preferences_helper |
| 118 | 106 |
| 107 // Abstract checker that takes care of registering to preference changes. | |
|
maxbogue
2016/09/30 19:03:52
s/to/for
skym
2016/09/30 19:06:52
Done.
| |
| 108 class PrefMatchChecker : public StatusChangeChecker { | |
| 109 public: | |
| 110 explicit PrefMatchChecker(const char* path); | |
| 111 ~PrefMatchChecker() override; | |
| 112 | |
| 113 // StatusChangeChecker implementation. | |
| 114 bool IsExitConditionSatisfied() override = 0; | |
| 115 std::string GetDebugMessage() const override; | |
| 116 | |
| 117 protected: | |
| 118 const char* GetPath() const; | |
| 119 | |
| 120 private: | |
| 121 void RegisterPrefListener(PrefService* pref_service); | |
| 122 | |
| 123 std::vector<std::unique_ptr<PrefChangeRegistrar>> pref_change_registrars_; | |
| 124 const char* path_; | |
| 125 }; | |
| 126 | |
| 127 // Matcher that blocks until the specified list pref matches on all clients. | |
| 128 class ListPrefMatchChecker : public PrefMatchChecker { | |
| 129 public: | |
| 130 explicit ListPrefMatchChecker(const char* path); | |
| 131 | |
| 132 // PrefMatchChecker implementation. | |
| 133 bool IsExitConditionSatisfied() override; | |
| 134 }; | |
| 135 | |
| 136 // Matcher that blocks until the specified boolean pref matches on all clients. | |
| 137 class BooleanPrefMatchChecker : public PrefMatchChecker { | |
| 138 public: | |
| 139 explicit BooleanPrefMatchChecker(const char* path); | |
| 140 | |
| 141 // PrefMatchChecker implementation. | |
| 142 bool IsExitConditionSatisfied() override; | |
| 143 }; | |
| 144 | |
| 145 // Matcher that blocks until the specified integer pref matches on all clients. | |
| 146 class IntegerPrefMatchChecker : public PrefMatchChecker { | |
| 147 public: | |
| 148 explicit IntegerPrefMatchChecker(const char* path); | |
| 149 | |
| 150 // PrefMatchChecker implementation. | |
| 151 bool IsExitConditionSatisfied() override; | |
| 152 }; | |
| 153 | |
| 154 // Matcher that blocks until the specified string pref matches on all clients. | |
| 155 class StringPrefMatchChecker : public PrefMatchChecker { | |
| 156 public: | |
| 157 explicit StringPrefMatchChecker(const char* path); | |
| 158 | |
| 159 // PrefMatchChecker implementation. | |
| 160 bool IsExitConditionSatisfied() override; | |
| 161 }; | |
| 162 | |
| 119 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_PREFERENCES_HELPER_H_ | 163 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_PREFERENCES_HELPER_H_ |
| OLD | NEW |