Index: chrome/browser/sync/profile_sync_service_harness.h |
diff --git a/chrome/browser/sync/profile_sync_service_harness.h b/chrome/browser/sync/profile_sync_service_harness.h |
index 90f454013acd18c0c421da5d6f7f8abef64d88e9..6dc54237e49755aaf69e69035dbe0e2a660dae60 100644 |
--- a/chrome/browser/sync/profile_sync_service_harness.h |
+++ b/chrome/browser/sync/profile_sync_service_harness.h |
@@ -20,18 +20,27 @@ class Profile; |
// automation purposes. It harnesses the ProfileSyncService member of the |
// profile passed to it on construction and automates certain things like setup |
// and authentication. It provides ways to "wait" adequate periods of time for |
-// several clients to get to the same state. In order to use this class for |
-// automation, derived classes must implement 2 methods: SignalStateComplete() |
-// and AwaitStatusChange(). |
+// several clients to get to the same state. |
class ProfileSyncServiceHarness : public ProfileSyncServiceObserver { |
public: |
- ProfileSyncServiceHarness(Profile* p, |
+ ProfileSyncServiceHarness(Profile* profile, |
const std::string& username, |
const std::string& password, |
int id); |
virtual ~ProfileSyncServiceHarness() {} |
+ // Creates a ProfileSyncServiceHarness object and attaches it to |profile|, a. |
+ // profile that is assumed to have been signed into sync in the past. Caller |
+ // takes ownership. |
+ static ProfileSyncServiceHarness* CreateAndAttach(Profile* profile); |
+ |
+ // Sets the GAIA credentials with which to sign in to sync. |
+ void SetCredentials(const std::string& username, const std::string& password); |
+ |
+ // Returns true if sync has been enabled on |profile_|. |
+ bool IsSyncAlreadySetup(); |
+ |
// Creates a ProfileSyncService for the profile passed at construction and |
// enables sync for all available datatypes. Returns true only after sync has |
// been fully initialized and authenticated, and we are ready to process |
@@ -109,8 +118,11 @@ class ProfileSyncServiceHarness : public ProfileSyncServiceObserver { |
friend class StateChangeTimeoutEvent; |
enum WaitState { |
+ // The sync client has just been initialized. |
+ INITIAL_WAIT_STATE = 0, |
+ |
// The sync client awaits the OnBackendInitialized() callback. |
- WAITING_FOR_ON_BACKEND_INITIALIZED = 0, |
+ WAITING_FOR_ON_BACKEND_INITIALIZED, |
// The sync client is waiting for the first sync cycle to complete. |
WAITING_FOR_INITIAL_SYNC, |
@@ -139,10 +151,8 @@ class ProfileSyncServiceHarness : public ProfileSyncServiceObserver { |
// Called from the observer when the current wait state has been completed. |
void SignalStateCompleteWithNextState(WaitState next_state); |
- // Indicates that the operation being waited on is complete. Derived classes |
- // may implement this either by quitting the UI message loop, or by signaling |
- // a WaitableEvent object. |
- virtual void SignalStateComplete() = 0; |
+ // Indicates that the operation being waited on is complete. |
+ void SignalStateComplete(); |
// Finite state machine for controlling state. Returns true only if a state |
// change has taken place. |
@@ -152,26 +162,21 @@ class ProfileSyncServiceHarness : public ProfileSyncServiceObserver { |
bool AwaitStatusChangeWithTimeout(int timeout_milliseconds, |
const std::string& reason); |
- // Waits until the sync client's status changes. Derived classes may implement |
- // this either by running the UI message loop, or by waiting on a |
- // WaitableEvent object. |
- virtual void AwaitStatusChange() = 0; |
- |
// Returns true if the sync client has no unsynced items. |
bool IsSynced(); |
// Logs message with relevant info about client's sync state (if available). |
void LogClientInfo(std::string message); |
+ // Updates |last_timestamp_| with the timestamp of the current sync session. |
+ // Returns the new value of |last_timestamp_|. |
+ int64 GetUpdatedTimestamp(); |
+ |
WaitState wait_state_; |
Profile* profile_; |
ProfileSyncService* service_; |
- // Updates |last_timestamp_| with the timestamp of the current sync session. |
- // Returns the new value of |last_timestamp_|. |
- int64 GetUpdatedTimestamp(); |
- |
// This value tracks the max sync timestamp (e.g. synced-to revision) inside |
// the sync engine. It gets updated when a sync cycle ends and the session |
// snapshot implies syncing is "done". |