| Index: chrome/browser/autocomplete/history_quick_provider_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/autocomplete/history_quick_provider_unittest.cc (revision 151481)
|
| +++ chrome/browser/autocomplete/history_quick_provider_unittest.cc (working copy)
|
| @@ -2,112 +2,30 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/autocomplete/history_quick_provider.h"
|
| -
|
| -#include <algorithm>
|
| -#include <functional>
|
| -#include <set>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/message_loop.h"
|
| #include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/autocomplete/autocomplete_provider_listener.h"
|
| #include "chrome/browser/autocomplete/autocomplete_result.h"
|
| -#include "chrome/browser/history/history.h"
|
| -#include "chrome/browser/history/history_service_factory.h"
|
| -#include "chrome/browser/history/in_memory_url_index.h"
|
| -#include "chrome/browser/history/url_database.h"
|
| -#include "chrome/browser/history/url_index_private_data.h"
|
| -#include "chrome/browser/prefs/pref_service.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "chrome/test/base/testing_browser_process.h"
|
| +#include "chrome/browser/autocomplete/history_quick_provider.h"
|
| +#include "chrome/browser/history/in_memory_url_cache_database.h"
|
| +#include "chrome/browser/history/in_memory_url_index_base_unittest.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| -#include "content/public/test/test_browser_thread.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
|
|
| -using base::Time;
|
| -using base::TimeDelta;
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -struct TestURLInfo {
|
| - std::string url;
|
| - std::string title;
|
| - int visit_count;
|
| - int typed_count;
|
| - int days_from_now;
|
| -} quick_test_db[] = {
|
| - {"http://www.google.com/", "Google", 3, 3, 0},
|
| - {"http://slashdot.org/favorite_page.html", "Favorite page", 200, 100, 0},
|
| - {"http://kerneltrap.org/not_very_popular.html", "Less popular", 4, 0, 0},
|
| - {"http://freshmeat.net/unpopular.html", "Unpopular", 1, 1, 0},
|
| - {"http://news.google.com/?ned=us&topic=n", "Google News - U.S.", 2, 2, 0},
|
| - {"http://news.google.com/", "Google News", 1, 1, 0},
|
| - {"http://foo.com/", "Dir", 200, 100, 0},
|
| - {"http://foo.com/dir/", "Dir", 2, 1, 10},
|
| - {"http://foo.com/dir/another/", "Dir", 5, 10, 0},
|
| - {"http://foo.com/dir/another/again/", "Dir", 5, 1, 0},
|
| - {"http://foo.com/dir/another/again/myfile.html", "File", 3, 2, 0},
|
| - {"http://visitedest.com/y/a", "VA", 10, 1, 20},
|
| - {"http://visitedest.com/y/b", "VB", 9, 1, 20},
|
| - {"http://visitedest.com/x/c", "VC", 8, 1, 20},
|
| - {"http://visitedest.com/x/d", "VD", 7, 1, 20},
|
| - {"http://visitedest.com/y/e", "VE", 6, 1, 20},
|
| - {"http://typeredest.com/y/a", "TA", 3, 5, 0},
|
| - {"http://typeredest.com/y/b", "TB", 3, 4, 0},
|
| - {"http://typeredest.com/x/c", "TC", 3, 3, 0},
|
| - {"http://typeredest.com/x/d", "TD", 3, 2, 0},
|
| - {"http://typeredest.com/y/e", "TE", 3, 1, 0},
|
| - {"http://daysagoest.com/y/a", "DA", 1, 1, 0},
|
| - {"http://daysagoest.com/y/b", "DB", 1, 1, 1},
|
| - {"http://daysagoest.com/x/c", "DC", 1, 1, 2},
|
| - {"http://daysagoest.com/x/d", "DD", 1, 1, 3},
|
| - {"http://daysagoest.com/y/e", "DE", 1, 1, 4},
|
| - {"http://abcdefghixyzjklmnopqrstuvw.com/a", "", 3, 1, 0},
|
| - {"http://spaces.com/path%20with%20spaces/foo.html", "Spaces", 2, 2, 0},
|
| - {"http://abcdefghijklxyzmnopqrstuvw.com/a", "", 3, 1, 0},
|
| - {"http://abcdefxyzghijklmnopqrstuvw.com/a", "", 3, 1, 0},
|
| - {"http://abcxyzdefghijklmnopqrstuvw.com/a", "", 3, 1, 0},
|
| - {"http://xyzabcdefghijklmnopqrstuvw.com/a", "", 3, 1, 0},
|
| - {"http://cda.com/Dogs%20Cats%20Gorillas%20Sea%20Slugs%20and%20Mice",
|
| - "Dogs & Cats & Mice & Other Animals", 1, 1, 0},
|
| - {"https://monkeytrap.org/", "", 3, 1, 0},
|
| -};
|
| -
|
| -class HistoryQuickProviderTest : public testing::Test,
|
| - public AutocompleteProviderListener {
|
| - public:
|
| - HistoryQuickProviderTest()
|
| - : ui_thread_(BrowserThread::UI, &message_loop_),
|
| - file_thread_(BrowserThread::FILE, &message_loop_) {}
|
| -
|
| - // AutocompleteProviderListener:
|
| - virtual void OnProviderUpdate(bool updated_matches) OVERRIDE;
|
| -
|
| +class HistoryQuickProviderTest : public history::InMemoryURLIndexBaseTest {
|
| protected:
|
| + virtual FilePath::StringType TestDBName() const OVERRIDE;
|
| +
|
| class SetShouldContain : public std::unary_function<const std::string&,
|
| std::set<std::string> > {
|
| public:
|
| explicit SetShouldContain(const ACMatches& matched_urls);
|
| -
|
| void operator()(const std::string& expected);
|
| -
|
| std::set<std::string> LeftOvers() const { return matches_; }
|
|
|
| private:
|
| std::set<std::string> matches_;
|
| };
|
|
|
| - void SetUp();
|
| - void TearDown();
|
| + virtual void SetUp() OVERRIDE;
|
|
|
| - virtual void GetTestData(size_t* data_count, TestURLInfo** test_data);
|
| -
|
| - // Fills test data into the history system.
|
| - void FillData();
|
| -
|
| // Runs an autocomplete query on |text| and checks to see that the returned
|
| // results' destination URLs match those provided. |expected_urls| does not
|
| // need to be in sorted order.
|
| @@ -116,16 +34,6 @@
|
| bool can_inline_top_result,
|
| string16 expected_fill_into_edit);
|
|
|
| - // Pass-through functions to simplify our friendship with URLIndexPrivateData.
|
| - bool UpdateURL(const history::URLRow& row);
|
| -
|
| - MessageLoopForUI message_loop_;
|
| - content::TestBrowserThread ui_thread_;
|
| - content::TestBrowserThread file_thread_;
|
| -
|
| - scoped_ptr<TestingProfile> profile_;
|
| - HistoryService* history_service_;
|
| -
|
| ACMatches ac_matches_; // The resulting matches after running RunTest.
|
|
|
| private:
|
| @@ -133,65 +41,16 @@
|
| };
|
|
|
| void HistoryQuickProviderTest::SetUp() {
|
| - profile_.reset(new TestingProfile());
|
| - profile_->CreateHistoryService(true, false);
|
| - profile_->CreateBookmarkModel(true);
|
| - profile_->BlockUntilBookmarkModelLoaded();
|
| - history_service_ =
|
| - HistoryServiceFactory::GetForProfile(profile_.get(),
|
| - Profile::EXPLICIT_ACCESS);
|
| - EXPECT_TRUE(history_service_);
|
| - provider_ = new HistoryQuickProvider(this, profile_.get());
|
| - FillData();
|
| + InMemoryURLIndexBaseTest::SetUp();
|
| + LoadIndex();
|
| + DCHECK(url_index_->index_available());
|
| + provider_ = new HistoryQuickProvider(NULL, profile_.get());
|
| }
|
|
|
| -void HistoryQuickProviderTest::TearDown() {
|
| - provider_ = NULL;
|
| +FilePath::StringType HistoryQuickProviderTest::TestDBName() const {
|
| + return FILE_PATH_LITERAL("history_quick_provider_test.db.txt");
|
| }
|
|
|
| -bool HistoryQuickProviderTest::UpdateURL(const history::URLRow& row) {
|
| - history::InMemoryURLIndex* index = provider_->GetIndex();
|
| - DCHECK(index);
|
| - history::URLIndexPrivateData* private_data = index->private_data();
|
| - DCHECK(private_data);
|
| - return private_data->UpdateURL(row, index->languages_,
|
| - index->scheme_whitelist_);
|
| -}
|
| -
|
| -void HistoryQuickProviderTest::OnProviderUpdate(bool updated_matches) {
|
| - MessageLoop::current()->Quit();
|
| -}
|
| -
|
| -void HistoryQuickProviderTest::GetTestData(size_t* data_count,
|
| - TestURLInfo** test_data) {
|
| - DCHECK(data_count);
|
| - DCHECK(test_data);
|
| - *data_count = arraysize(quick_test_db);
|
| - *test_data = &quick_test_db[0];
|
| -}
|
| -
|
| -void HistoryQuickProviderTest::FillData() {
|
| - history::URLDatabase* db = history_service_->InMemoryDatabase();
|
| - ASSERT_TRUE(db != NULL);
|
| - size_t data_count = 0;
|
| - TestURLInfo* test_data = NULL;
|
| - GetTestData(&data_count, &test_data);
|
| - for (size_t i = 0; i < data_count; ++i) {
|
| - const TestURLInfo& cur(test_data[i]);
|
| - const GURL current_url(cur.url);
|
| - Time visit_time = Time::Now() - TimeDelta::FromDays(cur.days_from_now);
|
| -
|
| - history::URLRow url_info(current_url);
|
| - url_info.set_id(i + 5000);
|
| - url_info.set_title(UTF8ToUTF16(cur.title));
|
| - url_info.set_visit_count(cur.visit_count);
|
| - url_info.set_typed_count(cur.typed_count);
|
| - url_info.set_last_visit(visit_time);
|
| - url_info.set_hidden(false);
|
| - UpdateURL(url_info);
|
| - }
|
| -}
|
| -
|
| HistoryQuickProviderTest::SetShouldContain::SetShouldContain(
|
| const ACMatches& matched_urls) {
|
| for (ACMatches::const_iterator iter = matched_urls.begin();
|
| @@ -432,52 +291,13 @@
|
|
|
| // HQPOrderingTest -------------------------------------------------------------
|
|
|
| -TestURLInfo ordering_test_db[] = {
|
| - {"http://www.teamliquid.net/tlpd/korean/games/21648_bisu_vs_iris", "", 6, 3,
|
| - 256},
|
| - {"http://www.amazon.com/", "amazon.com: online shopping for electronics, "
|
| - "apparel, computers, books, dvds & more", 20, 20, 10},
|
| - {"http://www.teamliquid.net/forum/viewmessage.php?topic_id=52045&"
|
| - "currentpage=83", "google images", 6, 6, 0},
|
| - {"http://www.tempurpedic.com/", "tempur-pedic", 7, 7, 0},
|
| - {"http://www.teamfortress.com/", "", 5, 5, 6},
|
| - {"http://www.rottentomatoes.com/", "", 3, 3, 7},
|
| - {"http://music.google.com/music/listen?u=0#start_pl", "", 3, 3, 9},
|
| - {"https://www.emigrantdirect.com/", "high interest savings account, high "
|
| - "yield savings - emigrantdirect", 5, 5, 3},
|
| - {"http://store.steampowered.com/", "", 6, 6, 1},
|
| - {"http://techmeme.com/", "techmeme", 111, 110, 4},
|
| - {"http://www.teamliquid.net/tlpd", "team liquid progaming database", 15, 15,
|
| - 2},
|
| - {"http://store.steampowered.com/", "the steam summer camp sale", 6, 6, 1},
|
| - {"http://www.teamliquid.net/tlpd/korean/players", "tlpd - bw korean - player "
|
| - "index", 100, 45, 219},
|
| - {"http://slashdot.org/", "slashdot: news for nerds, stuff that matters", 3, 3,
|
| - 6},
|
| - {"http://translate.google.com/", "google translate", 3, 3, 0},
|
| - {"http://arstechnica.com/", "ars technica", 3, 3, 3},
|
| - {"http://www.rottentomatoes.com/", "movies | movie trailers | reviews - "
|
| - "rotten tomatoes", 3, 3, 7},
|
| - {"http://www.teamliquid.net/", "team liquid - starcraft 2 and brood war pro "
|
| - "gaming news", 26, 25, 3},
|
| - {"http://metaleater.com/", "metaleater", 4, 3, 8},
|
| - {"http://half.com/", "half.com: textbooks , books , music , movies , games , "
|
| - "video games", 4, 4, 6},
|
| - {"http://teamliquid.net/", "team liquid - starcraft 2 and brood war pro "
|
| - "gaming news", 8, 5, 9},
|
| -};
|
| -
|
| class HQPOrderingTest : public HistoryQuickProviderTest {
|
| protected:
|
| - virtual void GetTestData(size_t* data_count,
|
| - TestURLInfo** test_data) OVERRIDE;
|
| + virtual FilePath::StringType TestDBName() const OVERRIDE;
|
| };
|
|
|
| -void HQPOrderingTest::GetTestData(size_t* data_count, TestURLInfo** test_data) {
|
| - DCHECK(data_count);
|
| - DCHECK(test_data);
|
| - *data_count = arraysize(ordering_test_db);
|
| - *test_data = &ordering_test_db[0];
|
| +FilePath::StringType HQPOrderingTest::TestDBName() const {
|
| + return FILE_PATH_LITERAL("history_quick_provider_ordering_test.db.txt");
|
| }
|
|
|
| TEST_F(HQPOrderingTest, TEMatch) {
|
|
|