Commit 98f5be3b authored by Josh Karlin's avatar Josh Karlin Committed by Commit Bot

[Project Code Inclusion] Rename blacklist in sqlite database to blocklist

Renames the table from sites_blacklist to sites_blocklist. This
required bumping the database version up to 3. Modified the test
databases to include a row to ensure that it's correctly carried over
when migrgated.

Bug: 1097286
Change-Id: I96d997377ae854fef23920f5f1b77a6ec773d247
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2495696Reviewed-by: default avatarJustin DeWitt <dewittj@chromium.org>
Reviewed-by: default avatarPeter Williamson <petewil@chromium.org>
Commit-Queue: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825662}
parent 82f5a2c7
......@@ -16,7 +16,7 @@
namespace explore_sites {
namespace {
static const char kBlockSiteSql[] = R"(INSERT INTO site_blacklist
static const char kBlockSiteSql[] = R"(INSERT INTO site_blocklist
(url, date_removed)
VALUES
(?, ?);)";
......
......@@ -100,7 +100,7 @@ TEST_F(ExploreSitesBlockSiteTest, EmptyUrlTask) {
// and that activity table is not modified.
ExecuteSync(base::BindLambdaForTesting([&](sql::Database* db) {
sql::Statement cat_count_s(
db->GetUniqueStatement("SELECT COUNT(*) FROM site_blacklist"));
db->GetUniqueStatement("SELECT COUNT(*) FROM site_blocklist"));
cat_count_s.Step();
EXPECT_EQ(0, cat_count_s.ColumnInt(0));
......@@ -126,12 +126,12 @@ TEST_F(ExploreSitesBlockSiteTest, ValidUrlTask) {
// kGoogleUrl-related activity is removed from the activity table.
ExecuteSync(base::BindLambdaForTesting([&](sql::Database* db) {
sql::Statement cat_count_s(
db->GetUniqueStatement("SELECT COUNT(*) FROM site_blacklist"));
db->GetUniqueStatement("SELECT COUNT(*) FROM site_blocklist"));
cat_count_s.Step();
EXPECT_EQ(1, cat_count_s.ColumnInt(0));
sql::Statement cat_data_s(
db->GetUniqueStatement("SELECT url FROM site_blacklist"));
db->GetUniqueStatement("SELECT url FROM site_blocklist"));
cat_data_s.Step();
EXPECT_EQ(kGoogleUrl, cat_data_s.ColumnString(0));
......
......@@ -72,7 +72,7 @@ bool CreateActivityTable(sql::Database* db) {
}
static const char kSiteBlocklistTableCreationSql[] =
"CREATE TABLE IF NOT EXISTS site_blacklist ("
"CREATE TABLE IF NOT EXISTS site_blocklist ("
"url TEXT NOT NULL UNIQUE, "
"date_removed INTEGER NOT NULL);"; // stored as unix timestamp
......@@ -107,6 +107,19 @@ int MigrateFrom1To2(sql::Database* db, sql::MetaTable* meta_table) {
return 1;
}
int MigrateFrom2To3(sql::Database* db, sql::MetaTable* meta_table) {
// Version 3 renames a table.
const int target_version = 3;
static const char k2To3Sql[] =
"ALTER TABLE site_blacklist RENAME TO site_blocklist;";
sql::Transaction transaction(db);
if (transaction.Begin() && db->Execute(k2To3Sql) && transaction.Commit()) {
meta_table->SetVersionNumber(target_version);
return target_version;
}
return 2;
}
} // namespace
// static
......@@ -156,6 +169,9 @@ bool ExploreSitesSchema::CreateOrUpgradeIfNeeded(sql::Database* db) {
if (current_version == 1)
current_version = MigrateFrom1To2(db, &meta_table);
if (current_version == 2)
current_version = MigrateFrom2To3(db, &meta_table);
return current_version == kCurrentVersion;
}
......
......@@ -19,7 +19,7 @@ namespace explore_sites {
// upgrades from any and all previous database versions to the latest.
class ExploreSitesSchema {
public:
static constexpr int kCurrentVersion = 2;
static constexpr int kCurrentVersion = 3;
static constexpr int kCompatibleVersion = 1;
static const char kCurrentCatalogKey[];
......
......@@ -112,6 +112,7 @@ std::string TableSql(sql::Database* db, const std::string& table_name) {
base::ReplaceSubstringsAfterOffset(&sql, 0, ", ", ",");
base::ReplaceSubstringsAfterOffset(&sql, 0, ",", ",\n");
base::ReplaceSubstringsAfterOffset(&sql, 0, " (", "(");
base::ReplaceSubstringsAfterOffset(&sql, 0, "\"", "");
return sql;
}
......@@ -173,7 +174,7 @@ class ExploreSitesSchemaTest : public testing::Test {
void CheckTablesExistence() {
EXPECT_TRUE(db_->DoesTableExist("sites"));
EXPECT_TRUE(db_->DoesTableExist("categories"));
EXPECT_TRUE(db_->DoesTableExist("site_blacklist"));
EXPECT_TRUE(db_->DoesTableExist("site_blocklist"));
EXPECT_TRUE(db_->DoesTableExist("activity"));
}
......@@ -217,7 +218,7 @@ TEST_F(ExploreSitesSchemaTest, TestMissingTablesAreRecreated) {
EXPECT_TRUE(ExploreSitesSchema::CreateOrUpgradeIfNeeded(db_.get()));
CheckTablesExistence();
EXPECT_TRUE(db_->Execute("DROP TABLE site_blacklist"));
EXPECT_TRUE(db_->Execute("DROP TABLE site_blocklist"));
EXPECT_TRUE(ExploreSitesSchema::CreateOrUpgradeIfNeeded(db_.get()));
CheckTablesExistence();
......
......@@ -26,9 +26,9 @@ ORDER BY category_id ASC;)";
static const char kSelectSiteSql[] =
R"(SELECT site_id, sites.url, title,
site_blacklist.url IS NOT NULL as blacklisted
site_blocklist.url IS NOT NULL as blocked
FROM sites
LEFT JOIN site_blacklist ON (sites.url = site_blacklist.url)
LEFT JOIN site_blocklist ON (sites.url = site_blocklist.url)
WHERE category_id = ? ;)";
const char kDeleteSiteSql[] = R"(DELETE FROM sites
......
......@@ -19,18 +19,18 @@ namespace {
const char kSelectCategoryImagesSql[] = R"(SELECT favicon
FROM sites
LEFT JOIN site_blacklist ON (sites.url = site_blacklist.url)
LEFT JOIN site_blocklist ON (sites.url = site_blocklist.url)
WHERE category_id = ? AND LENGTH(favicon) > 0 AND NOT removed
AND site_blacklist.url IS NULL
AND site_blocklist.url IS NULL
LIMIT ?;)";
const char kSelectSummaryImagesSql[] = R"(SELECT favicon
FROM sites
INNER JOIN categories ON (sites.category_id = categories.category_id)
LEFT JOIN site_blacklist ON (sites.url = site_blacklist.url)
LEFT JOIN site_blocklist ON (sites.url = site_blocklist.url)
WHERE LENGTH(favicon) > 0 AND NOT removed
AND version_token = ?
AND site_blacklist.url IS NULL
AND site_blocklist.url IS NULL
ORDER BY sites.category_id ASC, sites.site_id ASC
LIMIT ?;)";
......
......@@ -195,7 +195,7 @@ TEST_F(ExploreSitesGetImagesTaskTest, SitesExistAndBlocked) {
PopulateTestingCatalog();
ExecuteSync(base::BindLambdaForTesting([&](sql::Database* db) {
sql::Statement insert(db->GetUniqueStatement(R"(
INSERT INTO site_blacklist
INSERT INTO site_blocklist
(url, date_removed)
VALUES
("https://www.example.com/1", 123);)"));
......
......@@ -9,7 +9,10 @@ image: ""
ntp_click_count: "0"
esp_site_click_count: "0"
ntp_shown_count: "0"
-- TABLE site_blacklist --
-- TABLE site_blocklist --
--- ROW 0 ---
url: "http://www.example.com"
date_removed: "1"
-- TABLE sites --
--- ROW 0 ---
site_id: "1"
......
......@@ -35,3 +35,7 @@ url TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS site_blacklist
(url TEXT NOT NULL UNIQUE,
date_removed INTEGER NOT NULL);
INSERT INTO site_blacklist
(url, date_removed)
VALUES ('http://www.example.com', 1);
\ No newline at end of file
......@@ -9,7 +9,10 @@ image: ""
ntp_click_count: "0"
esp_site_click_count: "0"
ntp_shown_count: "3"
-- TABLE site_blacklist --
-- TABLE site_blocklist --
--- ROW 0 ---
url: "http://www.example.com"
date_removed: "1"
-- TABLE sites --
--- ROW 0 ---
site_id: "1"
......
......@@ -39,3 +39,7 @@ url TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS site_blacklist (
url TEXT NOT NULL UNIQUE,
date_removed INTEGER NOT NULL);
INSERT INTO site_blacklist
(url, date_removed)
VALUES ('http://www.example.com', 1);
\ No newline at end of file
-- TABLE activity --
-- TABLE categories --
--- ROW 0 ---
category_id: "1"
version_token: "versionToken"
type: "3"
label: "category1"
image: ""
ntp_click_count: "0"
esp_site_click_count: "0"
ntp_shown_count: "3"
-- TABLE site_blocklist --
--- ROW 0 ---
url: "http://www.example.com"
date_removed: "1"
-- TABLE sites --
--- ROW 0 ---
site_id: "1"
url: "http://www.google.com"
category_id: "1"
title: "site1"
favicon: ""
click_count: "0"
removed: "0"
INSERT OR REPLACE INTO meta (key, value)
VALUES ("version", 3), ("last_compatible_version", 1);
CREATE TABLE IF NOT EXISTS categories (
category_id INTEGER PRIMARY KEY AUTOINCREMENT,
version_token TEXT NOT NULL,
type INTEGER NOT NULL,
label TEXT NOT NULL,
image BLOB,
ntp_click_count INTEGER NOT NULL DEFAULT 0,
esp_site_click_count INTEGER NOT NULL DEFAULT 0,
ntp_shown_count INTEGER NOT NULL DEFAULT 0);
INSERT INTO categories
(version_token,
type,
label,
ntp_shown_count)
VALUES ('versionToken', 3, 'category1', 3);
CREATE TABLE IF NOT EXISTS sites (
site_id INTEGER PRIMARY KEY AUTOINCREMENT,
url TEXT NOT NULL,
category_id INTEGER NOT NULL,
title TEXT NOT NULL,
favicon BLOB,
click_count INTEGER NOT NULL DEFAULT 0,
removed BOOLEAN NOT NULL default FALSE);
INSERT INTO sites
(url, category_id, title)
VALUES ('http://www.google.com', 1, 'site1');
CREATE TABLE IF NOT EXISTS activity (
time INTEGER NOT NULL,
category_type INTEGER NOT NULL,
url TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS site_blocklist (
url TEXT NOT NULL UNIQUE,
date_removed INTEGER NOT NULL);
INSERT INTO site_blocklist
(url, date_removed)
VALUES ('http://www.example.com', 1);
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment