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 12 namespace base { 13 class RunLoop; 14 } 15 16 namespace gcm { 17 18 class 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 GCMClient::IncomingMessage& message() const { return message_; } 33 const GCMClient::SendErrorDetails& send_error_details() const { 34 return send_error_details_; 35 } 36 bool connected() const { return connected_; } 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 OnConnected(const net::IPEndPoint& ip_endpoint) OVERRIDE; 49 virtual void OnDisconnected() 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 GCMClient::IncomingMessage message_; 59 GCMClient::SendErrorDetails send_error_details_; 60 bool connected_; 61 62 DISALLOW_COPY_AND_ASSIGN(FakeGCMAppHandler); 63 }; 64 65 } // namespace gcm 66 67 #endif // COMPONENTS_GCM_DRIVER_FAKE_GCM_APP_HANDLER_H_ 68