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 11class BookmarkModel; 12 13namespace bookmarks { 14 15class 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(). 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