This source file includes following definitions.
- Build
- collect_
- Register
- RegisterFinished
- Unregister
- Send
- SendFinished
- AddExpectedUnregisterResponse
- GetNextExpectedUnregisterResponse
#include "chrome/browser/services/gcm/fake_gcm_profile_service.h"
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/browser_context.h"
namespace gcm {
KeyedService* FakeGCMProfileService::Build(content::BrowserContext* context) {
Profile* profile = static_cast<Profile*>(context);
return new FakeGCMProfileService(profile);
}
FakeGCMProfileService::FakeGCMProfileService(Profile* profile)
: GCMProfileService(profile),
collect_(false) {}
FakeGCMProfileService::~FakeGCMProfileService() {}
void FakeGCMProfileService::Register(const std::string& app_id,
const std::vector<std::string>& sender_ids,
RegisterCallback callback) {
base::MessageLoop::current()->PostTask(
FROM_HERE,
base::Bind(&FakeGCMProfileService::RegisterFinished,
base::Unretained(this),
app_id,
sender_ids,
callback));
}
void FakeGCMProfileService::RegisterFinished(
const std::string& app_id,
const std::vector<std::string>& sender_ids,
RegisterCallback callback) {
if (collect_) {
last_registered_app_id_ = app_id;
last_registered_sender_ids_ = sender_ids;
}
callback.Run(base::UintToString(sender_ids.size()), GCMClient::SUCCESS);
}
void FakeGCMProfileService::Unregister(const std::string& app_id,
UnregisterCallback callback) {
base::MessageLoop::current()->PostTask(
FROM_HERE, base::Bind(callback, GetNextExpectedUnregisterResponse()));
}
void FakeGCMProfileService::Send(const std::string& app_id,
const std::string& receiver_id,
const GCMClient::OutgoingMessage& message,
SendCallback callback) {
base::MessageLoop::current()->PostTask(
FROM_HERE,
base::Bind(&FakeGCMProfileService::SendFinished,
base::Unretained(this),
app_id,
receiver_id,
message,
callback));
}
void FakeGCMProfileService::SendFinished(
const std::string& app_id,
const std::string& receiver_id,
const GCMClient::OutgoingMessage& message,
SendCallback callback) {
if (collect_) {
last_sent_message_ = message;
last_receiver_id_ = receiver_id;
}
callback.Run(message.id, GCMClient::SUCCESS);
}
void FakeGCMProfileService::AddExpectedUnregisterResponse(
GCMClient::Result result) {
unregister_responses_.push_back(result);
}
GCMClient::Result FakeGCMProfileService::GetNextExpectedUnregisterResponse() {
if (unregister_responses_.empty())
return GCMClient::SUCCESS;
GCMClient::Result response = *unregister_responses_.begin();
unregister_responses_.erase(unregister_responses_.begin());
return response;
}
}