| Index: chrome/browser/services/gcm/gcm_client_mock.h
|
| diff --git a/chrome/browser/services/gcm/gcm_client_mock.h b/chrome/browser/services/gcm/gcm_client_mock.h
|
| index 518456dd54ae935aad094830e64bb1cc76d2ef8e..23fc7c41a216eae107bdeba19ed8dd77dc65d855 100644
|
| --- a/chrome/browser/services/gcm/gcm_client_mock.h
|
| +++ b/chrome/browser/services/gcm/gcm_client_mock.h
|
| @@ -6,6 +6,7 @@
|
| #define CHROME_BROWSER_SERVICES_GCM_GCM_CLIENT_MOCK_H_
|
|
|
| #include "base/compiler_specific.h"
|
| +#include "base/memory/weak_ptr.h"
|
| #include "google_apis/gcm/gcm_client.h"
|
|
|
| namespace gcm {
|
| @@ -13,8 +14,14 @@ namespace gcm {
|
| class GCMClientMock : public GCMClient {
|
| public:
|
| enum Status {
|
| - NOT_READY,
|
| - READY
|
| + UNINITIALIZED,
|
| + LOADED,
|
| + CHECKED_OUT
|
| + };
|
| +
|
| + enum LoadingDelay {
|
| + NO_DELAY_LOADING,
|
| + DELAY_LOADING,
|
| };
|
|
|
| enum ErrorSimulation {
|
| @@ -22,9 +29,9 @@ class GCMClientMock : public GCMClient {
|
| FORCE_ERROR
|
| };
|
|
|
| - // |status| denotes if the fake client is ready or not at the beginning.
|
| + // |loading_delay| denotes if the check-in should be delayed.
|
| // |error_simulation| denotes if we should simulate server error.
|
| - GCMClientMock(Status status, ErrorSimulation error_simulation);
|
| + GCMClientMock(LoadingDelay loading_delay, ErrorSimulation error_simulation);
|
| virtual ~GCMClientMock();
|
|
|
| // Overridden from GCMClient:
|
| @@ -37,6 +44,7 @@ class GCMClientMock : public GCMClient {
|
| const scoped_refptr<net::URLRequestContextGetter>&
|
| url_request_context_getter,
|
| Delegate* delegate) OVERRIDE;
|
| + virtual void Load() OVERRIDE;
|
| virtual void CheckOut() OVERRIDE;
|
| virtual void Register(const std::string& app_id,
|
| const std::string& cert,
|
| @@ -45,7 +53,10 @@ class GCMClientMock : public GCMClient {
|
| virtual void Send(const std::string& app_id,
|
| const std::string& receiver_id,
|
| const OutgoingMessage& message) OVERRIDE;
|
| - virtual bool IsReady() const OVERRIDE;
|
| +
|
| + // Initiate the loading that has been delayed.
|
| + // Called on UI thread.
|
| + void PerformDelayedLoading();
|
|
|
| // Simulate receiving something from the server.
|
| // Called on UI thread.
|
| @@ -53,14 +64,15 @@ class GCMClientMock : public GCMClient {
|
| const IncomingMessage& message);
|
| void DeleteMessages(const std::string& app_id);
|
|
|
| - // Can only transition from non-ready to ready.
|
| - void SetReady();
|
| -
|
| static std::string GetRegistrationIdFromSenderIds(
|
| const std::vector<std::string>& sender_ids);
|
|
|
| + Status status() const { return status_; }
|
| +
|
| private:
|
| // Called on IO thread.
|
| + void DoLoading();
|
| + void CheckinFinished();
|
| void RegisterFinished(const std::string& app_id,
|
| const std::string& registrion_id);
|
| void SendFinished(const std::string& app_id, const std::string& message_id);
|
| @@ -69,11 +81,12 @@ class GCMClientMock : public GCMClient {
|
| void MessagesDeleted(const std::string& app_id);
|
| void MessageSendError(const std::string& app_id,
|
| const std::string& message_id);
|
| - void SetReadyOnIO();
|
|
|
| Delegate* delegate_;
|
| Status status_;
|
| + LoadingDelay loading_delay_;
|
| ErrorSimulation error_simulation_;
|
| + base::WeakPtrFactory<GCMClientMock> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GCMClientMock);
|
| };
|
|
|