| 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..59f4906c2d8f13d9ad07891e2b9e744fdfb06dbe 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,27 +26,32 @@ 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_ == StoreState::LOADED));
|
| +}
|
| +
|
| +void OfflinePageTestStore::GetOfflinePages(const LoadCallback& callback) {
|
| + task_runner_->PostTask(FROM_HERE, base::Bind(callback, GetAllPages()));
|
| }
|
|
|
| void OfflinePageTestStore::AddOfflinePage(const OfflinePageItem& offline_page,
|
| const AddCallback& callback) {
|
| // TODO(fgorski): Add and cover scenario with existing item.
|
| ItemActionStatus result;
|
| - if (scenario_ == TestScenario::SUCCESSFUL) {
|
| + if (store_state_ == StoreState::LOADED &&
|
| + scenario_ != TestScenario::WRITE_FAILED) {
|
| offline_pages_[offline_page.offline_id] = offline_page;
|
| last_saved_page_ = offline_page;
|
| result = ItemActionStatus::SUCCESS;
|
| - } else if (scenario_ == TestScenario::WRITE_FAILED) {
|
| + } else {
|
| result = ItemActionStatus::STORE_ERROR;
|
| }
|
| if (!callback.is_null())
|
| @@ -112,12 +119,22 @@ void OfflinePageTestStore::RemoveOfflinePages(
|
| }
|
|
|
| void OfflinePageTestStore::Reset(const ResetCallback& callback) {
|
| + if (scenario_ == TestScenario::LOAD_FAILED_RESET_FAILED) {
|
| + store_state_ = StoreState::FAILED_RESET;
|
| + } else {
|
| + store_state_ = StoreState::NOT_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::NOT_LOADED));
|
| }
|
|
|
| StoreState OfflinePageTestStore::state() const {
|
| - return StoreState::LOADED;
|
| + return store_state_;
|
| }
|
|
|
| void OfflinePageTestStore::UpdateLastAccessTime(
|
|
|