| Index: chrome/browser/history/history_unittest.cc
|
| diff --git a/chrome/browser/history/history_unittest.cc b/chrome/browser/history/history_unittest.cc
|
| index d9e8949dcee3557a7014462113a777faa16b7ee9..822ebddb5628a32ef4a2bc4ca31a4323fe4c9c79 100644
|
| --- a/chrome/browser/history/history_unittest.cc
|
| +++ b/chrome/browser/history/history_unittest.cc
|
| @@ -165,10 +165,10 @@ class HistoryBackendDBTest : public HistoryUnitTestBase {
|
| std::vector<GURL> url_chain;
|
| url_chain.push_back(GURL("foo-url"));
|
|
|
| - DownloadRow download(base::FilePath(FILE_PATH_LITERAL("foo-path")),
|
| - base::FilePath(FILE_PATH_LITERAL("foo-path")),
|
| + DownloadRow download(base::FilePath(FILE_PATH_LITERAL("current-path")),
|
| + base::FilePath(FILE_PATH_LITERAL("target-path")),
|
| url_chain,
|
| - GURL(std::string()),
|
| + GURL("http://referrer.com/"),
|
| time,
|
| time,
|
| 0,
|
| @@ -177,7 +177,7 @@ class HistoryBackendDBTest : public HistoryUnitTestBase {
|
| content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
| content::DOWNLOAD_INTERRUPT_REASON_NONE,
|
| 0,
|
| - 0);
|
| + false);
|
| return db_->CreateDownload(download);
|
| }
|
|
|
| @@ -221,12 +221,33 @@ TEST_F(HistoryBackendDBTest, ClearBrowsingData_Downloads) {
|
| db_->QueryDownloads(&downloads);
|
| EXPECT_EQ(0U, downloads.size());
|
|
|
| - // Add a download, test that it was added, remove it, test that it was
|
| - // removed.
|
| + // Add a download, test that it was added correctly, remove it, test that it
|
| + // was removed.
|
| DownloadID handle;
|
| - EXPECT_NE(0, handle = AddDownload(DownloadItem::COMPLETE, Time()));
|
| + Time now = Time();
|
| + EXPECT_NE(0, handle = AddDownload(DownloadItem::COMPLETE, now));
|
| db_->QueryDownloads(&downloads);
|
| EXPECT_EQ(1U, downloads.size());
|
| +
|
| + EXPECT_EQ(base::FilePath(FILE_PATH_LITERAL("current-path")),
|
| + downloads[0].current_path);
|
| + EXPECT_EQ(base::FilePath(FILE_PATH_LITERAL("target-path")),
|
| + downloads[0].target_path);
|
| + EXPECT_EQ(1UL, downloads[0].url_chain.size());
|
| + EXPECT_EQ(GURL("foo-url"), downloads[0].url_chain[0]);
|
| + EXPECT_EQ(std::string("http://referrer.com/"),
|
| + std::string(downloads[0].referrer_url.spec()));
|
| + EXPECT_EQ(now, downloads[0].start_time);
|
| + EXPECT_EQ(now, downloads[0].end_time);
|
| + EXPECT_EQ(0, downloads[0].received_bytes);
|
| + EXPECT_EQ(512, downloads[0].total_bytes);
|
| + EXPECT_EQ(DownloadItem::COMPLETE, downloads[0].state);
|
| + EXPECT_EQ(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
| + downloads[0].danger_type);
|
| + EXPECT_EQ(content::DOWNLOAD_INTERRUPT_REASON_NONE,
|
| + downloads[0].interrupt_reason);
|
| + EXPECT_FALSE(downloads[0].opened);
|
| +
|
| db_->RemoveDownload(handle);
|
| db_->QueryDownloads(&downloads);
|
| EXPECT_EQ(0U, downloads.size());
|
| @@ -411,6 +432,54 @@ TEST_F(HistoryBackendDBTest, MigrateDownloadsReasonPathsAndDangerType) {
|
| }
|
| }
|
|
|
| +TEST_F(HistoryBackendDBTest, MigrateReferrer) {
|
| + Time now(base::Time::Now());
|
| + ASSERT_NO_FATAL_FAILURE(CreateDBVersion(22));
|
| + {
|
| + sql::Connection db;
|
| + ASSERT_TRUE(db.Open(history_dir_.Append(chrome::kHistoryFilename)));
|
| + sql::Statement s(db.GetUniqueStatement(
|
| + "INSERT INTO downloads (id, full_path, url, start_time, "
|
| + "received_bytes, total_bytes, state, end_time, opened) VALUES "
|
| + "(?, ?, ?, ?, ?, ?, ?, ?, ?)"));
|
| + int64 db_handle = 0;
|
| + s.BindInt64(0, ++db_handle);
|
| + s.BindString(1, "full_path");
|
| + s.BindString(2, "http://whatever.com/index.html");
|
| + s.BindInt64(3, now.ToTimeT());
|
| + s.BindInt64(4, 100);
|
| + s.BindInt64(5, 100);
|
| + s.BindInt(6, 1);
|
| + s.BindInt64(7, now.ToTimeT());
|
| + s.BindInt(8, 1);
|
| + ASSERT_TRUE(s.Run());
|
| + }
|
| + // Re-open the db using the HistoryDatabase, which should migrate to version
|
| + // 26, creating the referrer column.
|
| + CreateBackendAndDatabase();
|
| + DeleteBackend();
|
| + {
|
| + // Re-open the db for manual manipulation.
|
| + sql::Connection db;
|
| + ASSERT_TRUE(db.Open(history_dir_.Append(chrome::kHistoryFilename)));
|
| + // The version should have been updated.
|
| + int cur_version = HistoryDatabase::GetCurrentVersion();
|
| + ASSERT_LE(26, cur_version);
|
| + {
|
| + sql::Statement s(db.GetUniqueStatement(
|
| + "SELECT value FROM meta WHERE key = 'version'"));
|
| + EXPECT_TRUE(s.Step());
|
| + EXPECT_EQ(cur_version, s.ColumnInt(0));
|
| + }
|
| + {
|
| + sql::Statement s(db.GetUniqueStatement(
|
| + "SELECT referrer from downloads"));
|
| + EXPECT_TRUE(s.Step());
|
| + EXPECT_EQ(std::string(), s.ColumnString(0));
|
| + }
|
| + }
|
| +}
|
| +
|
| TEST_F(HistoryBackendDBTest, ConfirmDownloadRowCreateAndDelete) {
|
| // Create the DB.
|
| CreateBackendAndDatabase();
|
|
|