fake_gcm_app_handler.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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 bool connected() const { return connected_; } 38 39 void WaitForNotification(); 40 41 // GCMAppHandler implementation. 42 virtual void ShutdownHandler() OVERRIDE; 43 virtual void OnMessage(const std::string& app_id, 44 const GCMClient::IncomingMessage& message) OVERRIDE; 45 virtual void OnMessagesDeleted(const std::string& app_id) OVERRIDE; 46 virtual void OnSendError( 47 const std::string& app_id, 48 const GCMClient::SendErrorDetails& send_error_details) OVERRIDE; 49 virtual void OnSendAcknowledged(const std::string& app_id, 50 const std::string& message_id) OVERRIDE; 51 virtual void OnConnected(const net::IPEndPoint& ip_endpoint) OVERRIDE; 52 virtual void OnDisconnected() OVERRIDE; 53 54 private: 55 void ClearResults(); 56 57 scoped_ptr<base::RunLoop> run_loop_; 58 59 Event received_event_; 60 std::string app_id_; 61 std::string acked_message_id_; 62 GCMClient::IncomingMessage message_; 63 GCMClient::SendErrorDetails send_error_details_; 64 bool connected_; 65 66 DISALLOW_COPY_AND_ASSIGN(FakeGCMAppHandler); 67}; 68 69} // namespace gcm 70 71#endif // COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ 72