Roll leveldb 3f7758:803d69 (v1.17 -> v1.18)
[chromium-blink-merge.git] / components / enhanced_bookmarks / enhanced_bookmark_utils_unittest.cc
blob73280164313dd81db8cfab73f9183fecbb1ac3d0
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"
12 using bookmarks::TestBookmarkClient;
14 namespace {
16 const GURL bookmark_url("http://example.com/index.html");
18 class EnhancedBookmarkUtilsTest : public testing::Test {
19 public:
20 EnhancedBookmarkUtilsTest() {}
21 ~EnhancedBookmarkUtilsTest() override {}
23 protected:
24 DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarkUtilsTest);
26 // Adds a bookmark as the subnode at index 0 to other_node.
27 // |name| should be ASCII encoded.
28 // Returns the newly added bookmark.
29 const BookmarkNode* AddBookmark(BookmarkModel* model, std::string name) {
30 return model->AddURL(model->other_node(),
31 0, // index.
32 base::ASCIIToUTF16(name),
33 bookmark_url);
37 TEST_F(EnhancedBookmarkUtilsTest, TestBookmarkSearch) {
38 TestBookmarkClient bookmark_client;
39 scoped_ptr<BookmarkModel> bookmark_model(bookmark_client.CreateModel());
40 const BookmarkNode* node1 = AddBookmark(bookmark_model.get(), "john hopkins");
41 const BookmarkNode* node2 = AddBookmark(bookmark_model.get(), "JohN hopkins");
42 const BookmarkNode* node3 = AddBookmark(bookmark_model.get(), "katy perry");
43 const BookmarkNode* node4 = AddBookmark(bookmark_model.get(), "lil'john13");
44 const BookmarkNode* node5 = AddBookmark(bookmark_model.get(), "jo hn");
46 std::vector<const BookmarkNode*> result =
47 enhanced_bookmarks::FindBookmarksWithQuery(bookmark_model.get(), "john");
48 ASSERT_EQ(result.size(), 3u);
50 CHECK(std::find(result.begin(), result.end(), node1) != result.end());
51 CHECK(std::find(result.begin(), result.end(), node2) != result.end());
52 CHECK(std::find(result.begin(), result.end(), node4) != result.end());
54 CHECK(std::find(result.begin(), result.end(), node3) == result.end());
55 CHECK(std::find(result.begin(), result.end(), node5) == result.end());
58 } // namespace