| Index: chrome/browser/history/in_memory_url_index_base_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/history/in_memory_url_index_base_unittest.cc (revision 152962)
|
| +++ chrome/browser/history/in_memory_url_index_base_unittest.cc (working copy)
|
| @@ -1,143 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/history/in_memory_url_index_base_unittest.h"
|
| -
|
| -#include "base/file_path.h"
|
| -#include "base/file_util.h"
|
| -#include "base/path_service.h"
|
| -#include "base/string_split.h"
|
| -#include "base/synchronization/waitable_event.h"
|
| -#include "chrome/browser/history/history.h"
|
| -#include "chrome/browser/history/history_backend.h"
|
| -#include "chrome/browser/history/history_service_factory.h"
|
| -#include "chrome/browser/history/in_memory_url_cache_database.h"
|
| -#include "chrome/browser/history/in_memory_url_index.h"
|
| -#include "chrome/browser/history/url_index_private_data.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "chrome/test/base/ui_test_utils.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "sql/connection.h"
|
| -#include "sql/statement.h"
|
| -#include "sql/transaction.h"
|
| -
|
| -namespace history {
|
| -
|
| -InMemoryURLIndexBaseTest::InMemoryURLIndexBaseTest()
|
| - : ui_thread_(content::BrowserThread::UI, &message_loop_),
|
| - db_thread_(content::BrowserThread::DB) {
|
| -}
|
| -
|
| -InMemoryURLIndexBaseTest::~InMemoryURLIndexBaseTest() {
|
| -}
|
| -
|
| -void InMemoryURLIndexBaseTest::SetUp() {
|
| - if (!profile_.get())
|
| - profile_.reset(new TestingProfile);
|
| - db_thread_.Start();
|
| - // We cannot access the database until the backend has been loaded.
|
| - profile_->CreateHistoryService(true, false);
|
| - HistoryService* history_service =
|
| - HistoryServiceFactory::GetForProfile(profile_.get(),
|
| - Profile::EXPLICIT_ACCESS);
|
| - ASSERT_TRUE(history_service);
|
| - url_index_ = history_service->InMemoryIndex();
|
| - BlockUntilIndexLoaded();
|
| - DCHECK(url_index_->index_available());
|
| - profile_->CreateBookmarkModel(true);
|
| - HistoryBackend* backend = history_service->get_history_backend_for_testing();
|
| - history_database_ = backend->db();
|
| - ui_test_utils::WaitForHistoryToLoad(history_service);
|
| - DCHECK(history_service->backend_loaded());
|
| -
|
| - // Create and populate a working copy of the URL history database from the
|
| - // data contained in the file specified by the TestDBName() function.
|
| - // TODO(mrossetti): Adopt sqlite3_ functions for performing the database
|
| - // initialization. See http://crbug.com/137352.
|
| - FilePath test_file_path;
|
| - PathService::Get(chrome::DIR_TEST_DATA, &test_file_path);
|
| - test_file_path = test_file_path.Append(FILE_PATH_LITERAL("History"));
|
| - test_file_path = test_file_path.Append(TestDBName());
|
| - EXPECT_TRUE(file_util::PathExists(test_file_path));
|
| -
|
| - std::string sql_command_buffer;
|
| - file_util::ReadFileToString(test_file_path, &sql_command_buffer);
|
| - std::vector<std::string> sql_commands;
|
| - base::SplitStringDontTrim(sql_command_buffer, '\n', &sql_commands);
|
| - sql::Connection* db(history_database_->get_db_for_testing());
|
| - for (std::vector<std::string>::const_iterator i = sql_commands.begin();
|
| - i != sql_commands.end(); ++i) {
|
| - // We only process lines which begin with a upper-case letter.
|
| - // TODO(mrossetti): Can iswupper() be used here?
|
| - const std::string& sql_command(*i);
|
| - if (sql_command[0] >= 'A' && sql_command[0] <= 'Z')
|
| - EXPECT_TRUE(db->Execute(sql_command.c_str()));
|
| - }
|
| -
|
| - // Update the last_visit_time table column such that it represents a time
|
| - // relative to 'now'.
|
| - // TODO(mrossetti): Do an UPDATE to alter the days-ago.
|
| - // See http://crbug.com/137352.
|
| - sql::Statement statement(db->GetUniqueStatement(
|
| - "SELECT" HISTORY_URL_ROW_FIELDS "FROM urls"));
|
| - EXPECT_TRUE(statement.is_valid());
|
| - base::Time time_right_now = base::Time::NowFromSystemTime();
|
| - base::TimeDelta day_delta = base::TimeDelta::FromDays(1);
|
| - while (statement.Step()) {
|
| - URLRow row;
|
| - history_database_->FillURLRow(statement, &row);
|
| - row.set_last_visit(time_right_now -
|
| - day_delta * row.last_visit().ToInternalValue());
|
| - history_database_->UpdateURLRow(row.id(), row);
|
| - }
|
| -}
|
| -
|
| -void InMemoryURLIndexBaseTest::TearDown() {
|
| - profile_->BlockUntilHistoryProcessesPendingRequests();
|
| - message_loop_.RunAllPending();
|
| - MessageLoop::current()->RunAllPending();
|
| - content::BrowserThread::GetBlockingPool()->FlushForTesting();
|
| - base::WaitableEvent done(false, false);
|
| - content::BrowserThread::PostTask(content::BrowserThread::DB, FROM_HERE,
|
| - base::Bind(&base::WaitableEvent::Signal, base::Unretained(&done)));
|
| - done.Wait();
|
| - db_thread_.Stop();
|
| - message_loop_.RunAllPending();
|
| - MessageLoop::current()->RunAllPending();
|
| -}
|
| -
|
| -void InMemoryURLIndexBaseTest::LoadIndex() {
|
| - url_index_->ScheduleRebuildFromHistory();
|
| - BlockUntilIndexLoaded();
|
| -}
|
| -
|
| -void InMemoryURLIndexBaseTest::BlockUntilIndexLoaded() {
|
| - if (url_index_->index_available())
|
| - return;
|
| - content::BrowserThread::GetBlockingPool()->FlushForTesting();
|
| - InMemoryURLIndex::Observer observer(url_index_);
|
| - MessageLoop::current()->Run();
|
| -}
|
| -
|
| -URLIndexPrivateData* InMemoryURLIndexBaseTest::GetPrivateData() {
|
| - return url_index_->private_data();
|
| -}
|
| -
|
| -bool InMemoryURLIndexBaseTest::UpdateURL(const URLRow& row) {
|
| - bool success = GetPrivateData()->UpdateURL(row);
|
| - content::BrowserThread::GetBlockingPool()->FlushForTesting();
|
| - return success;
|
| -}
|
| -
|
| -bool InMemoryURLIndexBaseTest::DeleteURL(const GURL& url) {
|
| - bool success = GetPrivateData()->DeleteURL(url);
|
| - content::BrowserThread::GetBlockingPool()->FlushForTesting();
|
| - return success;
|
| -}
|
| -
|
| -bool InMemoryURLIndexBaseTest::GetCacheDBPath(FilePath* file_path) {
|
| - return GetPrivateData()->GetCacheDBPath(file_path);
|
| -}
|
| -
|
| -} // namespace history
|
|
|