[GCM] Extracting GCMConnectionObserver from GCMAppHandler
[chromium-blink-merge.git] / components / gcm_driver / fake_gcm_app_handler.cc
blob3ac6b081873f7a861731525605e064b0a529bf01
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.
5 #include "components/gcm_driver/fake_gcm_app_handler.h"
7 #include "base/run_loop.h"
9 namespace gcm {
11 FakeGCMAppHandler::FakeGCMAppHandler()
12 : received_event_(NO_EVENT) {
15 FakeGCMAppHandler::~FakeGCMAppHandler() {
18 void FakeGCMAppHandler::WaitForNotification() {
19 run_loop_.reset(new base::RunLoop);
20 run_loop_->Run();
21 run_loop_.reset();
24 void FakeGCMAppHandler::ShutdownHandler() {
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();
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();
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();
56 void FakeGCMAppHandler::OnSendAcknowledged(
57 const std::string& app_id,
58 const std::string& message_id) {
59 ClearResults();
60 app_id_ = app_id;
61 acked_message_id_ = message_id;
62 if (run_loop_)
63 run_loop_->Quit();
66 void FakeGCMAppHandler::ClearResults() {
67 received_event_ = NO_EVENT;
68 app_id_.clear();
69 acked_message_id_.clear();
70 message_ = GCMClient::IncomingMessage();
71 send_error_details_ = GCMClient::SendErrorDetails();
74 } // namespace gcm