Home | History | Annotate | Download | only in enhanced_bookmarks
      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.
      4 
      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"
     11 
     12 using bookmarks::TestBookmarkClient;
     13 
     14 namespace {
     15 
     16 const GURL bookmark_url("http://example.com/index.html");
     17 
     18 class EnhancedBookmarkUtilsTest : public testing::Test {
     19  public:
     20   EnhancedBookmarkUtilsTest() {}
     21   virtual ~EnhancedBookmarkUtilsTest() {}
     22 
     23  protected:
     24   DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarkUtilsTest);
     25 
     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);
     34   }
     35 };
     36 
     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");
     45 
     46   std::vector<const BookmarkNode*> result =
     47       enhanced_bookmarks::FindBookmarksWithQuery(bookmark_model.get(), "john");
     48   ASSERT_EQ(result.size(), 3u);
     49 
     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());
     53 
     54   CHECK(std::find(result.begin(), result.end(), node3) == result.end());
     55   CHECK(std::find(result.begin(), result.end(), node5) == result.end());
     56 };
     57 
     58 }  // namespace
     59