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

Unified Diff: chrome/browser/autocomplete/bookmark_provider_unittest.cc

Issue 10913262: Implement Bookmark Autocomplete Provider (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autocomplete/bookmark_provider_unittest.cc
===================================================================
--- chrome/browser/autocomplete/bookmark_provider_unittest.cc (revision 0)
+++ chrome/browser/autocomplete/bookmark_provider_unittest.cc (revision 0)
@@ -0,0 +1,96 @@
+#include "chrome/browser/autocomplete/bookmark_provider.h"
+
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/autocomplete/autocomplete_provider.h"
+#include "chrome/browser/autocomplete/autocomplete_provider_listener.h"
+#include "chrome/browser/bookmarks/bookmark_model.h"
+#include "chrome/browser/bookmarks/bookmark_model_factory.h"
+#include "chrome/test/base/testing_profile.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+class BookmarkProviderTest : public testing::Test,
+ public AutocompleteProviderListener {
+ public:
+ BookmarkProviderTest() : model_(new BookmarkModel(NULL)) {}
+
+ // AutocompleteProviderListener: Not called.
+ virtual void OnProviderUpdate(bool updated_matches) OVERRIDE {}
+
+ protected:
+ virtual void SetUp() OVERRIDE;
+ virtual void TearDown() OVERRIDE;
+
+ // Initializes test data.
+ void AddBookmarksWithTitles(const char** titles, size_t count);
+ void AddBookmarksWithTitles(const std::vector<std::string>& titles);
+
+ scoped_ptr<TestingProfile> profile_;
+ scoped_ptr<BookmarkModel> model_;
+ scoped_refptr<BookmarkProvider> provider_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BookmarkProviderTest);
+};
+
+void BookmarkProviderTest::SetUp() {
+ profile_.reset(new TestingProfile());
+ DCHECK(profile_.get());
+ provider_ = new BookmarkProvider(this, profile_.get());
+ DCHECK(provider_);
+ provider_->set_bookmark_model_for_testing(model_.get());
+}
+
+void BookmarkProviderTest::TearDown() {
+}
+
+void BookmarkProviderTest::AddBookmarksWithTitles(const char** titles,
+ size_t count) {
+ std::vector<std::string> title_vector;
+ for (size_t i = 0; i < count; ++i)
+ title_vector.push_back(titles[i]);
+ AddBookmarksWithTitles(title_vector);
+}
+
+void BookmarkProviderTest::AddBookmarksWithTitles(
+ const std::vector<std::string>& titles) {
+ GURL url("about:blank");
+ for (size_t i = 0; i < titles.size(); ++i)
+ model_->AddURL(model_->other_node(), static_cast<int>(i),
+ ASCIIToUTF16(titles[i]), url);
+}
+
+TEST_F(BookmarkProviderTest, Positions) {
+ const char* test_data[] = {
+ "abc def",
+ "abcde",
+ };
+ AddBookmarksWithTitles(test_data, ARRAYSIZE_UNSAFE(test_data));
+
+ struct QueryData {
+ const std::string query;
+ const size_t match_count;
+ const size_t positions[3][2];
+ } query_data[] = {
+ // Trivial test case of only one term, exact match.
+ { "abc", 1, {{0,1},{2,3},{0,0}} },
+ { "foo bar", 0, {{0,1},{2,3},{0,0}} },
+ { "fooey bark", 0, {{0,1},{2,3},{0,0}} },
+ };
+
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(query_data); ++i) {
+ // WHAT???
+ AutocompleteInput input(ASCIIToUTF16(query_data[i].query),
+ ASCIIToUTF16("N/A"), false, false, false,
+ AutocompleteInput::ALL_MATCHES);
+ provider_->Start(input, false);
+ const ACMatches& matches(provider_->matches());
+ // Validate number of results is as expected.
+ EXPECT_EQ(query_data[i].match_count, matches.size());
+ // Validate positions within each result is as expected.
+#if 0
+ ExpectClassificationsEqual(matches, { { 0, 1 }, { 3, 5} });
+#endif
+ }
+}
Property changes on: chrome/browser/autocomplete/bookmark_provider_unittest.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698