Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(262)

Side by Side Diff: chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc

Issue 308273002: Made the bookmarks extension APIs aware of managed bookmarks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h" 5 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
11 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
10 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" 12 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
11 #include "chrome/common/extensions/api/bookmarks.h" 13 #include "chrome/common/extensions/api/bookmarks.h"
14 #include "chrome/test/base/testing_profile.h"
12 #include "components/bookmarks/browser/bookmark_model.h" 15 #include "components/bookmarks/browser/bookmark_model.h"
13 #include "components/bookmarks/test/test_bookmark_client.h" 16 #include "components/bookmarks/test/bookmark_test_helpers.h"
17 #include "content/public/test/test_browser_thread_bundle.h"
14 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
15 19
16 namespace extensions { 20 namespace extensions {
17 21
18 namespace keys = bookmark_api_constants; 22 namespace keys = bookmark_api_constants;
19 using api::bookmarks::BookmarkTreeNode; 23 using api::bookmarks::BookmarkTreeNode;
20 24
21 namespace bookmark_api_helpers { 25 namespace bookmark_api_helpers {
22 26
23 class ExtensionBookmarksTest : public testing::Test { 27 class ExtensionBookmarksTest : public testing::Test {
24 public: 28 public:
29 ExtensionBookmarksTest() : client_(NULL), model_(NULL), folder_(NULL) {}
30
25 virtual void SetUp() OVERRIDE { 31 virtual void SetUp() OVERRIDE {
26 model_ = client_.CreateModel(false); 32 profile_.CreateBookmarkModel(false);
33 client_ =
34 BookmarkModelFactory::GetChromeBookmarkClientForProfile(&profile_);
35 model_ = client_->model();
36 test::WaitForBookmarkModelToLoad(model_);
37
27 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"), 38 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"),
28 GURL("http://www.reddit.com")); 39 GURL("http://www.reddit.com"));
29 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"), 40 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"),
30 GURL("http://www.foxnews.com")); 41 GURL("http://www.foxnews.com"));
31 folder_ = model_->AddFolder( 42 folder_ = model_->AddFolder(
32 model_->other_node(), 0, base::ASCIIToUTF16("outer folder")); 43 model_->other_node(), 0, base::ASCIIToUTF16("outer folder"));
33 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 1")); 44 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 1"));
34 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 2")); 45 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 2"));
35 model_->AddURL( 46 model_->AddURL(
36 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com")); 47 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com"));
37 model_->AddURL( 48 model_->AddURL(
38 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com")); 49 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com"));
39 } 50 }
40 51
41 test::TestBookmarkClient client_; 52 content::TestBrowserThreadBundle thread_bundle_;
42 scoped_ptr<BookmarkModel> model_; 53 TestingProfile profile_;
54 ChromeBookmarkClient* client_;
55 BookmarkModel* model_;
43 const BookmarkNode* folder_; 56 const BookmarkNode* folder_;
44 }; 57 };
58
45 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { 59 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) {
46 scoped_ptr<BookmarkTreeNode> tree( 60 scoped_ptr<BookmarkTreeNode> tree(
47 GetBookmarkTreeNode(model_->other_node(), 61 GetBookmarkTreeNode(model_->other_node(),
48 true, // Recurse. 62 true, // Recurse.
49 false)); // Not only folders. 63 false)); // Not only folders.
50 ASSERT_EQ(3U, tree->children->size()); 64 ASSERT_EQ(3U, tree->children->size());
51 } 65 }
52 66
53 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { 67 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) {
54 scoped_ptr<BookmarkTreeNode> tree( 68 scoped_ptr<BookmarkTreeNode> tree(
(...skipping 18 matching lines...) Expand all
73 scoped_ptr<BookmarkTreeNode> tree( 87 scoped_ptr<BookmarkTreeNode> tree(
74 GetBookmarkTreeNode(folder_, 88 GetBookmarkTreeNode(folder_,
75 true, // Recurse. 89 true, // Recurse.
76 true)); // Only folders. 90 true)); // Only folders.
77 ASSERT_EQ(2U, tree->children->size()); 91 ASSERT_EQ(2U, tree->children->size());
78 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1); 92 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1);
79 ASSERT_TRUE(inner_folder.get()); 93 ASSERT_TRUE(inner_folder.get());
80 ASSERT_EQ("inner folder 1", inner_folder->title); 94 ASSERT_EQ("inner folder 1", inner_folder->title);
81 } 95 }
82 96
97 TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) {
98 int64 invalid_id = model_->next_node_id();
99 std::string error;
100 EXPECT_FALSE(RemoveNode(client_, invalid_id, true, &error));
101 EXPECT_EQ(keys::kNoNodeError, error);
102 }
103
104 TEST_F(ExtensionBookmarksTest, RemoveNodePermanent) {
105 std::string error;
106 EXPECT_FALSE(RemoveNode(client_, model_->other_node()->id(), true, &error));
107 EXPECT_EQ(keys::kModifySpecialError, error);
108 }
109
110 TEST_F(ExtensionBookmarksTest, RemoveNodeManaged) {
111 const BookmarkNode* managed_bookmark =
112 model_->AddURL(client_->managed_node(),
113 0,
114 base::ASCIIToUTF16("Chromium"),
115 GURL("http://www.chromium.org"));
116 std::string error;
117 EXPECT_FALSE(RemoveNode(client_, managed_bookmark->id(), true, &error));
118 EXPECT_EQ(keys::kModifyManagedError, error);
119 }
120
121 TEST_F(ExtensionBookmarksTest, RemoveNodeNotRecursive) {
122 std::string error;
123 EXPECT_FALSE(RemoveNode(client_, folder_->id(), false, &error));
124 EXPECT_EQ(keys::kFolderNotEmptyError, error);
125 }
126
127 TEST_F(ExtensionBookmarksTest, RemoveNodeRecursive) {
128 EXPECT_EQ(3, model_->other_node()->child_count());
129 std::string error;
130 EXPECT_TRUE(RemoveNode(client_, folder_->id(), true, &error));
131 EXPECT_EQ(2, model_->other_node()->child_count());
132 }
133
83 } // namespace bookmark_api_helpers 134 } // namespace bookmark_api_helpers
84 } // namespace extensions 135 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698