Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(293)

Side by Side Diff: chrome/browser/history/history_unittest.cc

Issue 102683004: Add mime type information to the download database (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move kSchema and kUrlChainSchema to InitDownloadTable Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // History unit tests come in two flavors: 5 // History unit tests come in two flavors:
6 // 6 //
7 // 1. The more complicated style is that the unit test creates a full history 7 // 1. The more complicated style is that the unit test creates a full history
8 // service. This spawns a background thread for the history backend, and 8 // service. This spawns a background thread for the history backend, and
9 // all communication is asynchronous. This is useful for testing more 9 // all communication is asynchronous. This is useful for testing more
10 // complicated things or end-to-end behavior. 10 // complicated things or end-to-end behavior.
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 bool AddDownload(uint32 id, 163 bool AddDownload(uint32 id,
164 DownloadItem::DownloadState state, 164 DownloadItem::DownloadState state,
165 const Time& time) { 165 const Time& time) {
166 std::vector<GURL> url_chain; 166 std::vector<GURL> url_chain;
167 url_chain.push_back(GURL("foo-url")); 167 url_chain.push_back(GURL("foo-url"));
168 168
169 DownloadRow download(base::FilePath(FILE_PATH_LITERAL("current-path")), 169 DownloadRow download(base::FilePath(FILE_PATH_LITERAL("current-path")),
170 base::FilePath(FILE_PATH_LITERAL("target-path")), 170 base::FilePath(FILE_PATH_LITERAL("target-path")),
171 url_chain, 171 url_chain,
172 GURL("http://referrer.com/"), 172 GURL("http://referrer.com/"),
173 "application/octet-stream",
174 "application/octet-stream",
173 time, 175 time,
174 time, 176 time,
175 std::string(), 177 std::string(),
176 std::string(), 178 std::string(),
177 0, 179 0,
178 512, 180 512,
179 state, 181 state,
180 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, 182 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
181 content::DOWNLOAD_INTERRUPT_REASON_NONE, 183 content::DOWNLOAD_INTERRUPT_REASON_NONE,
182 id, 184 id,
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 { 612 {
611 sql::Statement s(db.GetUniqueStatement( 613 sql::Statement s(db.GetUniqueStatement(
612 "SELECT etag, last_modified from downloads")); 614 "SELECT etag, last_modified from downloads"));
613 EXPECT_TRUE(s.Step()); 615 EXPECT_TRUE(s.Step());
614 EXPECT_EQ(std::string(), s.ColumnString(0)); 616 EXPECT_EQ(std::string(), s.ColumnString(0));
615 EXPECT_EQ(std::string(), s.ColumnString(1)); 617 EXPECT_EQ(std::string(), s.ColumnString(1));
616 } 618 }
617 } 619 }
618 } 620 }
619 621
622 TEST_F(HistoryBackendDBTest, MigrateDownloadMimeType) {
623 Time now(base::Time::Now());
624 ASSERT_NO_FATAL_FAILURE(CreateDBVersion(28));
625 {
626 sql::Connection db;
627 ASSERT_TRUE(db.Open(history_dir_.Append(chrome::kHistoryFilename)));
628 {
629 sql::Statement s(db.GetUniqueStatement(
630 "INSERT INTO downloads (id, current_path, target_path, start_time, "
631 "received_bytes, total_bytes, state, danger_type, interrupt_reason, "
632 "end_time, opened, referrer, by_ext_id, by_ext_name, etag, "
633 "last_modified) VALUES "
634 "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"));
635 s.BindInt64(0, 1);
636 s.BindString(1, "current_path");
637 s.BindString(2, "target_path");
638 s.BindInt64(3, now.ToTimeT());
639 s.BindInt64(4, 100);
640 s.BindInt64(5, 100);
641 s.BindInt(6, 1);
642 s.BindInt(7, 0);
643 s.BindInt(8, 0);
644 s.BindInt64(9, now.ToTimeT());
645 s.BindInt(10, 1);
646 s.BindString(11, "referrer");
647 s.BindString(12, "by extension ID");
648 s.BindString(13, "by extension name");
649 s.BindString(14, "etag");
650 s.BindInt64(15, now.ToTimeT());
651 ASSERT_TRUE(s.Run());
652 }
653 {
654 sql::Statement s(db.GetUniqueStatement(
655 "INSERT INTO downloads_url_chains (id, chain_index, url) VALUES "
656 "(?, ?, ?)"));
657 s.BindInt64(0, 4);
658 s.BindInt64(1, 0);
659 s.BindString(2, "url");
660 ASSERT_TRUE(s.Run());
661 }
662 }
663 // Re-open the db using the HistoryDatabase, which should migrate to the
664 // current version, creating the etag and last_modified columns.
665 CreateBackendAndDatabase();
666 DeleteBackend();
667 {
668 // Re-open the db for manual manipulation.
669 sql::Connection db;
670 ASSERT_TRUE(db.Open(history_dir_.Append(chrome::kHistoryFilename)));
671 // The version should have been updated.
672 int cur_version = HistoryDatabase::GetCurrentVersion();
673 ASSERT_LE(29, cur_version);
674 {
675 sql::Statement s(db.GetUniqueStatement(
676 "SELECT value FROM meta WHERE key = 'version'"));
677 EXPECT_TRUE(s.Step());
678 EXPECT_EQ(cur_version, s.ColumnInt(0));
679 }
680 {
681 sql::Statement s(db.GetUniqueStatement(
682 "SELECT mime_type, original_mime_type from downloads"));
683 EXPECT_TRUE(s.Step());
684 EXPECT_EQ(std::string(), s.ColumnString(0));
685 EXPECT_EQ(std::string(), s.ColumnString(1));
686 }
687 }
688 }
689
620 TEST_F(HistoryBackendDBTest, ConfirmDownloadRowCreateAndDelete) { 690 TEST_F(HistoryBackendDBTest, ConfirmDownloadRowCreateAndDelete) {
621 // Create the DB. 691 // Create the DB.
622 CreateBackendAndDatabase(); 692 CreateBackendAndDatabase();
623 693
624 base::Time now(base::Time::Now()); 694 base::Time now(base::Time::Now());
625 695
626 // Add some downloads. 696 // Add some downloads.
627 uint32 id1 = 1, id2 = 2, id3 = 3; 697 uint32 id1 = 1, id2 = 2, id3 = 3;
628 AddDownload(id1, DownloadItem::COMPLETE, now); 698 AddDownload(id1, DownloadItem::COMPLETE, now);
629 AddDownload(id2, DownloadItem::COMPLETE, now + base::TimeDelta::FromDays(2)); 699 AddDownload(id2, DownloadItem::COMPLETE, now + base::TimeDelta::FromDays(2));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 } 736 }
667 737
668 TEST_F(HistoryBackendDBTest, DownloadNukeRecordsMissingURLs) { 738 TEST_F(HistoryBackendDBTest, DownloadNukeRecordsMissingURLs) {
669 CreateBackendAndDatabase(); 739 CreateBackendAndDatabase();
670 base::Time now(base::Time::Now()); 740 base::Time now(base::Time::Now());
671 std::vector<GURL> url_chain; 741 std::vector<GURL> url_chain;
672 DownloadRow download(base::FilePath(FILE_PATH_LITERAL("foo-path")), 742 DownloadRow download(base::FilePath(FILE_PATH_LITERAL("foo-path")),
673 base::FilePath(FILE_PATH_LITERAL("foo-path")), 743 base::FilePath(FILE_PATH_LITERAL("foo-path")),
674 url_chain, 744 url_chain,
675 GURL(std::string()), 745 GURL(std::string()),
746 "application/octet-stream",
747 "application/octet-stream",
676 now, 748 now,
677 now, 749 now,
678 std::string(), 750 std::string(),
679 std::string(), 751 std::string(),
680 0, 752 0,
681 512, 753 512,
682 DownloadItem::COMPLETE, 754 DownloadItem::COMPLETE,
683 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, 755 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
684 content::DOWNLOAD_INTERRUPT_REASON_NONE, 756 content::DOWNLOAD_INTERRUPT_REASON_NONE,
685 1, 757 1,
(...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1880 std::vector<PageUsageData*> results; 1952 std::vector<PageUsageData*> results;
1881 db_->QuerySegmentUsage(segment_time, 10, &results); 1953 db_->QuerySegmentUsage(segment_time, 10, &results);
1882 ASSERT_EQ(1u, results.size()); 1954 ASSERT_EQ(1u, results.size());
1883 EXPECT_EQ(url, results[0]->GetURL()); 1955 EXPECT_EQ(url, results[0]->GetURL());
1884 EXPECT_EQ(segment_id, results[0]->GetID()); 1956 EXPECT_EQ(segment_id, results[0]->GetID());
1885 EXPECT_EQ(title, results[0]->GetTitle()); 1957 EXPECT_EQ(title, results[0]->GetTitle());
1886 STLDeleteElements(&results); 1958 STLDeleteElements(&results);
1887 } 1959 }
1888 1960
1889 } // namespace history 1961 } // namespace history
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698