Home | History | Annotate | Download | only in contacts
      1 // Copyright (c) 2012 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 "chrome/browser/chromeos/contacts/contact_manager_stub.h"
      6 
      7 #include "base/logging.h"
      8 #include "chrome/browser/browser_process.h"
      9 #include "chrome/browser/chromeos/contacts/contact.pb.h"
     10 #include "chrome/browser/chromeos/contacts/contact_manager_observer.h"
     11 #include "chrome/browser/chromeos/contacts/contact_test_util.h"
     12 #include "chrome/browser/profiles/profile.h"
     13 #include "content/public/browser/browser_thread.h"
     14 
     15 using content::BrowserThread;
     16 
     17 namespace contacts {
     18 
     19 ContactManagerStub::ContactManagerStub(Profile* profile)
     20     : profile_(profile),
     21       weak_ptr_factory_(this) {
     22 }
     23 
     24 ContactManagerStub::~ContactManagerStub() {}
     25 
     26 void ContactManagerStub::NotifyObserversAboutUpdatedContacts() {
     27   FOR_EACH_OBSERVER(ContactManagerObserver,
     28                     observers_,
     29                     OnContactsUpdated(profile_));
     30 }
     31 
     32 void ContactManagerStub::SetContacts(const ContactPointers& contacts) {
     33   test::CopyContacts(contacts, &contacts_);
     34 }
     35 
     36 base::WeakPtr<ContactManagerInterface> ContactManagerStub::GetWeakPtr() {
     37   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
     38   return weak_ptr_factory_.GetWeakPtr();
     39 }
     40 
     41 void ContactManagerStub::AddObserver(ContactManagerObserver* observer,
     42                                      Profile* profile) {
     43   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
     44   CHECK(observer);
     45   CHECK_EQ(profile, profile_);
     46   CHECK(!observers_.HasObserver(observer));
     47   observers_.AddObserver(observer);
     48 }
     49 
     50 void ContactManagerStub::RemoveObserver(ContactManagerObserver* observer,
     51                                         Profile* profile) {
     52   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
     53   CHECK(observer);
     54   CHECK_EQ(profile, profile_);
     55   CHECK(observers_.HasObserver(observer));
     56   observers_.RemoveObserver(observer);
     57 }
     58 
     59 scoped_ptr<ContactPointers> ContactManagerStub::GetAllContacts(
     60     Profile* profile) {
     61   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
     62   CHECK_EQ(profile, profile_);
     63   scoped_ptr<ContactPointers> contacts(new ContactPointers);
     64   for (size_t i = 0; i < contacts_.size(); ++i)
     65     contacts->push_back(contacts_[i]);
     66   return contacts.Pass();
     67 }
     68 
     69 const Contact* ContactManagerStub::GetContactById(
     70     Profile* profile,
     71     const std::string& contact_id) {
     72   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
     73   CHECK_EQ(profile, profile_);
     74   for (size_t i = 0; i < contacts_.size(); ++i) {
     75     if (contacts_[i]->contact_id() == contact_id)
     76       return contacts_[i];
     77   }
     78   return NULL;
     79 }
     80 
     81 }  // namespace contacts
     82