blob: bc29536b7e093863ef088306ccdc89a8f48abda1 [file] [log] [blame]
// Copyright (c) 2012 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 "chrome/browser/chromeos/contacts/gdata_contacts_service_stub.h"
#include <vector>
#include "chrome/browser/chromeos/contacts/contact.pb.h"
#include "chrome/browser/chromeos/contacts/contact_test_util.h"
#include "chrome/browser/google_apis/time_util.h"
#include "content/public/browser/browser_thread.h"
using content::BrowserThread;
namespace contacts {
GDataContactsServiceStub::GDataContactsServiceStub()
: num_download_requests_(0),
num_download_requests_with_wrong_timestamps_(0),
download_should_succeed_(true) {
}
GDataContactsServiceStub::~GDataContactsServiceStub() {
}
void GDataContactsServiceStub::SetContacts(
const contacts::ContactPointers& contacts,
const base::Time& expected_min_update_time) {
contacts::test::CopyContacts(contacts, &contacts_);
expected_min_update_time_ = expected_min_update_time;
}
void GDataContactsServiceStub::DownloadContacts(
SuccessCallback success_callback,
FailureCallback failure_callback,
const base::Time& min_update_time) {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
num_download_requests_++;
if (!download_should_succeed_) {
failure_callback.Run();
return;
}
if (min_update_time != expected_min_update_time_) {
LOG(ERROR) << "Actual minimum update time ("
<< google_apis::util::FormatTimeAsString(min_update_time) << ") "
<< "differed from expected ("
<< google_apis::util::FormatTimeAsString(
expected_min_update_time_)
<< "); not returning any contacts";
num_download_requests_with_wrong_timestamps_++;
failure_callback.Run();
return;
}
scoped_ptr<ScopedVector<contacts::Contact> > contacts(
new ScopedVector<contacts::Contact>());
contacts::test::CopyContacts(contacts_, contacts.get());
success_callback.Run(contacts.Pass());
}
} // namespace contacts