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.
5 #include "base/base64.h"
6 #include "base/strings/utf_string_conversions.h"
7 #include "components/bookmarks/browser/bookmark_model.h"
8 #include "components/bookmarks/test/test_bookmark_client.h"
9 #include "components/enhanced_bookmarks/enhanced_bookmark_utils.h"
10 #include "testing/gtest/include/gtest/gtest.h"
14 const GURL
bookmark_url("http://example.com/index.html");
16 class EnhancedBookmarkUtilsTest
: public testing::Test
{
18 EnhancedBookmarkUtilsTest() {}
19 virtual ~EnhancedBookmarkUtilsTest() {}
22 DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarkUtilsTest
);
24 // Adds a bookmark as the subnode at index 0 to other_node.
25 // |name| should be ASCII encoded.
26 // Returns the newly added bookmark.
27 const BookmarkNode
* AddBookmark(BookmarkModel
* model
, std::string name
) {
28 return model
->AddURL(model
->other_node(),
30 base::ASCIIToUTF16(name
),
35 TEST_F(EnhancedBookmarkUtilsTest
, TestBookmarkSearch
) {
36 test::TestBookmarkClient bookmark_client
;
37 scoped_ptr
<BookmarkModel
> bookmark_model(bookmark_client
.CreateModel());
38 const BookmarkNode
* node1
= AddBookmark(bookmark_model
.get(), "john hopkins");
39 const BookmarkNode
* node2
= AddBookmark(bookmark_model
.get(), "JohN hopkins");
40 const BookmarkNode
* node3
= AddBookmark(bookmark_model
.get(), "katy perry");
41 const BookmarkNode
* node4
= AddBookmark(bookmark_model
.get(), "lil'john13");
42 const BookmarkNode
* node5
= AddBookmark(bookmark_model
.get(), "jo hn");
44 std::vector
<const BookmarkNode
*> result
=
45 enhanced_bookmarks::FindBookmarksWithQuery(bookmark_model
.get(), "john");
46 ASSERT_EQ(result
.size(), 3u);
48 CHECK(std::find(result
.begin(), result
.end(), node1
) != result
.end());
49 CHECK(std::find(result
.begin(), result
.end(), node2
) != result
.end());
50 CHECK(std::find(result
.begin(), result
.end(), node4
) != result
.end());
52 CHECK(std::find(result
.begin(), result
.end(), node3
) == result
.end());
53 CHECK(std::find(result
.begin(), result
.end(), node5
) == result
.end());