| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |