Componentize GCM Part 1: create GCM component and move some files over
[chromium-blink-merge.git] / chrome / browser / services / gcm / gcm_client_mock.h
bloba878a88bb06bd67f833488b67357af354afa71ed
1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_SERVICES_GCM_GCM_CLIENT_MOCK_H_
6 #define CHROME_BROWSER_SERVICES_GCM_GCM_CLIENT_MOCK_H_
8 #include "base/compiler_specific.h"
9 #include "base/memory/weak_ptr.h"
10 #include "google_apis/gcm/gcm_client.h"
12 namespace gcm {
14 class GCMClientMock : public GCMClient {
15 public:
16 enum Status {
17 UNINITIALIZED,
18 STARTED,
19 STOPPED,
20 CHECKED_OUT
23 enum StartMode {
24 NO_DELAY_START,
25 DELAY_START,
28 explicit GCMClientMock(StartMode start_mode);
29 virtual ~GCMClientMock();
31 // Overridden from GCMClient:
32 // Called on IO thread.
33 virtual void Initialize(
34 const checkin_proto::ChromeBuildProto& chrome_build_proto,
35 const base::FilePath& store_path,
36 const std::vector<std::string>& account_ids,
37 const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner,
38 const scoped_refptr<net::URLRequestContextGetter>&
39 url_request_context_getter,
40 scoped_ptr<Encryptor> encryptor,
41 Delegate* delegate) OVERRIDE;
42 virtual void Start() OVERRIDE;
43 virtual void Stop() OVERRIDE;
44 virtual void CheckOut() OVERRIDE;
45 virtual void Register(const std::string& app_id,
46 const std::vector<std::string>& sender_ids) OVERRIDE;
47 virtual void Unregister(const std::string& app_id) OVERRIDE;
48 virtual void Send(const std::string& app_id,
49 const std::string& receiver_id,
50 const OutgoingMessage& message) OVERRIDE;
51 virtual void SetRecording(bool recording) OVERRIDE;
52 virtual void ClearActivityLogs() OVERRIDE;
53 virtual GCMStatistics GetStatistics() const OVERRIDE;
55 // Initiate the loading that has been delayed.
56 // Called on UI thread.
57 void PerformDelayedLoading();
59 // Simulate receiving something from the server.
60 // Called on UI thread.
61 void ReceiveMessage(const std::string& app_id,
62 const IncomingMessage& message);
63 void DeleteMessages(const std::string& app_id);
65 static std::string GetRegistrationIdFromSenderIds(
66 const std::vector<std::string>& sender_ids);
68 Status status() const { return status_; }
70 private:
71 // Called on IO thread.
72 void DoLoading();
73 void CheckinFinished();
74 void RegisterFinished(const std::string& app_id,
75 const std::string& registrion_id);
76 void UnregisterFinished(const std::string& app_id);
77 void SendFinished(const std::string& app_id, const OutgoingMessage& message);
78 void MessageReceived(const std::string& app_id,
79 const IncomingMessage& message);
80 void MessagesDeleted(const std::string& app_id);
81 void MessageSendError(const std::string& app_id,
82 const SendErrorDetails& send_error_details);
84 Delegate* delegate_;
85 Status status_;
86 StartMode start_mode_;
87 base::WeakPtrFactory<GCMClientMock> weak_ptr_factory_;
89 DISALLOW_COPY_AND_ASSIGN(GCMClientMock);
92 } // namespace gcm
94 #endif // CHROME_BROWSER_SERVICES_GCM_GCM_CLIENT_MOCK_H_