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 #include "components/gcm_driver/fake_gcm_app_handler.h" 6 7 #include "base/run_loop.h" 8 9 namespace gcm { 10 11 FakeGCMAppHandler::FakeGCMAppHandler() 12 : received_event_(NO_EVENT), connected_(false) { 13 } 14 15 FakeGCMAppHandler::~FakeGCMAppHandler() { 16 } 17 18 void FakeGCMAppHandler::WaitForNotification() { 19 run_loop_.reset(new base::RunLoop); 20 run_loop_->Run(); 21 run_loop_.reset(); 22 } 23 24 void FakeGCMAppHandler::ShutdownHandler() { 25 } 26 27 void FakeGCMAppHandler::OnMessage(const std::string& app_id, 28 const GCMClient::IncomingMessage& message) { 29 ClearResults(); 30 received_event_ = MESSAGE_EVENT; 31 app_id_ = app_id; 32 message_ = message; 33 if (run_loop_) 34 run_loop_->Quit(); 35 } 36 37 void FakeGCMAppHandler::OnMessagesDeleted(const std::string& app_id) { 38 ClearResults(); 39 received_event_ = MESSAGES_DELETED_EVENT; 40 app_id_ = app_id; 41 if (run_loop_) 42 run_loop_->Quit(); 43 } 44 45 void FakeGCMAppHandler::OnSendError( 46 const std::string& app_id, 47 const GCMClient::SendErrorDetails& send_error_details) { 48 ClearResults(); 49 received_event_ = SEND_ERROR_EVENT; 50 app_id_ = app_id; 51 send_error_details_ = send_error_details; 52 if (run_loop_) 53 run_loop_->Quit(); 54 } 55 56 void FakeGCMAppHandler::ClearResults() { 57 received_event_ = NO_EVENT; 58 app_id_.clear(); 59 message_ = GCMClient::IncomingMessage(); 60 send_error_details_ = GCMClient::SendErrorDetails(); 61 } 62 63 void FakeGCMAppHandler::OnConnected(const net::IPEndPoint& ip_endpoint) { 64 connected_ = true; 65 } 66 67 void FakeGCMAppHandler::OnDisconnected() { 68 connected_ = false; 69 } 70 71 } // namespace gcm 72