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

Unified Diff: components/offline_pages/offline_page_test_store.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_test_store.cc
diff --git a/components/offline_pages/offline_page_test_store.cc b/components/offline_pages/offline_page_test_store.cc
index 70b91c4e0116306876f4ef4a704cb2a076fa1d14..5d0604de803109e127f788c129ed931534920ba9 100644
--- a/components/offline_pages/offline_page_test_store.cc
+++ b/components/offline_pages/offline_page_test_store.cc
@@ -14,7 +14,9 @@ namespace offline_pages {
OfflinePageTestStore::OfflinePageTestStore(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
- : task_runner_(task_runner), scenario_(TestScenario::SUCCESSFUL) {}
+ : task_runner_(task_runner),
+ scenario_(TestScenario::SUCCESSFUL),
+ store_state_(StoreState::NOT_LOADED) {}
OfflinePageTestStore::OfflinePageTestStore(
const OfflinePageTestStore& other_store)
@@ -24,16 +26,19 @@ OfflinePageTestStore::OfflinePageTestStore(
OfflinePageTestStore::~OfflinePageTestStore() {}
-void OfflinePageTestStore::GetOfflinePages(const LoadCallback& callback) {
- OfflinePageMetadataStore::LoadStatus load_status;
- if (scenario_ == TestScenario::LOAD_FAILED) {
- load_status = OfflinePageMetadataStore::STORE_LOAD_FAILED;
+void OfflinePageTestStore::Initialize(const InitializeCallback& callback) {
+ if (scenario_ == TestScenario::LOAD_FAILED_RESET_FAILED ||
+ scenario_ == TestScenario::LOAD_FAILED_RESET_SUCCESS) {
+ store_state_ = StoreState::FAILED_LOADING;
offline_pages_.clear();
} else {
- load_status = OfflinePageMetadataStore::LOAD_SUCCEEDED;
+ store_state_ = StoreState::LOADED;
}
- task_runner_->PostTask(FROM_HERE,
- base::Bind(callback, load_status, GetAllPages()));
+ task_runner_->PostTask(FROM_HERE, base::Bind(callback, store_state_));
+}
+
+void OfflinePageTestStore::GetOfflinePages(const LoadCallback& callback) {
+ task_runner_->PostTask(FROM_HERE, base::Bind(callback, GetAllPages()));
}
void OfflinePageTestStore::AddOfflinePage(const OfflinePageItem& offline_page,
@@ -111,13 +116,22 @@ void OfflinePageTestStore::RemoveOfflinePages(
base::Bind(callback, base::Passed(&result)));
}
-void OfflinePageTestStore::Reset(const ResetCallback& callback) {
+void OfflinePageTestStore::Reset(const InitializeCallback& callback) {
+ if (scenario_ == TestScenario::LOAD_FAILED_RESET_FAILED) {
+ store_state_ = StoreState::FAILED_RESET;
+ } else {
+ store_state_ = StoreState::LOADED;
+ // Scenario is flipped to successful here, as the reset succeeds.
+ if (scenario_ == TestScenario::LOAD_FAILED_RESET_SUCCESS)
+ scenario_ = TestScenario::SUCCESSFUL;
+ }
+
offline_pages_.clear();
- task_runner_->PostTask(FROM_HERE, base::Bind(callback, true));
+ task_runner_->PostTask(FROM_HERE, base::Bind(callback, store_state_));
}
StoreState OfflinePageTestStore::state() const {
- return StoreState::LOADED;
+ return store_state_;
}
void OfflinePageTestStore::UpdateLastAccessTime(

Powered by Google App Engine
This is Rietveld 408576698