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_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_
6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_
10 #include "base/compiler_specific.h"
11 #include "third_party/skia/include/core/SkColor.h"
24 namespace bookmarks_helper
{
26 // Used to access the bookmark model within a particular sync profile.
27 bookmarks::BookmarkModel
* GetBookmarkModel(int index
) WARN_UNUSED_RESULT
;
29 // Used to access the bookmark bar within a particular sync profile.
30 const bookmarks::BookmarkNode
* GetBookmarkBarNode(int index
) WARN_UNUSED_RESULT
;
32 // Used to access the "other bookmarks" node within a particular sync profile.
33 const bookmarks::BookmarkNode
* GetOtherNode(int index
) WARN_UNUSED_RESULT
;
35 // Used to access the "Synced Bookmarks" node within a particular sync profile.
36 const bookmarks::BookmarkNode
* GetSyncedBookmarksNode(int index
)
39 // Used to access the "Managed Bookmarks" node for the given profile.
40 const bookmarks::BookmarkNode
* GetManagedNode(int index
) WARN_UNUSED_RESULT
;
42 // Used to access the bookmarks within the verifier sync profile.
43 bookmarks::BookmarkModel
* GetVerifierBookmarkModel() WARN_UNUSED_RESULT
;
45 // Adds a URL with address |url| and title |title| to the bookmark bar of
46 // profile |profile|. Returns a pointer to the node that was added.
47 const bookmarks::BookmarkNode
* AddURL(int profile
,
48 const std::string
& title
,
49 const GURL
& url
) WARN_UNUSED_RESULT
;
51 // Adds a URL with address |url| and title |title| to the bookmark bar of
52 // profile |profile| at position |index|. Returns a pointer to the node that
54 const bookmarks::BookmarkNode
* AddURL(int profile
,
56 const std::string
& title
,
57 const GURL
& url
) WARN_UNUSED_RESULT
;
59 // Adds a URL with address |url| and title |title| under the node |parent| of
60 // profile |profile| at position |index|. Returns a pointer to the node that
62 const bookmarks::BookmarkNode
* AddURL(int profile
,
63 const bookmarks::BookmarkNode
* parent
,
65 const std::string
& title
,
66 const GURL
& url
) WARN_UNUSED_RESULT
;
68 // Adds a folder named |title| to the bookmark bar of profile |profile|.
69 // Returns a pointer to the folder that was added.
70 const bookmarks::BookmarkNode
* AddFolder(int profile
, const std::string
& title
)
73 // Adds a folder named |title| to the bookmark bar of profile |profile| at
74 // position |index|. Returns a pointer to the folder that was added.
75 const bookmarks::BookmarkNode
* AddFolder(int profile
,
77 const std::string
& title
)
80 // Adds a folder named |title| to the node |parent| in the bookmark model of
81 // profile |profile| at position |index|. Returns a pointer to the node that
83 const bookmarks::BookmarkNode
* AddFolder(int profile
,
84 const bookmarks::BookmarkNode
* parent
,
86 const std::string
& title
)
89 // Changes the title of the node |node| in the bookmark model of profile
90 // |profile| to |new_title|.
91 void SetTitle(int profile
,
92 const bookmarks::BookmarkNode
* node
,
93 const std::string
& new_title
);
95 // The source of the favicon.
101 // Sets the |icon_url| and |image| data for the favicon for |node| in the
102 // bookmark model for |profile|.
103 void SetFavicon(int profile
,
104 const bookmarks::BookmarkNode
* node
,
105 const GURL
& icon_url
,
106 const gfx::Image
& image
,
107 FaviconSource source
);
109 // Expires the favicon for |node| in the bookmark model for |profile|.
110 void ExpireFavicon(int profile
, const bookmarks::BookmarkNode
* node
);
112 // Checks whether the favicon at |icon_url| for |profile| is expired;
113 void CheckFaviconExpired(int profile
, const GURL
& icon_url
);
115 // Changes the url of the node |node| in the bookmark model of profile
116 // |profile| to |new_url|. Returns a pointer to the node with the changed url.
117 const bookmarks::BookmarkNode
* SetURL(int profile
,
118 const bookmarks::BookmarkNode
* node
,
119 const GURL
& new_url
) WARN_UNUSED_RESULT
;
121 // Moves the node |node| in the bookmark model of profile |profile| so it ends
122 // up under the node |new_parent| at position |index|.
123 void Move(int profile
,
124 const bookmarks::BookmarkNode
* node
,
125 const bookmarks::BookmarkNode
* new_parent
,
128 // Removes the node in the bookmark model of profile |profile| under the node
129 // |parent| at position |index|.
130 void Remove(int profile
, const bookmarks::BookmarkNode
* parent
, int index
);
132 // Removes all non-permanent nodes in the bookmark model of profile |profile|.
133 void RemoveAll(int profile
);
135 // Sorts the children of the node |parent| in the bookmark model of profile
137 void SortChildren(int profile
, const bookmarks::BookmarkNode
* parent
);
139 // Reverses the order of the children of the node |parent| in the bookmark
140 // model of profile |profile|.
141 void ReverseChildOrder(int profile
, const bookmarks::BookmarkNode
* parent
);
143 // Checks if the bookmark model of profile |profile| matches the verifier
144 // bookmark model. Returns true if they match.
145 bool ModelMatchesVerifier(int profile
) WARN_UNUSED_RESULT
;
147 // Checks if the bookmark models of all sync profiles match the verifier
148 // bookmark model. Returns true if they match.
149 bool AllModelsMatchVerifier() WARN_UNUSED_RESULT
;
151 // Checks if the bookmark models of |profile_a| and |profile_b| match each
152 // other. Returns true if they match.
153 bool ModelsMatch(int profile_a
, int profile_b
) WARN_UNUSED_RESULT
;
155 // Checks if the bookmark models of all sync profiles match each other. Does
156 // not compare them with the verifier bookmark model. Returns true if they
158 bool AllModelsMatch() WARN_UNUSED_RESULT
;
160 // Check if the bookmarks models of all sync profiles match each other, using
161 // AllModelsMatch. Returns true if bookmark models match and don't timeout
163 bool AwaitAllModelsMatch() WARN_UNUSED_RESULT
;
165 // Blocks the caller until the given |profile| contains |expected_count|
166 // bookmarks with |title| or until waiting times out.
167 bool AwaitCountBookmarksWithTitlesMatching(int profile
,
168 const std::string
& title
,
172 // Blocks the caller until the given |profile| contains |expected_count|
173 // bookmarks with |url| or until waiting times out.
174 bool AwaitCountBookmarksWithUrlsMatching(int profile
,
176 int expected_count
) WARN_UNUSED_RESULT
;
178 // Checks if the bookmark model of profile |profile| contains any instances of
179 // two bookmarks with the same URL under the same parent folder. Returns true
180 // if even one instance is found.
181 bool ContainsDuplicateBookmarks(int profile
);
183 // Returns whether a node exists with the specified url.
184 bool HasNodeWithURL(int profile
, const GURL
& url
);
186 // Gets the node in the bookmark model of profile |profile| that has the url
187 // |url|. Note: Only one instance of |url| is assumed to be present.
188 const bookmarks::BookmarkNode
* GetUniqueNodeByURL(int profile
, const GURL
& url
)
191 // Returns the number of bookmarks in bookmark model of profile |profile|.
192 int CountAllBookmarks(int profile
) WARN_UNUSED_RESULT
;
194 // Returns the number of bookmarks in bookmark model of profile |profile|
195 // whose titles match the string |title|.
196 int CountBookmarksWithTitlesMatching(
198 const std::string
& title
) WARN_UNUSED_RESULT
;
200 // Returns the number of bookmarks in bookmark model of profile |profile|
201 // whose URLs match the |url|.
202 int CountBookmarksWithUrlsMatching(int profile
,
203 const GURL
& url
) WARN_UNUSED_RESULT
;
205 // Returns the number of bookmark folders in the bookmark model of profile
206 // |profile| whose titles contain the query string |title|.
207 int CountFoldersWithTitlesMatching(
209 const std::string
& title
) WARN_UNUSED_RESULT
;
211 // Creates a favicon of |color| with image reps of the platform's supported
212 // scale factors (eg MacOS) in addition to 1x.
213 gfx::Image
CreateFavicon(SkColor color
);
215 // Creates a 1x only favicon from the PNG file at |path|.
216 gfx::Image
Create1xFaviconFromPNGFile(const std::string
& path
);
218 // Returns a URL identifiable by |i|.
219 std::string
IndexedURL(int i
);
221 // Returns a URL title identifiable by |i|.
222 std::string
IndexedURLTitle(int i
);
224 // Returns a folder name identifiable by |i|.
225 std::string
IndexedFolderName(int i
);
227 // Returns a subfolder name identifiable by |i|.
228 std::string
IndexedSubfolderName(int i
);
230 // Returns a subsubfolder name identifiable by |i|.
231 std::string
IndexedSubsubfolderName(int i
);
233 } // namespace bookmarks_helper
235 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_