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.
5 #ifndef CHROME_BROWSER_CHROMEOS_CONTACTS_CONTACT_TEST_UTIL_H_
6 #define CHROME_BROWSER_CHROMEOS_CONTACTS_CONTACT_TEST_UTIL_H_
10 #include "base/memory/scoped_vector.h"
11 #include "chrome/browser/chromeos/contacts/contact.pb.h"
12 #include "ui/gfx/size.h"
16 typedef std::vector<const Contact*> ContactPointers;
21 // Returns a string containing the information stored in |contact|. The same
22 // string will be returned for functionally-equivalent contacts (e.g. ones
23 // containing the same email addresses but in a different order).
24 std::string ContactToString(const Contact& contact);
26 // Runs ContactToString() on each entry in |contacts| and returns the results
27 // joined by newlines (in a consistent order).
28 std::string ContactsToString(const ContactPointers& contacts);
29 std::string ContactsToString(const ScopedVector<Contact>& contacts);
31 // Convenience wrapper for ContactsToString(). Takes |num_contacts|
32 // const Contact* arguments.
33 std::string VarContactsToString(int num_contacts, ...);
35 // Like ContactsToStrings(), but takes a ContactMap as input.
36 std::string ContactMapToString(const ContactMap& contact_map);
38 // Saves copies of all contacts in |source| to |dest|.
39 void CopyContacts(const ContactPointers& source,
40 ScopedVector<Contact>* dest);
41 void CopyContacts(const ScopedVector<Contact>& source,
42 ScopedVector<Contact>* dest);
44 // Initializes |contact| with the passed-in data. The photo and all address
45 // fields are cleared. |contact_id| corresponds to Contact::contact_id,
46 // |deleted| to Contact::deleted, and a unique string should be passed to
47 // |name_suffix| to make the name-related fields be distinct from those in other
49 void InitContact(const std::string& contact_id,
50 const std::string& name_suffix,
54 // Adds an email address to |contact|.
55 void AddEmailAddress(const std::string& address,
56 Contact_AddressType_Relation relation,
57 const std::string& label,
61 // Adds a phone number to |contact|.
62 void AddPhoneNumber(const std::string& number,
63 Contact_AddressType_Relation relation,
64 const std::string& label,
68 // Adds a postal address to |contact|.
69 void AddPostalAddress(const std::string& address,
70 Contact_AddressType_Relation relation,
71 const std::string& label,
75 // Adds an IM address to |contact|.
76 void AddInstantMessagingAddress(
77 const std::string& address,
78 Contact_InstantMessagingAddress_Protocol protocol,
79 Contact_AddressType_Relation relation,
80 const std::string& label,
84 // Initializes |contact|'s photo to a bitmap of the given size.
85 // ContactToString() includes the photo's dimensions in its output, so tests can
86 // call this method to set the photo to a given size and then check that the
87 // size matches later (e.g. after loading the contact from a server or from
88 // disk) to confirm that the photo was loaded correctly.
89 void SetPhoto(const gfx::Size& size, Contact* contact);
92 } // namespace contacts
94 #endif // CHROME_BROWSER_CHROMEOS_CONTACTS_CONTACT_TEST_UTIL_H_