| Index: components/history/core/browser/history_backend_db_unittest.cc
|
| diff --git a/components/history/core/browser/history_backend_db_unittest.cc b/components/history/core/browser/history_backend_db_unittest.cc
|
| index 9090fd7ca29b9bd2f90427657a859f4f2114a6a7..50f985e43d34f578930fe28c0e03338c5b39245f 100644
|
| --- a/components/history/core/browser/history_backend_db_unittest.cc
|
| +++ b/components/history/core/browser/history_backend_db_unittest.cc
|
| @@ -637,7 +637,7 @@ TEST_F(HistoryBackendDBTest, MigrateTabUrls) {
|
| {
|
| sql::Statement s(db.GetUniqueStatement(
|
| "INSERT INTO downloads_url_chains (id, chain_index, url) VALUES "
|
| - "(4, 0, 'url')"));
|
| + "(1, 0, 'url')"));
|
| ASSERT_TRUE(s.Run());
|
| }
|
| }
|
| @@ -669,6 +669,60 @@ TEST_F(HistoryBackendDBTest, MigrateTabUrls) {
|
| }
|
| }
|
|
|
| +TEST_F(HistoryBackendDBTest, MigrateDownloadSiteInstanceUrl) {
|
| + ASSERT_NO_FATAL_FAILURE(CreateDBVersion(31));
|
| + {
|
| + sql::Connection db;
|
| + ASSERT_TRUE(db.Open(history_dir_.Append(kHistoryFilename)));
|
| + {
|
| + sql::Statement s(db.GetUniqueStatement(
|
| + "INSERT INTO downloads ("
|
| + " id, guid, current_path, target_path, start_time, received_bytes,"
|
| + " total_bytes, state, danger_type, interrupt_reason, hash,"
|
| + " end_time, opened, referrer, tab_url, tab_referrer_url,"
|
| + " http_method, by_ext_id, by_ext_name, etag, last_modified,"
|
| + " mime_type, original_mime_type)"
|
| + "VALUES("
|
| + " 1, '435A5C7A-F6B7-4DF2-8696-22E4FCBA3EB2', 'foo.txt', 'foo.txt',"
|
| + " 13104873187307670, 11, 11, 1, 0, 0, X'', 13104873187521021, 0,"
|
| + " 'http://example.com/dl/', '', '', '', '', '', '', '',"
|
| + " 'text/plain', 'text/plain')"));
|
| + ASSERT_TRUE(s.Run());
|
| + }
|
| + {
|
| + sql::Statement s(db.GetUniqueStatement(
|
| + "INSERT INTO downloads_url_chains (id, chain_index, url) VALUES "
|
| + "(1, 0, 'url')"));
|
| + ASSERT_TRUE(s.Run());
|
| + }
|
| + }
|
| +
|
| + // Re-open the db using the HistoryDatabase, which should migrate to the
|
| + // current version, creating the site_instance_url column.
|
| + CreateBackendAndDatabase();
|
| + DeleteBackend();
|
| + {
|
| + // Re-open the db for manual manipulation.
|
| + sql::Connection db;
|
| + ASSERT_TRUE(db.Open(history_dir_.Append(kHistoryFilename)));
|
| + // The version should have been updated.
|
| + int cur_version = HistoryDatabase::GetCurrentVersion();
|
| + ASSERT_LE(31, 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 site_instance_url from downloads"));
|
| + EXPECT_TRUE(s.Step());
|
| + EXPECT_EQ(std::string(), s.ColumnString(0));
|
| + }
|
| + }
|
| +}
|
| +
|
| TEST_F(HistoryBackendDBTest, DownloadCreateAndQuery) {
|
| CreateBackendAndDatabase();
|
|
|
| @@ -685,7 +739,8 @@ TEST_F(HistoryBackendDBTest, DownloadCreateAndQuery) {
|
| DownloadRow download_A(
|
| base::FilePath(FILE_PATH_LITERAL("/path/1")),
|
| base::FilePath(FILE_PATH_LITERAL("/path/2")), url_chain,
|
| - GURL("http://example.com/referrer"), GURL("http://example.com/tab-url"),
|
| + GURL("http://example.com/referrer"), GURL("http://example.com"),
|
| + GURL("http://example.com/tab-url"),
|
| GURL("http://example.com/tab-referrer"), "GET", "mime/type",
|
| "original/mime-type", start_time, end_time, "etag1", "last_modified_1",
|
| 100, 1000, DownloadState::INTERRUPTED, DownloadDangerType::NOT_DANGEROUS,
|
| @@ -702,7 +757,8 @@ TEST_F(HistoryBackendDBTest, DownloadCreateAndQuery) {
|
| DownloadRow download_B(
|
| base::FilePath(FILE_PATH_LITERAL("/path/3")),
|
| base::FilePath(FILE_PATH_LITERAL("/path/4")), url_chain,
|
| - GURL("http://example.com/referrer2"), GURL("http://example.com/tab-url2"),
|
| + GURL("http://example.com/referrer2"), GURL("http://2.example.com"),
|
| + GURL("http://example.com/tab-url2"),
|
| GURL("http://example.com/tab-referrer2"), "POST", "mime/type2",
|
| "original/mime-type2", start_time2, end_time2, "etag2", "last_modified_2",
|
| 1001, 1001, DownloadState::COMPLETE, DownloadDangerType::DANGEROUS_FILE,
|
| @@ -741,7 +797,8 @@ TEST_F(HistoryBackendDBTest, DownloadCreateAndUpdate_VolatileFields) {
|
| DownloadRow download(
|
| base::FilePath(FILE_PATH_LITERAL("/path/1")),
|
| base::FilePath(FILE_PATH_LITERAL("/path/2")), url_chain,
|
| - GURL("http://example.com/referrer"), GURL("http://example.com/tab-url"),
|
| + GURL("http://example.com/referrer"), GURL("http://example.com"),
|
| + GURL("http://example.com/tab-url"),
|
| GURL("http://example.com/tab-referrer"), "GET", "mime/type",
|
| "original/mime-type", start_time, end_time, "etag1", "last_modified_1",
|
| 100, 1000, DownloadState::INTERRUPTED, DownloadDangerType::NOT_DANGEROUS,
|
| @@ -840,11 +897,11 @@ TEST_F(HistoryBackendDBTest, DownloadNukeRecordsMissingURLs) {
|
| base::FilePath(FILE_PATH_LITERAL("foo-path")),
|
| base::FilePath(FILE_PATH_LITERAL("foo-path")), url_chain,
|
| GURL(std::string()), GURL(std::string()), GURL(std::string()),
|
| - std::string(), "application/octet-stream", "application/octet-stream",
|
| - now, now, std::string(), std::string(), 0, 512, DownloadState::COMPLETE,
|
| - DownloadDangerType::NOT_DANGEROUS, kTestDownloadInterruptReasonNone,
|
| - std::string(), 1, "05AF6C8E-E4E0-45D7-B5CE-BC99F7019918", 0, "by_ext_id",
|
| - "by_ext_name");
|
| + GURL(std::string()), std::string(), "application/octet-stream",
|
| + "application/octet-stream", now, now, std::string(), std::string(), 0,
|
| + 512, DownloadState::COMPLETE, DownloadDangerType::NOT_DANGEROUS,
|
| + kTestDownloadInterruptReasonNone, std::string(), 1,
|
| + "05AF6C8E-E4E0-45D7-B5CE-BC99F7019918", 0, "by_ext_id", "by_ext_name");
|
|
|
| // Creating records without any urls should fail.
|
| EXPECT_FALSE(db_->CreateDownload(download));
|
|
|