fake_gcm_app_handler.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
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 9namespace gcm { 10 11FakeGCMAppHandler::FakeGCMAppHandler() 12 : received_event_(NO_EVENT), connected_(false) { 13} 14 15FakeGCMAppHandler::~FakeGCMAppHandler() { 16} 17 18void FakeGCMAppHandler::WaitForNotification() { 19 run_loop_.reset(new base::RunLoop); 20 run_loop_->Run(); 21 run_loop_.reset(); 22} 23 24void FakeGCMAppHandler::ShutdownHandler() { 25} 26 27void 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 37void 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 45void 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 56void FakeGCMAppHandler::ClearResults() { 57 received_event_ = NO_EVENT; 58 app_id_.clear(); 59 message_ = GCMClient::IncomingMessage(); 60 send_error_details_ = GCMClient::SendErrorDetails(); 61} 62 63void FakeGCMAppHandler::OnConnected(const net::IPEndPoint& ip_endpoint) { 64 connected_ = true; 65} 66 67void FakeGCMAppHandler::OnDisconnected() { 68 connected_ = false; 69} 70 71} // namespace gcm 72