Index: chrome/browser/sync/test/integration/bookmarks_helper.cc |
diff --git a/chrome/browser/sync/test/integration/bookmarks_helper.cc b/chrome/browser/sync/test/integration/bookmarks_helper.cc |
index 1e665d6cde93e3f0bbf553d85002afc50994c56e..3e2745a72f01256d38f2a035a8c92c99a2007af7 100644 |
--- a/chrome/browser/sync/test/integration/bookmarks_helper.cc |
+++ b/chrome/browser/sync/test/integration/bookmarks_helper.cc |
@@ -18,6 +18,7 @@ |
#include "chrome/browser/bookmarks/bookmark_model_factory.h" |
#include "chrome/browser/bookmarks/chrome_bookmark_client.h" |
#include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h" |
+#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/favicon/favicon_service.h" |
#include "chrome/browser/favicon/favicon_service_factory.h" |
#include "chrome/browser/history/history_db_task.h" |
@@ -36,6 +37,7 @@ |
#include "components/bookmarks/browser/bookmark_utils.h" |
#include "components/favicon_base/favicon_util.h" |
#include "components/history/core/browser/history_types.h" |
+#include "content/public/browser/notification_service.h" |
#include "content/public/test/test_utils.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -150,6 +152,20 @@ int CountNodesWithTitlesMatching(BookmarkModel* model, |
return count; |
} |
+// Returns the number of nodes of node type |node_type| in |model|. |
+int CountNodes(BookmarkModel* model, BookmarkNode::Type node_type) { |
+ ui::TreeNodeIterator<const BookmarkNode> iterator(model->root_node()); |
+ // Walk through the model tree looking for bookmark nodes of node type |
+ // |node_type|. |
+ int count = 0; |
+ while (iterator.has_next()) { |
+ const BookmarkNode* node = iterator.Next(); |
+ if (node->type() == node_type) |
+ ++count; |
+ } |
+ return count; |
+} |
+ |
// Checks if the favicon data in |bitmap_a| and |bitmap_b| are equivalent. |
// Returns true if they match. |
bool FaviconRawBitmapsMatch(const SkBitmap& bitmap_a, |
@@ -654,6 +670,21 @@ void ReverseChildOrder(int profile, const BookmarkNode* parent) { |
} |
} |
+void NotifyBookmarksSync(int profile) { |
+ const syncer::ModelTypeSet types(syncer::BOOKMARKS); |
+ content::NotificationService::current()->Notify( |
+ chrome::NOTIFICATION_SYNC_REFRESH_LOCAL, |
+ content::Source<Profile>( |
+ sync_datatype_helper::test()->GetProfile(profile)), |
+ content::Details<const syncer::ModelTypeSet>(&types)); |
+} |
+ |
+void NotifyBookmarksSyncToAllProfiles() { |
+ for (int i = 0; i < sync_datatype_helper::test()->num_clients(); ++i) { |
+ NotifyBookmarksSync(i); |
+ } |
+} |
+ |
bool ModelMatchesVerifier(int profile) { |
if (!sync_datatype_helper::test()->use_verifier()) { |
LOG(ERROR) << "Illegal to call ModelMatchesVerifier() after " |
@@ -771,6 +802,10 @@ const BookmarkNode* GetUniqueNodeByURL(int profile, const GURL& url) { |
return nodes[0]; |
} |
+int CountAllBookmarks(int profile) { |
+ return CountNodes(GetBookmarkModel(profile), BookmarkNode::URL); |
+} |
+ |
int CountBookmarksWithTitlesMatching(int profile, const std::string& title) { |
return CountNodesWithTitlesMatching(GetBookmarkModel(profile), |
BookmarkNode::URL, |