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

Unified Diff: components/offline_pages/offline_page_metadata_store_impl_unittest.cc

Issue 2497703002: [Offline pages] Resetting offline page metadata store to handle LOAD/INIT failures (Closed)
Patch Set: Addressing STORE_INIT_FAILED Created 4 years, 1 month 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/offline_pages/offline_page_metadata_store_impl_unittest.cc
diff --git a/components/offline_pages/offline_page_metadata_store_impl_unittest.cc b/components/offline_pages/offline_page_metadata_store_impl_unittest.cc
index fd89194257ff7256bbca98d6e7856726e6912994..eb754631529f778dbff3e1f53acd90d1fd710a00 100644
--- a/components/offline_pages/offline_page_metadata_store_impl_unittest.cc
+++ b/components/offline_pages/offline_page_metadata_store_impl_unittest.cc
@@ -230,13 +230,13 @@ class OfflinePageMetadataStoreTest : public testing::Test {
void PumpLoop();
+ void InitializeCallback(StoreState state);
void GetOfflinePagesCallback(
- OfflinePageMetadataStore::LoadStatus load_status,
const std::vector<OfflinePageItem>& offline_pages);
void AddCallback(ItemActionStatus status);
void UpdateCallback(CalledCallback called_callback,
std::unique_ptr<OfflinePagesUpdateResult> result);
- void ResetCallback(bool status);
+ void ResetCallback(StoreState state);
void ClearResults();
@@ -274,12 +274,13 @@ void OfflinePageMetadataStoreTest::PumpLoop() {
task_runner_->RunUntilIdle();
}
+void OfflinePageMetadataStoreTest::InitializeCallback(StoreState state) {
+ last_status_ = state == StoreState::LOADED ? STATUS_TRUE : STATUS_FALSE;
+}
+
void OfflinePageMetadataStoreTest::GetOfflinePagesCallback(
- OfflinePageMetadataStore::LoadStatus load_status,
const std::vector<OfflinePageItem>& offline_pages) {
last_called_callback_ = LOAD;
- last_status_ = load_status == OfflinePageMetadataStore::LOAD_SUCCEEDED ?
- STATUS_TRUE : STATUS_FALSE;
offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages));
}
@@ -299,9 +300,9 @@ void OfflinePageMetadataStoreTest::UpdateCallback(
last_update_result_ = std::move(result);
}
-void OfflinePageMetadataStoreTest::ResetCallback(bool status) {
+void OfflinePageMetadataStoreTest::ResetCallback(StoreState state) {
last_called_callback_ = RESET;
- last_status_ = status ? STATUS_TRUE : STATUS_FALSE;
+ last_status_ = state == StoreState::LOADED ? STATUS_TRUE : STATUS_FALSE;
}
void OfflinePageMetadataStoreTest::ClearResults() {
@@ -356,6 +357,10 @@ OfflinePageMetadataStoreTest::BuildStore() {
std::unique_ptr<OfflinePageMetadataStore> store(
factory_.BuildStore(temp_directory_.GetPath()));
PumpLoop();
+ store->Initialize(
+ base::Bind(&OfflinePageMetadataStoreTest::InitializeCallback,
+ base::Unretained(this)));
+ PumpLoop();
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
@@ -368,6 +373,10 @@ OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM52() {
std::unique_ptr<OfflinePageMetadataStore> store(
factory_.BuildStoreM52(temp_directory_.GetPath()));
PumpLoop();
+ store->Initialize(
+ base::Bind(&OfflinePageMetadataStoreTest::InitializeCallback,
+ base::Unretained(this)));
+ PumpLoop();
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
@@ -380,6 +389,10 @@ OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM53() {
std::unique_ptr<OfflinePageMetadataStore> store(
factory_.BuildStoreM53(temp_directory_.GetPath()));
PumpLoop();
+ store->Initialize(
+ base::Bind(&OfflinePageMetadataStoreTest::InitializeCallback,
+ base::Unretained(this)));
+ PumpLoop();
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
@@ -392,6 +405,10 @@ OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM54() {
std::unique_ptr<OfflinePageMetadataStore> store(
factory_.BuildStoreM53(temp_directory_.GetPath()));
PumpLoop();
+ store->Initialize(
+ base::Bind(&OfflinePageMetadataStoreTest::InitializeCallback,
+ base::Unretained(this)));
+ PumpLoop();
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
@@ -420,8 +437,9 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
+ EXPECT_EQ(StoreState::NOT_LOADED, store->state());
+ ClearResults();
sql_store->SetStateForTesting(StoreState::FAILED_LOADING, false);
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
@@ -429,8 +447,9 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
+ EXPECT_EQ(StoreState::FAILED_LOADING, store->state());
+ ClearResults();
sql_store->SetStateForTesting(StoreState::FAILED_RESET, false);
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
@@ -438,8 +457,9 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
+ EXPECT_EQ(StoreState::FAILED_RESET, store->state());
+ ClearResults();
sql_store->SetStateForTesting(StoreState::LOADED, true);
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
@@ -447,8 +467,8 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
+ ClearResults();
sql_store->SetStateForTesting(StoreState::NOT_LOADED, true);
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
@@ -456,8 +476,8 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
+ ClearResults();
sql_store->SetStateForTesting(StoreState::FAILED_LOADING, false);
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
@@ -465,8 +485,8 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
+ ClearResults();
sql_store->SetStateForTesting(StoreState::FAILED_RESET, false);
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
@@ -474,8 +494,6 @@ TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
EXPECT_EQ(0UL, offline_pages_.size());
- EXPECT_EQ(STATUS_FALSE, last_status_);
-
}
// Loads a store which has an outdated schema.
@@ -567,7 +585,7 @@ TEST_F(OfflinePageMetadataStoreTest, RemoveOfflinePage) {
ClearResults();
- // Load the store.
+ // Get all pages from the store.
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
@@ -593,7 +611,7 @@ TEST_F(OfflinePageMetadataStoreTest, RemoveOfflinePage) {
ClearResults();
- // Load the store.
+ // Get all pages from the store.
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
@@ -643,14 +661,13 @@ TEST_F(OfflinePageMetadataStoreTest, AddRemoveMultipleOfflinePages) {
ClearResults();
- // Load the store.
+ // Get all pages from the store.
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
- EXPECT_EQ(STATUS_TRUE, last_status_);
EXPECT_EQ(2U, offline_pages_.size());
// Remove the offline page.
@@ -715,7 +732,6 @@ TEST_F(OfflinePageMetadataStoreTest, UpdateOfflinePage) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
- EXPECT_EQ(STATUS_TRUE, last_status_);
ASSERT_EQ(1U, offline_pages_.size());
EXPECT_EQ(offline_page, offline_pages_[0]);
@@ -745,7 +761,6 @@ TEST_F(OfflinePageMetadataStoreTest, UpdateOfflinePage) {
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
- EXPECT_EQ(STATUS_TRUE, last_status_);
ASSERT_EQ(1U, offline_pages_.size());
EXPECT_EQ(offline_page, offline_pages_[0]);
}
@@ -776,14 +791,13 @@ TEST_F(OfflinePageMetadataStoreTest, ClearAllOfflinePages) {
ClearResults();
- // Load the store.
+ // Get all pages from the store.
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
- EXPECT_EQ(STATUS_TRUE, last_status_);
EXPECT_EQ(2U, offline_pages_.size());
// Clear all records from the store.
@@ -793,14 +807,15 @@ TEST_F(OfflinePageMetadataStoreTest, ClearAllOfflinePages) {
EXPECT_EQ(RESET, last_called_callback_);
EXPECT_EQ(STATUS_TRUE, last_status_);
- // Load the store.
+ ClearResults();
+
+ // Get all pages from the store.
store->GetOfflinePages(
base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
base::Unretained(this)));
PumpLoop();
EXPECT_EQ(LOAD, last_called_callback_);
- EXPECT_EQ(STATUS_TRUE, last_status_);
ASSERT_EQ(0U, offline_pages_.size());
}

Powered by Google App Engine
This is Rietveld 408576698