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

Unified Diff: components/precache/core/precache_url_table_unittest.cc

Issue 2586813004: Report downloaded resources at most once (Closed)
Patch Set: Fix race condition in PrecacheFetcherTest due to MaybePost Created 4 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 side-by-side diff with in-line comments
Download patch
Index: components/precache/core/precache_url_table_unittest.cc
diff --git a/components/precache/core/precache_url_table_unittest.cc b/components/precache/core/precache_url_table_unittest.cc
index 6a764e30b2f53826b85728712833c0afc9719592..4c803270bd2c0b62e4cabf3c64986479a6ac65ad 100644
--- a/components/precache/core/precache_url_table_unittest.cc
+++ b/components/precache/core/precache_url_table_unittest.cc
@@ -8,6 +8,8 @@
#include <memory>
#include <set>
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/compiler_specific.h"
#include "base/time/time.h"
#include "sql/connection.h"
@@ -33,17 +35,24 @@ class PrecacheURLTableTest : public testing::Test {
void SetUp() override {
precache_url_table_.reset(new PrecacheURLTable());
db_.reset(new sql::Connection());
+ db_->set_error_callback(base::Bind(&PrecacheURLTableTest::SqlErrorCallback,
+ base::Unretained(this)));
ASSERT_TRUE(db_->OpenInMemory());
ASSERT_TRUE(precache_url_table_->Init(db_.get()));
}
+ void SqlErrorCallback(int line, sql::Statement* statement) {
+ LOG(INFO) << "SQL Error at line " << line << ": "
+ << statement->GetSQLStatement();
+ }
+
std::unique_ptr<PrecacheURLTable> precache_url_table_;
std::unique_ptr<sql::Connection> db_;
};
TEST_F(PrecacheURLTableTest, AddURLWithNoExistingRow) {
const base::Time kTime = base::Time::FromInternalValue(100);
- precache_url_table_->AddURL(GURL("http://url.com"), 1, true, kTime);
+ precache_url_table_->AddURL(GURL("http://url.com"), 1, true, true, kTime);
std::map<GURL, base::Time> expected_map;
expected_map[GURL("http://url.com")] = kTime;
@@ -53,11 +62,25 @@ TEST_F(PrecacheURLTableTest, AddURLWithNoExistingRow) {
EXPECT_EQ(expected_map, actual_map);
}
-TEST_F(PrecacheURLTableTest, AddURLWithExistingRow) {
+TEST_F(PrecacheURLTableTest, AddURLWithExistingRowCached) {
+ const base::Time kOldTime = base::Time::FromInternalValue(50);
+ const base::Time kNewTime = base::Time::FromInternalValue(100);
+ precache_url_table_->AddURL(GURL("http://url.com"), 1, true, true, kOldTime);
+ precache_url_table_->AddURL(GURL("http://url.com"), 1, true, true, kNewTime);
+
+ std::map<GURL, base::Time> expected_map;
+ expected_map[GURL("http://url.com")] = kNewTime;
+
+ std::map<GURL, base::Time> actual_map;
+ precache_url_table_->GetAllDataForTesting(&actual_map);
+ EXPECT_EQ(expected_map, actual_map);
+}
+
+TEST_F(PrecacheURLTableTest, AddURLWithExistingRowNotCached) {
const base::Time kOldTime = base::Time::FromInternalValue(50);
const base::Time kNewTime = base::Time::FromInternalValue(100);
- precache_url_table_->AddURL(GURL("http://url.com"), 1, true, kOldTime);
- precache_url_table_->AddURL(GURL("http://url.com"), 1, true, kNewTime);
+ precache_url_table_->AddURL(GURL("http://url.com"), 1, true, false, kOldTime);
+ precache_url_table_->AddURL(GURL("http://url.com"), 1, true, false, kNewTime);
std::map<GURL, base::Time> expected_map;
expected_map[GURL("http://url.com")] = kNewTime;
@@ -71,8 +94,9 @@ TEST_F(PrecacheURLTableTest, SetURLAsNotPrecached) {
const base::Time kStaysTime = base::Time::FromInternalValue(50);
const base::Time kDeletedTime = base::Time::FromInternalValue(100);
- precache_url_table_->AddURL(GURL("http://stays.com"), 1, true, kStaysTime);
- precache_url_table_->AddURL(GURL("http://deleted.com"), 1, true,
+ precache_url_table_->AddURL(GURL("http://stays.com"), 1, true, true,
+ kStaysTime);
+ precache_url_table_->AddURL(GURL("http://deleted.com"), 1, true, true,
kDeletedTime);
precache_url_table_->SetURLAsNotPrecached(GURL("http://deleted.com"));
@@ -91,7 +115,8 @@ TEST_F(PrecacheURLTableTest, GetURLInfo) {
EXPECT_EQ((PrecacheURLInfo{false, false, false}),
precache_url_table_->GetURLInfo(url));
- precache_url_table_->AddURL(url, 1, true, base::Time::FromInternalValue(100));
+ precache_url_table_->AddURL(url, 1, true, true,
+ base::Time::FromInternalValue(100));
EXPECT_EQ((PrecacheURLInfo{true, true, false}),
precache_url_table_->GetURLInfo(url));
@@ -101,7 +126,8 @@ TEST_F(PrecacheURLTableTest, GetURLInfo) {
EXPECT_EQ((PrecacheURLInfo{true, false, true}),
precache_url_table_->GetURLInfo(url));
- precache_url_table_->AddURL(url, 1, true, base::Time::FromInternalValue(100));
+ precache_url_table_->AddURL(url, 1, true, true,
+ base::Time::FromInternalValue(100));
EXPECT_EQ((PrecacheURLInfo{true, true, false}),
precache_url_table_->GetURLInfo(url));
@@ -118,10 +144,12 @@ TEST_F(PrecacheURLTableTest, DeleteAllPrecachedBefore) {
const base::Time kEndTime = base::Time::FromInternalValue(30);
const base::Time kAfterTime = base::Time::FromInternalValue(40);
- precache_url_table_->AddURL(GURL("http://old.com"), 1, true, kOldTime);
- precache_url_table_->AddURL(GURL("http://before.com"), 1, true, kBeforeTime);
- precache_url_table_->AddURL(GURL("http://end.com"), 1, true, kEndTime);
- precache_url_table_->AddURL(GURL("http://after.com"), 1, true, kAfterTime);
+ precache_url_table_->AddURL(GURL("http://old.com"), 1, true, true, kOldTime);
+ precache_url_table_->AddURL(GURL("http://before.com"), 1, true, true,
+ kBeforeTime);
+ precache_url_table_->AddURL(GURL("http://end.com"), 1, true, true, kEndTime);
+ precache_url_table_->AddURL(GURL("http://after.com"), 1, true, true,
+ kAfterTime);
precache_url_table_->DeleteAllPrecachedBefore(kEndTime);

Powered by Google App Engine
This is Rietveld 408576698