blob: 02983974e01137f683f8f1eed1a9be573fd0e229 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/gcm_driver/fake_gcm_app_handler.h"
#include "base/run_loop.h"
namespace gcm {
FakeGCMAppHandler::FakeGCMAppHandler() : received_event_(NO_EVENT) {}
FakeGCMAppHandler::~FakeGCMAppHandler() = default;
void FakeGCMAppHandler::WaitForNotification() {
run_loop_.reset(new base::RunLoop);
run_loop_->Run();
run_loop_.reset();
}
void FakeGCMAppHandler::ShutdownHandler() {}
void FakeGCMAppHandler::OnStoreReset() {}
void FakeGCMAppHandler::OnMessage(const std::string& app_id,
const IncomingMessage& message) {
ClearResults();
received_event_ = MESSAGE_EVENT;
app_id_ = app_id;
message_ = message;
if (run_loop_)
run_loop_->Quit();
}
void FakeGCMAppHandler::OnMessagesDeleted(const std::string& app_id) {
ClearResults();
received_event_ = MESSAGES_DELETED_EVENT;
app_id_ = app_id;
if (run_loop_)
run_loop_->Quit();
}
void FakeGCMAppHandler::OnSendError(
const std::string& app_id,
const GCMClient::SendErrorDetails& send_error_details) {
ClearResults();
received_event_ = SEND_ERROR_EVENT;
app_id_ = app_id;
send_error_details_ = send_error_details;
if (run_loop_)
run_loop_->Quit();
}
void FakeGCMAppHandler::OnSendAcknowledged(
const std::string& app_id,
const std::string& message_id) {
ClearResults();
app_id_ = app_id;
acked_message_id_ = message_id;
if (run_loop_)
run_loop_->Quit();
}
void FakeGCMAppHandler::OnMessageDecryptionFailed(
const std::string& app_id,
const std::string& message_id,
const std::string& error_message) {
ClearResults();
received_event_ = DECRYPTION_FAILED_EVENT;
app_id_ = app_id;
if (run_loop_)
run_loop_->Quit();
}
void FakeGCMAppHandler::ClearResults() {
received_event_ = NO_EVENT;
app_id_.clear();
acked_message_id_.clear();
message_ = IncomingMessage();
send_error_details_ = GCMClient::SendErrorDetails();
}
} // namespace gcm