• 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 #ifndef COMPONENTS_BOOKMARKS_TEST_TEST_BOOKMARK_CLIENT_H_
6 #define COMPONENTS_BOOKMARKS_TEST_TEST_BOOKMARK_CLIENT_H_
7 
8 #include "base/memory/scoped_ptr.h"
9 #include "components/bookmarks/browser/bookmark_client.h"
10 
11 class BookmarkModel;
12 
13 namespace bookmarks {
14 
15 class TestBookmarkClient : public BookmarkClient {
16  public:
17   TestBookmarkClient();
18   virtual ~TestBookmarkClient();
19 
20   // Create a BookmarkModel using this object as its client. The returned
21   // BookmarkModel* is owned by the caller.
22   scoped_ptr<BookmarkModel> CreateModel();
23 
24   // Sets the list of extra nodes to be returned by the next call to
25   // CreateModel() or GetLoadExtraNodesCallback().
26   void SetExtraNodesToLoad(BookmarkPermanentNodeList extra_nodes);
27 
28   // Returns the current extra_nodes, set via SetExtraNodesToLoad().
extra_nodes()29   const std::vector<BookmarkPermanentNode*>& extra_nodes() {
30     return extra_nodes_;
31   }
32 
33   // Returns true if |node| is one of the |extra_nodes_|.
34   bool IsExtraNodeRoot(const BookmarkNode* node);
35 
36   // Returns true if |node| belongs to the tree of one of the |extra_nodes_|.
37   bool IsAnExtraNode(const BookmarkNode* node);
38 
39  private:
40   // BookmarkClient:
41   virtual bool IsPermanentNodeVisible(
42       const BookmarkPermanentNode* node) OVERRIDE;
43   virtual void RecordAction(const base::UserMetricsAction& action) OVERRIDE;
44   virtual LoadExtraCallback GetLoadExtraNodesCallback() OVERRIDE;
45   virtual bool CanSetPermanentNodeTitle(
46       const BookmarkNode* permanent_node) OVERRIDE;
47   virtual bool CanSyncNode(const BookmarkNode* node) OVERRIDE;
48   virtual bool CanBeEditedByUser(const BookmarkNode* node) OVERRIDE;
49 
50   // Helpers for GetLoadExtraNodesCallback().
51   static BookmarkPermanentNodeList LoadExtraNodes(
52       BookmarkPermanentNodeList extra_nodes,
53       int64* next_id);
54 
55   BookmarkPermanentNodeList extra_nodes_to_load_;
56   std::vector<BookmarkPermanentNode*> extra_nodes_;
57 
58   DISALLOW_COPY_AND_ASSIGN(TestBookmarkClient);
59 };
60 
61 }  // namespace bookmarks
62 
63 #endif  // COMPONENTS_BOOKMARKS_TEST_TEST_BOOKMARK_CLIENT_H_
64