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

Side by Side Diff: chrome/browser/bookmarks/bookmark_extension_helpers_unittest.cc

Issue 10694062: Refactor chrome.bookmarks API to use JSON schema compiler. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Nits Created 8 years, 4 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/bookmarks/bookmark_extension_helpers.h" 5 #include "chrome/browser/bookmarks/bookmark_extension_helpers.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/bookmarks/bookmark_extension_api_constants.h" 10 #include "chrome/browser/bookmarks/bookmark_extension_api_constants.h"
11 #include "chrome/browser/bookmarks/bookmark_model.h" 11 #include "chrome/browser/bookmarks/bookmark_model.h"
12 #include "chrome/common/extensions/api/bookmarks.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 namespace keys = bookmark_extension_api_constants; 15 namespace keys = bookmark_extension_api_constants;
15 16
17 using extensions::api::bookmarks::BookmarkTreeNode;
18
16 class ExtensionBookmarksTest : public testing::Test { 19 class ExtensionBookmarksTest : public testing::Test {
17 public: 20 public:
18 virtual void SetUp() OVERRIDE { 21 virtual void SetUp() OVERRIDE {
19 model_.reset(new BookmarkModel(NULL)); 22 model_.reset(new BookmarkModel(NULL));
20 model_->AddURL(model_->other_node(), 0, ASCIIToUTF16("Digg"), 23 model_->AddURL(model_->other_node(), 0, ASCIIToUTF16("Digg"),
21 GURL("http://www.reddit.com")); 24 GURL("http://www.reddit.com"));
22 model_->AddURL(model_->other_node(), 0, ASCIIToUTF16("News"), 25 model_->AddURL(model_->other_node(), 0, ASCIIToUTF16("News"),
23 GURL("http://www.foxnews.com")); 26 GURL("http://www.foxnews.com"));
24 folder_ = model_->AddFolder( 27 folder_ = model_->AddFolder(
25 model_->other_node(), 0, ASCIIToUTF16("outer folder")); 28 model_->other_node(), 0, ASCIIToUTF16("outer folder"));
26 model_->AddFolder(folder_, 0, ASCIIToUTF16("inner folder 1")); 29 model_->AddFolder(folder_, 0, ASCIIToUTF16("inner folder 1"));
27 model_->AddFolder(folder_, 0, ASCIIToUTF16("inner folder 2")); 30 model_->AddFolder(folder_, 0, ASCIIToUTF16("inner folder 2"));
28 model_->AddURL(folder_, 0, ASCIIToUTF16("Digg"), GURL("http://reddit.com")); 31 model_->AddURL(folder_, 0, ASCIIToUTF16("Digg"), GURL("http://reddit.com"));
29 model_->AddURL(folder_, 0, ASCIIToUTF16("CNet"), GURL("http://cnet.com")); 32 model_->AddURL(folder_, 0, ASCIIToUTF16("CNet"), GURL("http://cnet.com"));
30 } 33 }
31 34
32 scoped_ptr<BookmarkModel> model_; 35 scoped_ptr<BookmarkModel> model_;
33 const BookmarkNode* folder_; 36 const BookmarkNode* folder_;
34 }; 37 };
35 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { 38 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) {
36 scoped_ptr<DictionaryValue> tree( 39 scoped_ptr<BookmarkTreeNode> tree(
37 bookmark_extension_helpers::GetNodeDictionary( 40 bookmark_extension_helpers::GetBookmarkTreeNode(
38 model_->other_node(), 41 model_->other_node(),
39 true, // Recurse. 42 true, // Recurse.
40 false)); // Not only folders. 43 false)); // Not only folders.
41 ListValue* children; 44 ASSERT_EQ(3U, tree->children->size());
42 tree->GetList(keys::kChildrenKey, &children);
43 ASSERT_EQ(3U, children->GetSize());
44 } 45 }
45 46
46 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { 47 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) {
47 scoped_ptr<DictionaryValue> tree( 48 scoped_ptr<BookmarkTreeNode> tree(
48 bookmark_extension_helpers::GetNodeDictionary( 49 bookmark_extension_helpers::GetBookmarkTreeNode(
49 model_->other_node(), 50 model_->other_node(),
50 true, // Recurse. 51 true, // Recurse.
51 true)); // Only folders. 52 true)); // Only folders.
52 ListValue* children; 53 ASSERT_EQ(1U, tree->children->size());
53 tree->GetList(keys::kChildrenKey, &children);
54 ASSERT_EQ(1U, children->GetSize());
55 } 54 }
56 55
57 TEST_F(ExtensionBookmarksTest, GetSubtree) { 56 TEST_F(ExtensionBookmarksTest, GetSubtree) {
58 scoped_ptr<DictionaryValue> tree( 57 scoped_ptr<BookmarkTreeNode> tree(
59 bookmark_extension_helpers::GetNodeDictionary( 58 bookmark_extension_helpers::GetBookmarkTreeNode(
60 folder_, 59 folder_,
61 true, // Recurse. 60 true, // Recurse.
62 false)); // Not only folders. 61 false)); // Not only folders.
63 ListValue* children; 62 ASSERT_EQ(4U, tree->children->size());
64 tree->GetList(keys::kChildrenKey, &children); 63 linked_ptr<BookmarkTreeNode> digg = tree->children->at(1);
65 ASSERT_EQ(4U, children->GetSize()); 64 ASSERT_TRUE(digg.get());
66 DictionaryValue* digg; 65 ASSERT_EQ("Digg", digg->title);
67 ASSERT_TRUE(children->GetDictionary(1, &digg));
68 std::string title;
69 digg->GetString(keys::kTitleKey, &title);
70 ASSERT_EQ("Digg", title);
71 } 66 }
72 67
73 TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) { 68 TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) {
74 scoped_ptr<DictionaryValue> tree( 69 scoped_ptr<BookmarkTreeNode> tree(
75 bookmark_extension_helpers::GetNodeDictionary( 70 bookmark_extension_helpers::GetBookmarkTreeNode(
76 folder_, 71 folder_,
77 true, // Recurse. 72 true, // Recurse.
78 true)); // Only folders. 73 true)); // Only folders.
79 ListValue* children; 74 ASSERT_EQ(2U, tree->children->size());
80 tree->GetList(keys::kChildrenKey, &children); 75 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1);
81 ASSERT_EQ(2U, children->GetSize()); 76 ASSERT_TRUE(inner_folder.get());
82 DictionaryValue* inner_folder; 77 ASSERT_EQ("inner folder 1", inner_folder->title);
83 ASSERT_TRUE(children->GetDictionary(1, &inner_folder));
84 std::string title;
85 inner_folder->GetString(keys::kTitleKey, &title);
86 ASSERT_EQ("inner folder 1", title);
87 } 78 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_extension_helpers.cc ('k') | chrome/common/extensions/api/api.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698