• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_
6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_
7 
8 #include <set>
9 #include <string>
10 #include <vector>
11 
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"
16 #include "url/gurl.h"
17 
18 class GURL;
19 
20 namespace bookmarks_helper {
21 
22 // Used to access the bookmark model within a particular sync profile.
23 BookmarkModel* GetBookmarkModel(int index) WARN_UNUSED_RESULT;
24 
25 // Used to access the bookmark bar within a particular sync profile.
26 const BookmarkNode* GetBookmarkBarNode(int index) WARN_UNUSED_RESULT;
27 
28 // Used to access the "other bookmarks" node within a particular sync profile.
29 const BookmarkNode* GetOtherNode(int index) WARN_UNUSED_RESULT;
30 
31 // Used to access the "Synced Bookmarks" node within a particular sync profile.
32 const BookmarkNode* GetSyncedBookmarksNode(int index) WARN_UNUSED_RESULT;
33 
34 // Used to access the bookmarks within the verifier sync profile.
35 BookmarkModel* GetVerifierBookmarkModel() WARN_UNUSED_RESULT;
36 
37 // Adds a URL with address |url| and title |title| to the bookmark bar of
38 // profile |profile|. Returns a pointer to the node that was added.
39 const BookmarkNode* AddURL(
40     int profile,
41     const std::string& title,
42     const GURL& url) WARN_UNUSED_RESULT;
43 
44 // Adds a URL with address |url| and title |title| to the bookmark bar of
45 // profile |profile| at position |index|. Returns a pointer to the node that
46 // was added.
47 const BookmarkNode* AddURL(
48     int profile,
49     int index,
50     const std::string& title,
51     const GURL& url) WARN_UNUSED_RESULT;
52 
53 // Adds a URL with address |url| and title |title| under the node |parent| of
54 // profile |profile| at position |index|. Returns a pointer to the node that
55 // was added.
56 const BookmarkNode* AddURL(
57     int profile,
58     const BookmarkNode* parent,
59     int index,
60     const std::string& title,
61     const GURL& url) WARN_UNUSED_RESULT;
62 
63 // Adds a folder named |title| to the bookmark bar of profile |profile|.
64 // Returns a pointer to the folder that was added.
65 const BookmarkNode* AddFolder(
66     int profile,
67     const std::string& title) WARN_UNUSED_RESULT;
68 
69 // Adds a folder named |title| to the bookmark bar of profile |profile| at
70 // position |index|. Returns a pointer to the folder that was added.
71 const BookmarkNode* AddFolder(
72     int profile,
73     int index,
74     const std::string& title) WARN_UNUSED_RESULT;
75 
76 // Adds a folder named |title| to the node |parent| in the bookmark model of
77 // profile |profile| at position |index|. Returns a pointer to the node that
78 // was added.
79 const BookmarkNode* AddFolder(
80     int profile,
81     const BookmarkNode* parent,
82     int index,
83     const std::string& title) WARN_UNUSED_RESULT;
84 
85 // Changes the title of the node |node| in the bookmark model of profile
86 // |profile| to |new_title|.
87 void SetTitle(int profile,
88                      const BookmarkNode* node,
89                      const std::string& new_title);
90 
91 // The source of the favicon.
92 enum FaviconSource {
93   FROM_UI,
94   FROM_SYNC
95 };
96 
97 // Sets the |icon_url| and |image| data for the favicon for |node| in the
98 // bookmark model for |profile|.
99 void SetFavicon(int profile,
100                 const BookmarkNode* node,
101                 const GURL& icon_url,
102                 const gfx::Image& image,
103                 FaviconSource source);
104 
105 // Changes the url of the node |node| in the bookmark model of profile
106 // |profile| to |new_url|. Returns a pointer to the node with the changed url.
107 const BookmarkNode* SetURL(
108     int profile,
109     const BookmarkNode* node,
110     const GURL& new_url) WARN_UNUSED_RESULT;
111 
112 // Moves the node |node| in the bookmark model of profile |profile| so it ends
113 // up under the node |new_parent| at position |index|.
114 void Move(
115     int profile,
116     const BookmarkNode* node,
117     const BookmarkNode* new_parent,
118     int index);
119 
120 // Removes the node in the bookmark model of profile |profile| under the node
121 // |parent| at position |index|.
122 void Remove(int profile, const BookmarkNode* parent, int index);
123 
124 // Removes all non-permanent nodes in the bookmark model of profile |profile|.
125 void RemoveAll(int profile);
126 
127 // Sorts the children of the node |parent| in the bookmark model of profile
128 // |profile|.
129 void SortChildren(int profile, const BookmarkNode* parent);
130 
131 // Reverses the order of the children of the node |parent| in the bookmark
132 // model of profile |profile|.
133 void ReverseChildOrder(int profile, const BookmarkNode* parent);
134 
135 // Checks if the bookmark model of profile |profile| matches the verifier
136 // bookmark model. Returns true if they match.
137 bool ModelMatchesVerifier(int profile) WARN_UNUSED_RESULT;
138 
139 // Checks if the bookmark models of all sync profiles match the verifier
140 // bookmark model. Returns true if they match.
141 bool AllModelsMatchVerifier() WARN_UNUSED_RESULT;
142 
143 // Checks if the bookmark models of |profile_a| and |profile_b| match each
144 // other. Returns true if they match.
145 bool ModelsMatch(int profile_a, int profile_b) WARN_UNUSED_RESULT;
146 
147 // Checks if the bookmark models of all sync profiles match each other. Does
148 // not compare them with the verifier bookmark model. Returns true if they
149 // match.
150 bool AllModelsMatch() WARN_UNUSED_RESULT;
151 
152 // Check if the bookmarks models of all sync profiles match each other, using
153 // AllModelsMatch. Returns true if bookmark models match and don't timeout
154 // while checking.
155 bool AwaitAllModelsMatch() WARN_UNUSED_RESULT;
156 
157 // Checks if the bookmark model of profile |profile| contains any instances of
158 // two bookmarks with the same URL under the same parent folder. Returns true
159 // if even one instance is found.
160 bool ContainsDuplicateBookmarks(int profile);
161 
162 // Returns whether a node exists with the specified url.
163 bool HasNodeWithURL(int profile, const GURL& url);
164 
165 // Gets the node in the bookmark model of profile |profile| that has the url
166 // |url|. Note: Only one instance of |url| is assumed to be present.
167 const BookmarkNode* GetUniqueNodeByURL(
168     int profile,
169     const GURL& url) WARN_UNUSED_RESULT;
170 
171 // Returns the number of bookmarks in bookmark model of profile |profile|
172 // whose titles match the string |title|.
173 int CountBookmarksWithTitlesMatching(
174     int profile,
175     const std::string& title) WARN_UNUSED_RESULT;
176 
177 // Returns the number of bookmark folders in the bookmark model of profile
178 // |profile| whose titles contain the query string |title|.
179 int CountFoldersWithTitlesMatching(
180     int profile,
181     const std::string& title) WARN_UNUSED_RESULT;
182 
183 // Creates a favicon of |color| with image reps of the platform's supported
184 // scale factors (eg MacOS) in addition to 1x.
185 gfx::Image CreateFavicon(SkColor color);
186 
187 // Creates a 1x only favicon from the PNG file at |path|.
188 gfx::Image Create1xFaviconFromPNGFile(const std::string& path);
189 
190 // Returns a URL identifiable by |i|.
191 std::string IndexedURL(int i);
192 
193 // Returns a URL title identifiable by |i|.
194 std::string IndexedURLTitle(int i);
195 
196 // Returns a folder name identifiable by |i|.
197 std::string IndexedFolderName(int i);
198 
199 // Returns a subfolder name identifiable by |i|.
200 std::string IndexedSubfolderName(int i);
201 
202 // Returns a subsubfolder name identifiable by |i|.
203 std::string IndexedSubsubfolderName(int i);
204 
205 }  // namespace bookmarks_helper
206 
207 #endif  // CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_
208