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_
12 #include "base/compiler_specific.h"
13 #include "components/bookmarks/browser/bookmark_model.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/skia/include/core/SkBitmap.h"
20 namespace bookmarks_helper
{
22 // Used to access the bookmark model within a particular sync profile.
23 BookmarkModel
* GetBookmarkModel(int index
) WARN_UNUSED_RESULT
;
25 // Used to access the bookmark bar within a particular sync profile.
26 const BookmarkNode
* GetBookmarkBarNode(int index
) WARN_UNUSED_RESULT
;
28 // Used to access the "other bookmarks" node within a particular sync profile.
29 const BookmarkNode
* GetOtherNode(int index
) WARN_UNUSED_RESULT
;
31 // Used to access the "Synced Bookmarks" node within a particular sync profile.
32 const BookmarkNode
* GetSyncedBookmarksNode(int index
) WARN_UNUSED_RESULT
;
34 // Used to access the "Managed Bookmarks" node for the given profile.
35 const BookmarkNode
* GetManagedNode(int index
) WARN_UNUSED_RESULT
;
37 // Used to access the bookmarks within the verifier sync profile.
38 BookmarkModel
* GetVerifierBookmarkModel() WARN_UNUSED_RESULT
;
40 // Adds a URL with address |url| and title |title| to the bookmark bar of
41 // profile |profile|. Returns a pointer to the node that was added.
42 const BookmarkNode
* AddURL(
44 const std::string
& title
,
45 const GURL
& url
) WARN_UNUSED_RESULT
;
47 // Adds a URL with address |url| and title |title| to the bookmark bar of
48 // profile |profile| at position |index|. Returns a pointer to the node that
50 const BookmarkNode
* AddURL(
53 const std::string
& title
,
54 const GURL
& url
) WARN_UNUSED_RESULT
;
56 // Adds a URL with address |url| and title |title| under the node |parent| of
57 // profile |profile| at position |index|. Returns a pointer to the node that
59 const BookmarkNode
* AddURL(
61 const BookmarkNode
* parent
,
63 const std::string
& title
,
64 const GURL
& url
) WARN_UNUSED_RESULT
;
66 // Adds a folder named |title| to the bookmark bar of profile |profile|.
67 // Returns a pointer to the folder that was added.
68 const BookmarkNode
* AddFolder(
70 const std::string
& title
) WARN_UNUSED_RESULT
;
72 // Adds a folder named |title| to the bookmark bar of profile |profile| at
73 // position |index|. Returns a pointer to the folder that was added.
74 const BookmarkNode
* AddFolder(
77 const std::string
& title
) WARN_UNUSED_RESULT
;
79 // Adds a folder named |title| to the node |parent| in the bookmark model of
80 // profile |profile| at position |index|. Returns a pointer to the node that
82 const BookmarkNode
* AddFolder(
84 const BookmarkNode
* parent
,
86 const std::string
& title
) WARN_UNUSED_RESULT
;
88 // Changes the title of the node |node| in the bookmark model of profile
89 // |profile| to |new_title|.
90 void SetTitle(int profile
,
91 const BookmarkNode
* node
,
92 const std::string
& new_title
);
94 // The source of the favicon.
100 // Sets the |icon_url| and |image| data for the favicon for |node| in the
101 // bookmark model for |profile|.
102 void SetFavicon(int profile
,
103 const BookmarkNode
* node
,
104 const GURL
& icon_url
,
105 const gfx::Image
& image
,
106 FaviconSource source
);
108 // Changes the url of the node |node| in the bookmark model of profile
109 // |profile| to |new_url|. Returns a pointer to the node with the changed url.
110 const BookmarkNode
* SetURL(
112 const BookmarkNode
* node
,
113 const GURL
& new_url
) WARN_UNUSED_RESULT
;
115 // Moves the node |node| in the bookmark model of profile |profile| so it ends
116 // up under the node |new_parent| at position |index|.
119 const BookmarkNode
* node
,
120 const BookmarkNode
* new_parent
,
123 // Removes the node in the bookmark model of profile |profile| under the node
124 // |parent| at position |index|.
125 void Remove(int profile
, const BookmarkNode
* parent
, int index
);
127 // Removes all non-permanent nodes in the bookmark model of profile |profile|.
128 void RemoveAll(int profile
);
130 // Sorts the children of the node |parent| in the bookmark model of profile
132 void SortChildren(int profile
, const BookmarkNode
* parent
);
134 // Reverses the order of the children of the node |parent| in the bookmark
135 // model of profile |profile|.
136 void ReverseChildOrder(int profile
, const BookmarkNode
* parent
);
138 // Checks if the bookmark model of profile |profile| matches the verifier
139 // bookmark model. Returns true if they match.
140 bool ModelMatchesVerifier(int profile
) WARN_UNUSED_RESULT
;
142 // Checks if the bookmark models of all sync profiles match the verifier
143 // bookmark model. Returns true if they match.
144 bool AllModelsMatchVerifier() WARN_UNUSED_RESULT
;
146 // Checks if the bookmark models of |profile_a| and |profile_b| match each
147 // other. Returns true if they match.
148 bool ModelsMatch(int profile_a
, int profile_b
) WARN_UNUSED_RESULT
;
150 // Checks if the bookmark models of all sync profiles match each other. Does
151 // not compare them with the verifier bookmark model. Returns true if they
153 bool AllModelsMatch() WARN_UNUSED_RESULT
;
155 // Check if the bookmarks models of all sync profiles match each other, using
156 // AllModelsMatch. Returns true if bookmark models match and don't timeout
158 bool AwaitAllModelsMatch() WARN_UNUSED_RESULT
;
160 // Checks if the bookmark model of profile |profile| contains any instances of
161 // two bookmarks with the same URL under the same parent folder. Returns true
162 // if even one instance is found.
163 bool ContainsDuplicateBookmarks(int profile
);
165 // Returns whether a node exists with the specified url.
166 bool HasNodeWithURL(int profile
, const GURL
& url
);
168 // Gets the node in the bookmark model of profile |profile| that has the url
169 // |url|. Note: Only one instance of |url| is assumed to be present.
170 const BookmarkNode
* GetUniqueNodeByURL(
172 const GURL
& url
) WARN_UNUSED_RESULT
;
174 // Returns the number of bookmarks in bookmark model of profile |profile|
175 // whose titles match the string |title|.
176 int CountBookmarksWithTitlesMatching(
178 const std::string
& title
) WARN_UNUSED_RESULT
;
180 // Returns the number of bookmark folders in the bookmark model of profile
181 // |profile| whose titles contain the query string |title|.
182 int CountFoldersWithTitlesMatching(
184 const std::string
& title
) WARN_UNUSED_RESULT
;
186 // Creates a favicon of |color| with image reps of the platform's supported
187 // scale factors (eg MacOS) in addition to 1x.
188 gfx::Image
CreateFavicon(SkColor color
);
190 // Creates a 1x only favicon from the PNG file at |path|.
191 gfx::Image
Create1xFaviconFromPNGFile(const std::string
& path
);
193 // Returns a URL identifiable by |i|.
194 std::string
IndexedURL(int i
);
196 // Returns a URL title identifiable by |i|.
197 std::string
IndexedURLTitle(int i
);
199 // Returns a folder name identifiable by |i|.
200 std::string
IndexedFolderName(int i
);
202 // Returns a subfolder name identifiable by |i|.
203 std::string
IndexedSubfolderName(int i
);
205 // Returns a subsubfolder name identifiable by |i|.
206 std::string
IndexedSubsubfolderName(int i
);
208 } // namespace bookmarks_helper
210 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_