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

Side by Side Diff: components/offline_pages/offline_page_metadata_store_impl_unittest.cc

Issue 2384423003: [Offline pages] Resetting offline page metadata store if initial load fails (Closed)
Patch Set: Rebased and comments addressed Created 4 years, 2 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/offline_pages/offline_page_metadata_store.h" 5 #include "components/offline_pages/offline_page_metadata_store.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 } 224 }
225 225
226 std::unique_ptr<OfflinePageMetadataStore> BuildStore(); 226 std::unique_ptr<OfflinePageMetadataStore> BuildStore();
227 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM52(); 227 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM52();
228 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM53(); 228 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM53();
229 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM54(); 229 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM54();
230 230
231 void PumpLoop(); 231 void PumpLoop();
232 232
233 void GetOfflinePagesCallback( 233 void GetOfflinePagesCallback(
234 OfflinePageMetadataStore::LoadStatus load_status, 234 StoreState store_state,
235 const std::vector<OfflinePageItem>& offline_pages); 235 const std::vector<OfflinePageItem>& offline_pages);
236 void AddCallback(ItemActionStatus status); 236 void AddCallback(ItemActionStatus status);
237 void UpdateCallback(CalledCallback called_callback, 237 void UpdateCallback(CalledCallback called_callback,
238 std::unique_ptr<OfflinePagesUpdateResult> result); 238 std::unique_ptr<OfflinePagesUpdateResult> result);
239 void ResetCallback(bool status); 239 void ResetCallback(bool status);
240 240
241 void ClearResults(); 241 void ClearResults();
242 242
243 OfflinePageItem CheckThatStoreHasOneItem(); 243 OfflinePageItem CheckThatStoreHasOneItem();
244 void CheckThatOfflinePageCanBeSaved( 244 void CheckThatOfflinePageCanBeSaved(
(...skipping 23 matching lines...) Expand all
268 EXPECT_TRUE(temp_directory_.CreateUniqueTempDir()); 268 EXPECT_TRUE(temp_directory_.CreateUniqueTempDir());
269 } 269 }
270 270
271 OfflinePageMetadataStoreTest::~OfflinePageMetadataStoreTest() {} 271 OfflinePageMetadataStoreTest::~OfflinePageMetadataStoreTest() {}
272 272
273 void OfflinePageMetadataStoreTest::PumpLoop() { 273 void OfflinePageMetadataStoreTest::PumpLoop() {
274 task_runner_->RunUntilIdle(); 274 task_runner_->RunUntilIdle();
275 } 275 }
276 276
277 void OfflinePageMetadataStoreTest::GetOfflinePagesCallback( 277 void OfflinePageMetadataStoreTest::GetOfflinePagesCallback(
278 OfflinePageMetadataStore::LoadStatus load_status, 278 StoreState store_state,
279 const std::vector<OfflinePageItem>& offline_pages) { 279 const std::vector<OfflinePageItem>& offline_pages) {
280 last_called_callback_ = LOAD; 280 last_called_callback_ = LOAD;
281 last_status_ = load_status == OfflinePageMetadataStore::LOAD_SUCCEEDED ? 281 last_status_ = store_state == StoreState::LOADED ? STATUS_TRUE : STATUS_FALSE;
282 STATUS_TRUE : STATUS_FALSE;
283 offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages)); 282 offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages));
284 } 283 }
285 284
286 void OfflinePageMetadataStoreTest::AddCallback(ItemActionStatus status) { 285 void OfflinePageMetadataStoreTest::AddCallback(ItemActionStatus status) {
287 last_called_callback_ = ADD; 286 last_called_callback_ = ADD;
288 // TODO(fgorski): Add specific add status. 287 // TODO(fgorski): Add specific add status.
289 // last_item_status_ = status; 288 // last_item_status_ = status;
290 last_status_ = 289 last_status_ =
291 status == ItemActionStatus::SUCCESS ? STATUS_TRUE : STATUS_FALSE; 290 status == ItemActionStatus::SUCCESS ? STATUS_TRUE : STATUS_FALSE;
292 } 291 }
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 432
434 sql_store->SetStateForTesting(StoreState::FAILED_RESET, false); 433 sql_store->SetStateForTesting(StoreState::FAILED_RESET, false);
435 store->GetOfflinePages( 434 store->GetOfflinePages(
436 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 435 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
437 base::Unretained(this))); 436 base::Unretained(this)));
438 PumpLoop(); 437 PumpLoop();
439 EXPECT_EQ(LOAD, last_called_callback_); 438 EXPECT_EQ(LOAD, last_called_callback_);
440 EXPECT_EQ(0UL, offline_pages_.size()); 439 EXPECT_EQ(0UL, offline_pages_.size());
441 EXPECT_EQ(STATUS_FALSE, last_status_); 440 EXPECT_EQ(STATUS_FALSE, last_status_);
442 441
443 sql_store->SetStateForTesting(StoreState::LOADED, true);
444 store->GetOfflinePages(
445 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
446 base::Unretained(this)));
447 PumpLoop();
448 EXPECT_EQ(LOAD, last_called_callback_);
449 EXPECT_EQ(0UL, offline_pages_.size());
450 EXPECT_EQ(STATUS_FALSE, last_status_);
451
452 sql_store->SetStateForTesting(StoreState::NOT_LOADED, true); 442 sql_store->SetStateForTesting(StoreState::NOT_LOADED, true);
453 store->GetOfflinePages( 443 store->GetOfflinePages(
454 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 444 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
455 base::Unretained(this))); 445 base::Unretained(this)));
456 PumpLoop(); 446 PumpLoop();
457 EXPECT_EQ(LOAD, last_called_callback_); 447 EXPECT_EQ(LOAD, last_called_callback_);
458 EXPECT_EQ(0UL, offline_pages_.size()); 448 EXPECT_EQ(0UL, offline_pages_.size());
459 EXPECT_EQ(STATUS_FALSE, last_status_); 449 EXPECT_EQ(STATUS_FALSE, last_status_);
460 450
461 sql_store->SetStateForTesting(StoreState::FAILED_LOADING, false); 451 sql_store->SetStateForTesting(StoreState::FAILED_LOADING, false);
462 store->GetOfflinePages( 452 store->GetOfflinePages(
463 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 453 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
464 base::Unretained(this))); 454 base::Unretained(this)));
465 PumpLoop(); 455 PumpLoop();
466 EXPECT_EQ(LOAD, last_called_callback_); 456 EXPECT_EQ(LOAD, last_called_callback_);
467 EXPECT_EQ(0UL, offline_pages_.size()); 457 EXPECT_EQ(0UL, offline_pages_.size());
468 EXPECT_EQ(STATUS_FALSE, last_status_); 458 EXPECT_EQ(STATUS_FALSE, last_status_);
469 459
470 sql_store->SetStateForTesting(StoreState::FAILED_RESET, false); 460 sql_store->SetStateForTesting(StoreState::FAILED_RESET, false);
471 store->GetOfflinePages( 461 store->GetOfflinePages(
472 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 462 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
473 base::Unretained(this))); 463 base::Unretained(this)));
474 PumpLoop(); 464 PumpLoop();
475 EXPECT_EQ(LOAD, last_called_callback_); 465 EXPECT_EQ(LOAD, last_called_callback_);
476 EXPECT_EQ(0UL, offline_pages_.size()); 466 EXPECT_EQ(0UL, offline_pages_.size());
477 EXPECT_EQ(STATUS_FALSE, last_status_); 467 EXPECT_EQ(STATUS_FALSE, last_status_);
478
479 } 468 }
480 469
481 // Loads a store which has an outdated schema. 470 // Loads a store which has an outdated schema.
482 // This test case would crash if it's not handling correctly when we're loading 471 // This test case would crash if it's not handling correctly when we're loading
483 // old version stores. 472 // old version stores.
484 // TODO(romax): Move this to sql_unittest. 473 // TODO(romax): Move this to sql_unittest.
485 TEST_F(OfflinePageMetadataStoreTest, LoadVersion52Store) { 474 TEST_F(OfflinePageMetadataStoreTest, LoadVersion52Store) {
486 std::unique_ptr<OfflinePageMetadataStore> store( 475 std::unique_ptr<OfflinePageMetadataStore> store(
487 BuildStoreWithSchemaFromM52()); 476 BuildStoreWithSchemaFromM52());
488 477
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
799 base::Unretained(this))); 788 base::Unretained(this)));
800 PumpLoop(); 789 PumpLoop();
801 790
802 EXPECT_EQ(LOAD, last_called_callback_); 791 EXPECT_EQ(LOAD, last_called_callback_);
803 EXPECT_EQ(STATUS_TRUE, last_status_); 792 EXPECT_EQ(STATUS_TRUE, last_status_);
804 ASSERT_EQ(0U, offline_pages_.size()); 793 ASSERT_EQ(0U, offline_pages_.size());
805 } 794 }
806 795
807 } // namespace 796 } // namespace
808 } // namespace offline_pages 797 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698