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