Home | History | Annotate | Download | only in test
      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 test {
     15 
     16 TestBookmarkClient::TestBookmarkClient() {}
     17 
     18 TestBookmarkClient::~TestBookmarkClient() {}
     19 
     20 scoped_ptr<BookmarkModel> TestBookmarkClient::CreateModel(bool index_urls) {
     21   scoped_ptr<BookmarkModel> bookmark_model(new BookmarkModel(this, index_urls));
     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 
     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 
     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 
     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 
     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 
     63 void TestBookmarkClient::RecordAction(const base::UserMetricsAction& action) {
     64 }
     65 
     66 bookmarks::LoadExtraCallback TestBookmarkClient::GetLoadExtraNodesCallback() {
     67   return base::Bind(&TestBookmarkClient::LoadExtraNodes,
     68                     base::Passed(&extra_nodes_to_load_));
     69 }
     70 
     71 bool TestBookmarkClient::CanSetPermanentNodeTitle(
     72     const BookmarkNode* permanent_node) {
     73   return IsExtraNodeRoot(permanent_node);
     74 }
     75 
     76 bool TestBookmarkClient::CanSyncNode(const BookmarkNode* node) {
     77   return !IsAnExtraNode(node);
     78 }
     79 
     80 bool TestBookmarkClient::CanBeEditedByUser(const BookmarkNode* node) {
     81   return !IsAnExtraNode(node);
     82 }
     83 
     84 // static
     85 bookmarks::BookmarkPermanentNodeList TestBookmarkClient::LoadExtraNodes(
     86     bookmarks::BookmarkPermanentNodeList extra_nodes,
     87     int64* next_id) {
     88   return extra_nodes.Pass();
     89 }
     90 
     91 }  // namespace test
     92