fake_gcm_app_handler.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright 2014 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. 4 5#ifndef COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ 6#define COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ 7 8#include "base/compiler_specific.h" 9#include "base/memory/scoped_ptr.h" 10#include "components/gcm_driver/gcm_app_handler.h" 11 12namespace base { 13class RunLoop; 14} 15 16namespace gcm { 17 18class FakeGCMAppHandler : public GCMAppHandler { 19 public: 20 enum Event { 21 NO_EVENT, 22 MESSAGE_EVENT, 23 MESSAGES_DELETED_EVENT, 24 SEND_ERROR_EVENT 25 }; 26 27 FakeGCMAppHandler(); 28 virtual ~FakeGCMAppHandler(); 29 30 const Event& received_event() const { return received_event_; } 31 const std::string& app_id() const { return app_id_; } 32 const std::string& acked_message_id() const { return acked_message_id_; } 33 const GCMClient::IncomingMessage& message() const { return message_; } 34 const GCMClient::SendErrorDetails& send_error_details() const { 35 return send_error_details_; 36 } 37 38 void WaitForNotification(); 39 40 // GCMAppHandler implementation. 41 virtual void ShutdownHandler() OVERRIDE; 42 virtual void OnMessage(const std::string& app_id, 43 const GCMClient::IncomingMessage& message) OVERRIDE; 44 virtual void OnMessagesDeleted(const std::string& app_id) OVERRIDE; 45 virtual void OnSendError( 46 const std::string& app_id, 47 const GCMClient::SendErrorDetails& send_error_details) OVERRIDE; 48 virtual void OnSendAcknowledged(const std::string& app_id, 49 const std::string& message_id) OVERRIDE; 50 51 private: 52 void ClearResults(); 53 54 scoped_ptr<base::RunLoop> run_loop_; 55 56 Event received_event_; 57 std::string app_id_; 58 std::string acked_message_id_; 59 GCMClient::IncomingMessage message_; 60 GCMClient::SendErrorDetails send_error_details_; 61 62 DISALLOW_COPY_AND_ASSIGN(FakeGCMAppHandler); 63}; 64 65} // namespace gcm 66 67#endif // COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ 68