Chromium Code Reviews| Index: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
| diff --git a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
| index 7e19b38216a445aacbfd1eaa1597c1dbe6d2ec2d..5f806146dc29d9e935e4060faa6f973718529964 100644 |
| --- a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
| +++ b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
| @@ -27,6 +27,7 @@ class ResourcePrefetchPredictorTablesTest : public testing::Test { |
| void TearDown() override; |
| protected: |
| + void ReopenDatabase(); |
| void TestGetAllData(); |
| void TestUpdateData(); |
| void TestDeleteData(); |
| @@ -39,11 +40,12 @@ class ResourcePrefetchPredictorTablesTest : public testing::Test { |
| std::unique_ptr<PredictorDatabase> db_; |
| scoped_refptr<ResourcePrefetchPredictorTables> tables_; |
| + typedef ResourcePrefetchPredictorTables::PrefetchDataMap PrefetchDataMap; |
|
pasko
2016/08/26 17:52:18
nit: using ResourcePrefetchPredictorTables::Prefet
Benoit L
2016/08/29 08:57:16
Done.
|
| + |
| private: |
| typedef ResourcePrefetchPredictorTables::ResourceRow ResourceRow; |
| typedef std::vector<ResourceRow> ResourceRows; |
| typedef ResourcePrefetchPredictorTables::PrefetchData PrefetchData; |
| - typedef ResourcePrefetchPredictorTables::PrefetchDataMap PrefetchDataMap; |
| // Initializes the tables, |test_url_data_| and |test_host_data_|. |
| void InitializeSampleData(); |
| @@ -85,9 +87,7 @@ class ResourcePrefetchPredictorTablesReopenTest |
| ResourcePrefetchPredictorTablesTest::SetUp(); |
| ResourcePrefetchPredictorTablesTest::TearDown(); |
| - db_.reset(new PredictorDatabase(&profile_)); |
| - base::RunLoop().RunUntilIdle(); |
| - tables_ = db_->resource_prefetch_tables(); |
| + ReopenDatabase(); |
| } |
| }; |
| @@ -361,6 +361,12 @@ void ResourcePrefetchPredictorTablesTest::InitializeSampleData() { |
| } |
| } |
| +void ResourcePrefetchPredictorTablesTest::ReopenDatabase() { |
| + db_.reset(new PredictorDatabase(&profile_)); |
| + base::RunLoop().RunUntilIdle(); |
| + tables_ = db_->resource_prefetch_tables(); |
| +} |
| + |
| // Test cases. |
| TEST_F(ResourcePrefetchPredictorTablesTest, ComputeScore) { |
| @@ -405,6 +411,31 @@ TEST_F(ResourcePrefetchPredictorTablesTest, DeleteAllData) { |
| TestDeleteAllData(); |
| } |
| +TEST_F(ResourcePrefetchPredictorTablesTest, DatabaseVersionIsSet) { |
| + sql::Connection* db = tables_->DB(); |
| + const int version = ResourcePrefetchPredictorTables::kDatabaseVersion; |
| + EXPECT_EQ(version, ResourcePrefetchPredictorTables::GetDatabaseVersion(db)); |
| +} |
| + |
| +TEST_F(ResourcePrefetchPredictorTablesTest, DatabaseIsResetWhenIncompatible) { |
| + const int version = ResourcePrefetchPredictorTables::kDatabaseVersion; |
| + sql::Connection* db = tables_->DB(); |
| + ASSERT_TRUE( |
| + ResourcePrefetchPredictorTables::SetDatabaseVersion(db, version + 1)); |
| + EXPECT_EQ(version + 1, |
| + ResourcePrefetchPredictorTables::GetDatabaseVersion(db)); |
| + |
| + ReopenDatabase(); |
| + |
| + db = tables_->DB(); |
| + ASSERT_EQ(version, ResourcePrefetchPredictorTables::GetDatabaseVersion(db)); |
| + |
| + PrefetchDataMap url_data, host_data; |
| + tables_->GetAllData(&url_data, &host_data); |
| + EXPECT_TRUE(url_data.empty()); |
| + EXPECT_TRUE(host_data.empty()); |
| +} |
| + |
| TEST_F(ResourcePrefetchPredictorTablesReopenTest, GetAllData) { |
| TestGetAllData(); |
| } |