Chromium Code Reviews| 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) { |
|
pval...(no longer on Chromium)
2014/12/09 18:44:08
Did you investigate using P2P invalidations instea
shadi
2014/12/10 18:10:10
Yes, I looked into it; an observer_list destructor
pval...(no longer on Chromium)
2014/12/11 19:24:52
Thanks for the explanation here; it's very useful
shadi
2014/12/17 22:50:16
Done.
|
| + 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, |