• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 #include "components/bookmarks/test/test_bookmark_client.h"
6 
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "base/logging.h"
10 #include "components/bookmarks/browser/bookmark_model.h"
11 #include "components/bookmarks/browser/bookmark_node.h"
12 #include "components/bookmarks/browser/bookmark_storage.h"
13 
14 namespace bookmarks {
15 
TestBookmarkClient()16 TestBookmarkClient::TestBookmarkClient() {}
17 
~TestBookmarkClient()18 TestBookmarkClient::~TestBookmarkClient() {}
19 
CreateModel()20 scoped_ptr<BookmarkModel> TestBookmarkClient::CreateModel() {
21   scoped_ptr<BookmarkModel> bookmark_model(new BookmarkModel(this));
22   scoped_ptr<bookmarks::BookmarkLoadDetails> details =
23       bookmark_model->CreateLoadDetails(std::string());
24   details->LoadExtraNodes();
25   bookmark_model->DoneLoading(details.Pass());
26   return bookmark_model.Pass();
27 }
28 
SetExtraNodesToLoad(bookmarks::BookmarkPermanentNodeList extra_nodes)29 void TestBookmarkClient::SetExtraNodesToLoad(
30     bookmarks::BookmarkPermanentNodeList extra_nodes) {
31   extra_nodes_to_load_ = extra_nodes.Pass();
32   // Keep a copy in |extra_nodes_| for the acessor.
33   extra_nodes_ = extra_nodes_to_load_.get();
34 }
35 
IsExtraNodeRoot(const BookmarkNode * node)36 bool TestBookmarkClient::IsExtraNodeRoot(const BookmarkNode* node) {
37   for (size_t i = 0; i < extra_nodes_.size(); ++i) {
38     if (node == extra_nodes_[i])
39       return true;
40   }
41   return false;
42 }
43 
IsAnExtraNode(const BookmarkNode * node)44 bool TestBookmarkClient::IsAnExtraNode(const BookmarkNode* node) {
45   if (!node)
46     return false;
47   for (size_t i = 0; i < extra_nodes_.size(); ++i) {
48     if (node->HasAncestor(extra_nodes_[i]))
49       return true;
50   }
51   return false;
52 }
53 
IsPermanentNodeVisible(const BookmarkPermanentNode * node)54 bool TestBookmarkClient::IsPermanentNodeVisible(
55     const BookmarkPermanentNode* node) {
56   DCHECK(node->type() == BookmarkNode::BOOKMARK_BAR ||
57          node->type() == BookmarkNode::OTHER_NODE ||
58          node->type() == BookmarkNode::MOBILE ||
59          IsExtraNodeRoot(node));
60   return node->type() != BookmarkNode::MOBILE && !IsExtraNodeRoot(node);
61 }
62 
RecordAction(const base::UserMetricsAction & action)63 void TestBookmarkClient::RecordAction(const base::UserMetricsAction& action) {
64 }
65 
GetLoadExtraNodesCallback()66 bookmarks::LoadExtraCallback TestBookmarkClient::GetLoadExtraNodesCallback() {
67   return base::Bind(&TestBookmarkClient::LoadExtraNodes,
68                     base::Passed(&extra_nodes_to_load_));
69 }
70 
CanSetPermanentNodeTitle(const BookmarkNode * permanent_node)71 bool TestBookmarkClient::CanSetPermanentNodeTitle(
72     const BookmarkNode* permanent_node) {
73   return IsExtraNodeRoot(permanent_node);
74 }
75 
CanSyncNode(const BookmarkNode * node)76 bool TestBookmarkClient::CanSyncNode(const BookmarkNode* node) {
77   return !IsAnExtraNode(node);
78 }
79 
CanBeEditedByUser(const BookmarkNode * node)80 bool TestBookmarkClient::CanBeEditedByUser(const BookmarkNode* node) {
81   return !IsAnExtraNode(node);
82 }
83 
84 // static
LoadExtraNodes(bookmarks::BookmarkPermanentNodeList extra_nodes,int64 * next_id)85 bookmarks::BookmarkPermanentNodeList TestBookmarkClient::LoadExtraNodes(
86     bookmarks::BookmarkPermanentNodeList extra_nodes,
87     int64* next_id) {
88   return extra_nodes.Pass();
89 }
90 
91 }  // namespace bookmarks
92