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 |