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

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

Issue 320473002: Added the "unmodifiable" property to chrome.bookmarks.BookmarkTreeNode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebaes 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" 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
11 #include "chrome/browser/bookmarks/chrome_bookmark_client.h" 11 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
12 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" 12 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
13 #include "chrome/common/extensions/api/bookmarks.h" 13 #include "chrome/common/extensions/api/bookmarks.h"
14 #include "chrome/test/base/testing_profile.h" 14 #include "chrome/test/base/testing_profile.h"
15 #include "components/bookmarks/browser/bookmark_model.h" 15 #include "components/bookmarks/browser/bookmark_model.h"
16 #include "components/bookmarks/test/bookmark_test_helpers.h" 16 #include "components/bookmarks/test/bookmark_test_helpers.h"
17 #include "content/public/test/test_browser_thread_bundle.h" 17 #include "content/public/test/test_browser_thread_bundle.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace extensions { 20 namespace extensions {
21 21
22 namespace keys = bookmark_api_constants; 22 namespace keys = bookmark_api_constants;
23 using api::bookmarks::BookmarkTreeNode; 23 using api::bookmarks::BookmarkTreeNode;
24 24
25 namespace bookmark_api_helpers { 25 namespace bookmark_api_helpers {
26 26
27 class ExtensionBookmarksTest : public testing::Test { 27 class ExtensionBookmarksTest : public testing::Test {
28 public: 28 public:
29 ExtensionBookmarksTest() : client_(NULL), model_(NULL), folder_(NULL) {} 29 ExtensionBookmarksTest()
30 : client_(NULL), model_(NULL), node_(NULL), folder_(NULL) {}
30 31
31 virtual void SetUp() OVERRIDE { 32 virtual void SetUp() OVERRIDE {
32 profile_.CreateBookmarkModel(false); 33 profile_.CreateBookmarkModel(false);
33 client_ = 34 client_ =
34 BookmarkModelFactory::GetChromeBookmarkClientForProfile(&profile_); 35 BookmarkModelFactory::GetChromeBookmarkClientForProfile(&profile_);
35 model_ = client_->model(); 36 model_ = client_->model();
36 test::WaitForBookmarkModelToLoad(model_); 37 test::WaitForBookmarkModelToLoad(model_);
37 38
38 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"), 39 node_ = model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"),
39 GURL("http://www.reddit.com")); 40 GURL("http://www.reddit.com"));
40 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"), 41 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"),
41 GURL("http://www.foxnews.com")); 42 GURL("http://www.foxnews.com"));
42 folder_ = model_->AddFolder( 43 folder_ = model_->AddFolder(
43 model_->other_node(), 0, base::ASCIIToUTF16("outer folder")); 44 model_->other_node(), 0, base::ASCIIToUTF16("outer folder"));
44 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 1")); 45 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 1"));
45 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 2")); 46 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 2"));
46 model_->AddURL( 47 model_->AddURL(
47 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com")); 48 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com"));
48 model_->AddURL( 49 model_->AddURL(
49 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com")); 50 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com"));
50 } 51 }
51 52
52 content::TestBrowserThreadBundle thread_bundle_; 53 content::TestBrowserThreadBundle thread_bundle_;
53 TestingProfile profile_; 54 TestingProfile profile_;
54 ChromeBookmarkClient* client_; 55 ChromeBookmarkClient* client_;
55 BookmarkModel* model_; 56 BookmarkModel* model_;
57 const BookmarkNode* node_;
56 const BookmarkNode* folder_; 58 const BookmarkNode* folder_;
57 }; 59 };
58 60
59 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { 61 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) {
60 scoped_ptr<BookmarkTreeNode> tree( 62 scoped_ptr<BookmarkTreeNode> tree(
61 GetBookmarkTreeNode(model_->other_node(), 63 GetBookmarkTreeNode(client_,
64 model_->other_node(),
62 true, // Recurse. 65 true, // Recurse.
63 false)); // Not only folders. 66 false)); // Not only folders.
64 ASSERT_EQ(3U, tree->children->size()); 67 ASSERT_EQ(3U, tree->children->size());
65 } 68 }
66 69
67 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { 70 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) {
68 scoped_ptr<BookmarkTreeNode> tree( 71 scoped_ptr<BookmarkTreeNode> tree(
69 GetBookmarkTreeNode(model_->other_node(), 72 GetBookmarkTreeNode(client_,
73 model_->other_node(),
70 true, // Recurse. 74 true, // Recurse.
71 true)); // Only folders. 75 true)); // Only folders.
72 ASSERT_EQ(1U, tree->children->size()); 76 ASSERT_EQ(1U, tree->children->size());
73 } 77 }
74 78
75 TEST_F(ExtensionBookmarksTest, GetSubtree) { 79 TEST_F(ExtensionBookmarksTest, GetSubtree) {
76 scoped_ptr<BookmarkTreeNode> tree( 80 scoped_ptr<BookmarkTreeNode> tree(
77 GetBookmarkTreeNode(folder_, 81 GetBookmarkTreeNode(client_,
82 folder_,
78 true, // Recurse. 83 true, // Recurse.
79 false)); // Not only folders. 84 false)); // Not only folders.
80 ASSERT_EQ(4U, tree->children->size()); 85 ASSERT_EQ(4U, tree->children->size());
81 linked_ptr<BookmarkTreeNode> digg = tree->children->at(1); 86 linked_ptr<BookmarkTreeNode> digg = tree->children->at(1);
82 ASSERT_TRUE(digg.get()); 87 ASSERT_TRUE(digg.get());
83 ASSERT_EQ("Digg", digg->title); 88 ASSERT_EQ("Digg", digg->title);
84 } 89 }
85 90
86 TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) { 91 TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) {
87 scoped_ptr<BookmarkTreeNode> tree( 92 scoped_ptr<BookmarkTreeNode> tree(
88 GetBookmarkTreeNode(folder_, 93 GetBookmarkTreeNode(client_,
94 folder_,
89 true, // Recurse. 95 true, // Recurse.
90 true)); // Only folders. 96 true)); // Only folders.
91 ASSERT_EQ(2U, tree->children->size()); 97 ASSERT_EQ(2U, tree->children->size());
92 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1); 98 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1);
93 ASSERT_TRUE(inner_folder.get()); 99 ASSERT_TRUE(inner_folder.get());
94 ASSERT_EQ("inner folder 1", inner_folder->title); 100 ASSERT_EQ("inner folder 1", inner_folder->title);
95 } 101 }
96 102
103 TEST_F(ExtensionBookmarksTest, GetModifiableNode) {
104 scoped_ptr<BookmarkTreeNode> tree(
105 GetBookmarkTreeNode(client_,
106 node_,
107 false, // Recurse.
108 false)); // Only folders.
109 EXPECT_EQ("Digg", tree->title);
110 ASSERT_TRUE(tree->url);
111 EXPECT_EQ("http://www.reddit.com/", *tree->url);
112 EXPECT_EQ(BookmarkTreeNode::UNMODIFIABLE_NONE, tree->unmodifiable);
113 }
114
115 TEST_F(ExtensionBookmarksTest, GetManagedNode) {
116 const BookmarkNode* managed_bookmark =
117 model_->AddURL(client_->managed_node(),
118 0,
119 base::ASCIIToUTF16("Chromium"),
120 GURL("http://www.chromium.org/"));
121 scoped_ptr<BookmarkTreeNode> tree(
122 GetBookmarkTreeNode(client_,
123 managed_bookmark,
124 false, // Recurse.
125 false)); // Only folders.
126 EXPECT_EQ("Chromium", tree->title);
127 EXPECT_EQ("http://www.chromium.org/", *tree->url);
128 EXPECT_EQ(BookmarkTreeNode::UNMODIFIABLE_MANAGED, tree->unmodifiable);
129 }
130
97 TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) { 131 TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) {
98 int64 invalid_id = model_->next_node_id(); 132 int64 invalid_id = model_->next_node_id();
99 std::string error; 133 std::string error;
100 EXPECT_FALSE(RemoveNode(client_, invalid_id, true, &error)); 134 EXPECT_FALSE(RemoveNode(client_, invalid_id, true, &error));
101 EXPECT_EQ(keys::kNoNodeError, error); 135 EXPECT_EQ(keys::kNoNodeError, error);
102 } 136 }
103 137
104 TEST_F(ExtensionBookmarksTest, RemoveNodePermanent) { 138 TEST_F(ExtensionBookmarksTest, RemoveNodePermanent) {
105 std::string error; 139 std::string error;
106 EXPECT_FALSE(RemoveNode(client_, model_->other_node()->id(), true, &error)); 140 EXPECT_FALSE(RemoveNode(client_, model_->other_node()->id(), true, &error));
(...skipping 19 matching lines...) Expand all
126 160
127 TEST_F(ExtensionBookmarksTest, RemoveNodeRecursive) { 161 TEST_F(ExtensionBookmarksTest, RemoveNodeRecursive) {
128 EXPECT_EQ(3, model_->other_node()->child_count()); 162 EXPECT_EQ(3, model_->other_node()->child_count());
129 std::string error; 163 std::string error;
130 EXPECT_TRUE(RemoveNode(client_, folder_->id(), true, &error)); 164 EXPECT_TRUE(RemoveNode(client_, folder_->id(), true, &error));
131 EXPECT_EQ(2, model_->other_node()->child_count()); 165 EXPECT_EQ(2, model_->other_node()->child_count());
132 } 166 }
133 167
134 } // namespace bookmark_api_helpers 168 } // namespace bookmark_api_helpers
135 } // namespace extensions 169 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698