Index: components/bookmarks/test/test_bookmark_client.cc |
diff --git a/components/bookmarks/test/test_bookmark_client.cc b/components/bookmarks/test/test_bookmark_client.cc |
index 6151032d9661bc01101eddbb60cf7a5d40791f24..ad6b6b652d1ec8f562aa34d15083033d17306183 100644 |
--- a/components/bookmarks/test/test_bookmark_client.cc |
+++ b/components/bookmarks/test/test_bookmark_client.cc |
@@ -4,6 +4,8 @@ |
#include "components/bookmarks/test/test_bookmark_client.h" |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
#include "base/logging.h" |
#include "components/bookmarks/browser/bookmark_model.h" |
#include "components/bookmarks/browser/bookmark_node.h" |
@@ -11,20 +13,81 @@ |
namespace test { |
+TestBookmarkClient::TestBookmarkClient() {} |
+ |
+TestBookmarkClient::~TestBookmarkClient() {} |
+ |
scoped_ptr<BookmarkModel> TestBookmarkClient::CreateModel(bool index_urls) { |
scoped_ptr<BookmarkModel> bookmark_model(new BookmarkModel(this, index_urls)); |
bookmark_model->DoneLoading(bookmark_model->CreateLoadDetails(std::string())); |
return bookmark_model.Pass(); |
} |
-bool TestBookmarkClient::IsPermanentNodeVisible(int node_type) { |
- DCHECK(node_type == BookmarkNode::BOOKMARK_BAR || |
- node_type == BookmarkNode::OTHER_NODE || |
- node_type == BookmarkNode::MOBILE); |
- return node_type != BookmarkNode::MOBILE; |
+void TestBookmarkClient::SetExtraNodesToLoad( |
+ bookmarks::BookmarkPermanentNodeList extra_nodes) { |
+ extra_nodes_to_load_ = extra_nodes.Pass(); |
+ // Keep a copy in |extra_nodes_| for the acessor. |
+ extra_nodes_ = extra_nodes_to_load_.get(); |
+} |
+ |
+bool TestBookmarkClient::IsExtraNodeRoot(const BookmarkNode* node) { |
+ for (size_t i = 0; i < extra_nodes_.size(); ++i) { |
+ if (node == extra_nodes_[i]) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+bool TestBookmarkClient::IsAnExtraNode(const BookmarkNode* node) { |
+ if (!node) |
+ return false; |
+ for (size_t i = 0; i < extra_nodes_.size(); ++i) { |
+ if (node->HasAncestor(extra_nodes_[i])) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+bool TestBookmarkClient::IsPermanentNodeVisible( |
+ const BookmarkPermanentNode* node) { |
+ DCHECK(node->type() == BookmarkNode::BOOKMARK_BAR || |
+ node->type() == BookmarkNode::OTHER_NODE || |
+ node->type() == BookmarkNode::MOBILE || |
+ IsExtraNodeRoot(node)); |
+ return node->type() != BookmarkNode::MOBILE && !IsExtraNodeRoot(node); |
} |
void TestBookmarkClient::RecordAction(const base::UserMetricsAction& action) { |
} |
+bookmarks::LoadExtraCallback TestBookmarkClient::GetLoadExtraNodesCallback() { |
+ return base::Bind(&TestBookmarkClient::LoadExtraNodes, |
+ base::Passed(&extra_nodes_to_load_)); |
+} |
+ |
+bool TestBookmarkClient::CanRemovePermanentNodeChildren( |
+ const BookmarkNode* node) { |
+ return !IsAnExtraNode(node); |
+} |
+ |
+bool TestBookmarkClient::CanSetPermanentNodeTitle( |
+ const BookmarkNode* permanent_node) { |
+ return IsExtraNodeRoot(permanent_node); |
+} |
+ |
+bool TestBookmarkClient::CanSyncNode(const BookmarkNode* node) { |
+ return !IsAnExtraNode(node); |
+} |
+ |
+bool TestBookmarkClient::CanReorderChildren(const BookmarkNode* parent) { |
+ return !IsAnExtraNode(parent); |
+} |
+ |
+// static |
+bookmarks::BookmarkPermanentNodeList TestBookmarkClient::LoadExtraNodes( |
+ bookmarks::BookmarkPermanentNodeList extra_nodes, |
+ int64* next_id) { |
+ return extra_nodes.Pass(); |
+} |
+ |
} // namespace test |