| // Copyright 2014 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ |
| #define COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ |
| |
| #include <memory> |
| |
| #include "base/compiler_specific.h" |
| #include "components/gcm_driver/gcm_app_handler.h" |
| |
| namespace base { |
| class RunLoop; |
| } |
| |
| namespace gcm { |
| |
| class FakeGCMAppHandler : public GCMAppHandler { |
| public: |
| enum Event { |
| NO_EVENT, |
| MESSAGE_EVENT, |
| MESSAGES_DELETED_EVENT, |
| SEND_ERROR_EVENT, |
| DECRYPTION_FAILED_EVENT, |
| }; |
| |
| FakeGCMAppHandler(); |
| |
| FakeGCMAppHandler(const FakeGCMAppHandler&) = delete; |
| FakeGCMAppHandler& operator=(const FakeGCMAppHandler&) = delete; |
| |
| ~FakeGCMAppHandler() override; |
| |
| const Event& received_event() const { return received_event_; } |
| const std::string& app_id() const { return app_id_; } |
| const std::string& acked_message_id() const { return acked_message_id_; } |
| const IncomingMessage& message() const { return message_; } |
| const GCMClient::SendErrorDetails& send_error_details() const { |
| return send_error_details_; |
| } |
| |
| void WaitForNotification(); |
| |
| // GCMAppHandler implementation. |
| void ShutdownHandler() override; |
| void OnStoreReset() override; |
| void OnMessage(const std::string& app_id, |
| const IncomingMessage& message) override; |
| void OnMessagesDeleted(const std::string& app_id) override; |
| void OnSendError( |
| const std::string& app_id, |
| const GCMClient::SendErrorDetails& send_error_details) override; |
| void OnMessageDecryptionFailed(const std::string& app_id, |
| const std::string& message_id, |
| const std::string& error_message) override; |
| void OnSendAcknowledged(const std::string& app_id, |
| const std::string& message_id) override; |
| |
| private: |
| void ClearResults(); |
| |
| std::unique_ptr<base::RunLoop> run_loop_; |
| |
| Event received_event_; |
| std::string app_id_; |
| std::string acked_message_id_; |
| IncomingMessage message_; |
| GCMClient::SendErrorDetails send_error_details_; |
| }; |
| |
| } // namespace gcm |
| |
| #endif // COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ |