| 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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 statement.BindCString(8, kTestURL); | 123 statement.BindCString(8, kTestURL); |
| 124 statement.BindString(9, base::FilePath(kFilePath).MaybeAsASCII()); | 124 statement.BindString(9, base::FilePath(kFilePath).MaybeAsASCII()); |
| 125 statement.BindInt64(10, base::Time::Now().ToInternalValue()); | 125 statement.BindInt64(10, base::Time::Now().ToInternalValue()); |
| 126 ASSERT_TRUE(statement.Run()); | 126 ASSERT_TRUE(statement.Run()); |
| 127 ASSERT_TRUE(connection.DoesTableExist(OFFLINE_PAGES_TABLE_V1)); | 127 ASSERT_TRUE(connection.DoesTableExist(OFFLINE_PAGES_TABLE_V1)); |
| 128 ASSERT_FALSE(connection.DoesColumnExist(OFFLINE_PAGES_TABLE_V1, "title")); | 128 ASSERT_FALSE(connection.DoesColumnExist(OFFLINE_PAGES_TABLE_V1, "title")); |
| 129 } | 129 } |
| 130 | 130 |
| 131 class OfflinePageMetadataStoreFactory { | 131 class OfflinePageMetadataStoreFactory { |
| 132 public: | 132 public: |
| 133 OfflinePageMetadataStore* BuildStore(const base::FilePath& file) { | 133 OfflinePageMetadataStore* BuildStore(const base::FilePath& file_path) { |
| 134 OfflinePageMetadataStoreSQL* store = new OfflinePageMetadataStoreSQL( | 134 OfflinePageMetadataStoreSQL* store = new OfflinePageMetadataStoreSQL( |
| 135 base::ThreadTaskRunnerHandle::Get(), file); | 135 base::ThreadTaskRunnerHandle::Get(), file_path); |
| 136 return store; | 136 return store; |
| 137 } | 137 } |
| 138 | 138 |
| 139 OfflinePageMetadataStore* BuildStoreM52(const base::FilePath& file) { | 139 OfflinePageMetadataStore* BuildStoreM52(const base::FilePath& file_path) { |
| 140 BuildTestStoreWithSchemaFromM52(file); | 140 BuildTestStoreWithSchemaFromM52(file_path); |
| 141 OfflinePageMetadataStoreSQL* store = new OfflinePageMetadataStoreSQL( | 141 OfflinePageMetadataStoreSQL* store = new OfflinePageMetadataStoreSQL( |
| 142 base::ThreadTaskRunnerHandle::Get(), file); | 142 base::ThreadTaskRunnerHandle::Get(), file_path); |
| 143 return store; | 143 return store; |
| 144 } | 144 } |
| 145 | 145 |
| 146 OfflinePageMetadataStore* BuildStoreM53(const base::FilePath& file) { | 146 OfflinePageMetadataStore* BuildStoreM53(const base::FilePath& file_path) { |
| 147 BuildTestStoreWithSchemaFromM53(file); | 147 BuildTestStoreWithSchemaFromM53(file_path); |
| 148 OfflinePageMetadataStoreSQL* store = new OfflinePageMetadataStoreSQL( | 148 OfflinePageMetadataStoreSQL* store = new OfflinePageMetadataStoreSQL( |
| 149 base::ThreadTaskRunnerHandle::Get(), file); | 149 base::ThreadTaskRunnerHandle::Get(), file_path); |
| 150 return store; | 150 return store; |
| 151 } | 151 } |
| 152 }; | 152 }; |
| 153 | 153 |
| 154 enum CalledCallback { NONE, LOAD, ADD, REMOVE, RESET }; | 154 enum CalledCallback { NONE, LOAD, ADD, REMOVE, RESET }; |
| 155 enum Status { STATUS_NONE, STATUS_TRUE, STATUS_FALSE }; | 155 enum Status { STATUS_NONE, STATUS_TRUE, STATUS_FALSE }; |
| 156 | 156 |
| 157 class OfflinePageMetadataStoreTest : public testing::Test { | 157 class OfflinePageMetadataStoreTest : public testing::Test { |
| 158 public: | 158 public: |
| 159 OfflinePageMetadataStoreTest(); | 159 OfflinePageMetadataStoreTest(); |
| 160 ~OfflinePageMetadataStoreTest() override; | 160 ~OfflinePageMetadataStoreTest() override; |
| 161 | 161 |
| 162 void TearDown() override { | 162 void TearDown() override { |
| 163 // Wait for all the pieces of the store to delete itself properly. | 163 // Wait for all the pieces of the store to delete itself properly. |
| 164 PumpLoop(); | 164 PumpLoop(); |
| 165 } | 165 } |
| 166 | 166 |
| 167 std::unique_ptr<OfflinePageMetadataStore> BuildStore(); | 167 std::unique_ptr<OfflinePageMetadataStore> BuildStore(); |
| 168 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM52(); | 168 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM52(); |
| 169 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM53(); | 169 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM53(); |
| 170 | 170 |
| 171 void PumpLoop(); | 171 void PumpLoop(); |
| 172 | 172 |
| 173 void LoadCallback(OfflinePageMetadataStore::LoadStatus load_status, | 173 void GetOfflinePagesCallback( |
| 174 const std::vector<OfflinePageItem>& offline_pages); | 174 OfflinePageMetadataStore::LoadStatus load_status, |
| 175 const std::vector<OfflinePageItem>& offline_pages); |
| 175 void UpdateCallback(CalledCallback called_callback, bool success); | 176 void UpdateCallback(CalledCallback called_callback, bool success); |
| 176 | 177 |
| 177 void ClearResults(); | 178 void ClearResults(); |
| 178 | 179 |
| 179 OfflinePageItem CheckThatStoreHasOneItem(); | 180 OfflinePageItem CheckThatStoreHasOneItem(); |
| 180 void CheckThatOfflinePageCanBeSaved( | 181 void CheckThatOfflinePageCanBeSaved( |
| 181 std::unique_ptr<OfflinePageMetadataStore> store); | 182 std::unique_ptr<OfflinePageMetadataStore> store); |
| 182 | 183 |
| 183 protected: | 184 protected: |
| 184 CalledCallback last_called_callback_; | 185 CalledCallback last_called_callback_; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 198 task_runner_handle_(task_runner_) { | 199 task_runner_handle_(task_runner_) { |
| 199 EXPECT_TRUE(temp_directory_.CreateUniqueTempDir()); | 200 EXPECT_TRUE(temp_directory_.CreateUniqueTempDir()); |
| 200 } | 201 } |
| 201 | 202 |
| 202 OfflinePageMetadataStoreTest::~OfflinePageMetadataStoreTest() {} | 203 OfflinePageMetadataStoreTest::~OfflinePageMetadataStoreTest() {} |
| 203 | 204 |
| 204 void OfflinePageMetadataStoreTest::PumpLoop() { | 205 void OfflinePageMetadataStoreTest::PumpLoop() { |
| 205 task_runner_->RunUntilIdle(); | 206 task_runner_->RunUntilIdle(); |
| 206 } | 207 } |
| 207 | 208 |
| 208 void OfflinePageMetadataStoreTest::LoadCallback( | 209 void OfflinePageMetadataStoreTest::GetOfflinePagesCallback( |
| 209 OfflinePageMetadataStore::LoadStatus load_status, | 210 OfflinePageMetadataStore::LoadStatus load_status, |
| 210 const std::vector<OfflinePageItem>& offline_pages) { | 211 const std::vector<OfflinePageItem>& offline_pages) { |
| 211 last_called_callback_ = LOAD; | 212 last_called_callback_ = LOAD; |
| 212 last_status_ = load_status == OfflinePageMetadataStore::LOAD_SUCCEEDED ? | 213 last_status_ = load_status == OfflinePageMetadataStore::LOAD_SUCCEEDED ? |
| 213 STATUS_TRUE : STATUS_FALSE; | 214 STATUS_TRUE : STATUS_FALSE; |
| 214 offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages)); | 215 offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages)); |
| 215 } | 216 } |
| 216 | 217 |
| 217 void OfflinePageMetadataStoreTest::UpdateCallback( | 218 void OfflinePageMetadataStoreTest::UpdateCallback( |
| 218 CalledCallback called_callback, | 219 CalledCallback called_callback, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id); | 274 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id); |
| 274 EXPECT_EQ(1234LL, offline_pages_[0].offline_id); | 275 EXPECT_EQ(1234LL, offline_pages_[0].offline_id); |
| 275 EXPECT_EQ(kFileSize, offline_pages_[0].file_size); | 276 EXPECT_EQ(kFileSize, offline_pages_[0].file_size); |
| 276 EXPECT_EQ(kTestClientId1, offline_pages_[0].client_id); | 277 EXPECT_EQ(kTestClientId1, offline_pages_[0].client_id); |
| 277 } | 278 } |
| 278 | 279 |
| 279 std::unique_ptr<OfflinePageMetadataStore> | 280 std::unique_ptr<OfflinePageMetadataStore> |
| 280 OfflinePageMetadataStoreTest::BuildStore() { | 281 OfflinePageMetadataStoreTest::BuildStore() { |
| 281 std::unique_ptr<OfflinePageMetadataStore> store( | 282 std::unique_ptr<OfflinePageMetadataStore> store( |
| 282 factory_.BuildStore(temp_directory_.path())); | 283 factory_.BuildStore(temp_directory_.path())); |
| 283 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 284 store->GetOfflinePages( |
| 284 base::Unretained(this))); | 285 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 286 base::Unretained(this))); |
| 285 PumpLoop(); | 287 PumpLoop(); |
| 286 return store; | 288 return store; |
| 287 } | 289 } |
| 288 | 290 |
| 289 std::unique_ptr<OfflinePageMetadataStore> | 291 std::unique_ptr<OfflinePageMetadataStore> |
| 290 OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM52() { | 292 OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM52() { |
| 291 std::unique_ptr<OfflinePageMetadataStore> store( | 293 std::unique_ptr<OfflinePageMetadataStore> store( |
| 292 factory_.BuildStoreM52(temp_directory_.path())); | 294 factory_.BuildStoreM52(temp_directory_.path())); |
| 293 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 295 store->GetOfflinePages( |
| 294 base::Unretained(this))); | 296 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 297 base::Unretained(this))); |
| 295 PumpLoop(); | 298 PumpLoop(); |
| 296 return store; | 299 return store; |
| 297 } | 300 } |
| 298 | 301 |
| 299 std::unique_ptr<OfflinePageMetadataStore> | 302 std::unique_ptr<OfflinePageMetadataStore> |
| 300 OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM53() { | 303 OfflinePageMetadataStoreTest::BuildStoreWithSchemaFromM53() { |
| 301 std::unique_ptr<OfflinePageMetadataStore> store( | 304 std::unique_ptr<OfflinePageMetadataStore> store( |
| 302 factory_.BuildStoreM53(temp_directory_.path())); | 305 factory_.BuildStoreM53(temp_directory_.path())); |
| 303 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 306 store->GetOfflinePages( |
| 304 base::Unretained(this))); | 307 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 308 base::Unretained(this))); |
| 305 PumpLoop(); | 309 PumpLoop(); |
| 306 return store; | 310 return store; |
| 307 } | 311 } |
| 308 | 312 |
| 309 // Loads empty store and makes sure that there are no offline pages stored in | 313 // Loads empty store and makes sure that there are no offline pages stored in |
| 310 // it. | 314 // it. |
| 311 TEST_F(OfflinePageMetadataStoreTest, LoadEmptyStore) { | 315 TEST_F(OfflinePageMetadataStoreTest, LoadEmptyStore) { |
| 312 std::unique_ptr<OfflinePageMetadataStore> store(BuildStore()); | 316 std::unique_ptr<OfflinePageMetadataStore> store(BuildStore()); |
| 313 EXPECT_EQ(LOAD, last_called_callback_); | 317 EXPECT_EQ(LOAD, last_called_callback_); |
| 314 EXPECT_EQ(STATUS_TRUE, last_status_); | 318 EXPECT_EQ(STATUS_TRUE, last_status_); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 store->AddOrUpdateOfflinePage( | 364 store->AddOrUpdateOfflinePage( |
| 361 offline_page, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 365 offline_page, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 362 base::Unretained(this), ADD)); | 366 base::Unretained(this), ADD)); |
| 363 PumpLoop(); | 367 PumpLoop(); |
| 364 EXPECT_EQ(ADD, last_called_callback_); | 368 EXPECT_EQ(ADD, last_called_callback_); |
| 365 EXPECT_EQ(STATUS_TRUE, last_status_); | 369 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 366 | 370 |
| 367 ClearResults(); | 371 ClearResults(); |
| 368 | 372 |
| 369 // Load the store. | 373 // Load the store. |
| 370 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 374 store->GetOfflinePages( |
| 371 base::Unretained(this))); | 375 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 376 base::Unretained(this))); |
| 372 PumpLoop(); | 377 PumpLoop(); |
| 373 EXPECT_EQ(LOAD, last_called_callback_); | 378 EXPECT_EQ(LOAD, last_called_callback_); |
| 374 EXPECT_EQ(1U, offline_pages_.size()); | 379 EXPECT_EQ(1U, offline_pages_.size()); |
| 375 | 380 |
| 376 // Remove the offline page. | 381 // Remove the offline page. |
| 377 std::vector<int64_t> ids_to_remove; | 382 std::vector<int64_t> ids_to_remove; |
| 378 ids_to_remove.push_back(offline_page.offline_id); | 383 ids_to_remove.push_back(offline_page.offline_id); |
| 379 store->RemoveOfflinePages( | 384 store->RemoveOfflinePages( |
| 380 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 385 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 381 base::Unretained(this), REMOVE)); | 386 base::Unretained(this), REMOVE)); |
| 382 PumpLoop(); | 387 PumpLoop(); |
| 383 EXPECT_EQ(REMOVE, last_called_callback_); | 388 EXPECT_EQ(REMOVE, last_called_callback_); |
| 384 EXPECT_EQ(STATUS_TRUE, last_status_); | 389 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 385 | 390 |
| 386 ClearResults(); | 391 ClearResults(); |
| 387 | 392 |
| 388 // Load the store. | 393 // Load the store. |
| 389 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 394 store->GetOfflinePages( |
| 390 base::Unretained(this))); | 395 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 396 base::Unretained(this))); |
| 391 PumpLoop(); | 397 PumpLoop(); |
| 392 EXPECT_EQ(LOAD, last_called_callback_); | 398 EXPECT_EQ(LOAD, last_called_callback_); |
| 393 EXPECT_EQ(0U, offline_pages_.size()); | 399 EXPECT_EQ(0U, offline_pages_.size()); |
| 394 | 400 |
| 395 ClearResults(); | 401 ClearResults(); |
| 396 | 402 |
| 397 // Close and reload the store. | 403 // Close and reload the store. |
| 398 store.reset(); | 404 store.reset(); |
| 399 store = BuildStore(); | 405 store = BuildStore(); |
| 400 EXPECT_EQ(LOAD, last_called_callback_); | 406 EXPECT_EQ(LOAD, last_called_callback_); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 428 store->AddOrUpdateOfflinePage( | 434 store->AddOrUpdateOfflinePage( |
| 429 offline_page_2, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 435 offline_page_2, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 430 base::Unretained(this), ADD)); | 436 base::Unretained(this), ADD)); |
| 431 PumpLoop(); | 437 PumpLoop(); |
| 432 EXPECT_EQ(ADD, last_called_callback_); | 438 EXPECT_EQ(ADD, last_called_callback_); |
| 433 EXPECT_EQ(STATUS_TRUE, last_status_); | 439 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 434 | 440 |
| 435 ClearResults(); | 441 ClearResults(); |
| 436 | 442 |
| 437 // Load the store. | 443 // Load the store. |
| 438 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 444 store->GetOfflinePages( |
| 439 base::Unretained(this))); | 445 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 446 base::Unretained(this))); |
| 440 PumpLoop(); | 447 PumpLoop(); |
| 441 | 448 |
| 442 EXPECT_EQ(LOAD, last_called_callback_); | 449 EXPECT_EQ(LOAD, last_called_callback_); |
| 443 EXPECT_EQ(STATUS_TRUE, last_status_); | 450 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 444 EXPECT_EQ(2U, offline_pages_.size()); | 451 EXPECT_EQ(2U, offline_pages_.size()); |
| 445 | 452 |
| 446 // Remove the offline page. | 453 // Remove the offline page. |
| 447 std::vector<int64_t> ids_to_remove; | 454 std::vector<int64_t> ids_to_remove; |
| 448 ids_to_remove.push_back(offline_page_1.offline_id); | 455 ids_to_remove.push_back(offline_page_1.offline_id); |
| 449 store->RemoveOfflinePages( | 456 store->RemoveOfflinePages( |
| 450 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 457 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 451 base::Unretained(this), REMOVE)); | 458 base::Unretained(this), REMOVE)); |
| 452 PumpLoop(); | 459 PumpLoop(); |
| 453 EXPECT_EQ(REMOVE, last_called_callback_); | 460 EXPECT_EQ(REMOVE, last_called_callback_); |
| 454 EXPECT_EQ(STATUS_TRUE, last_status_); | 461 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 455 | 462 |
| 456 ClearResults(); | 463 ClearResults(); |
| 457 | 464 |
| 458 // Close and reload the store. | 465 // Close and reload the store. |
| 459 store.reset(); | 466 store.reset(); |
| 460 store = BuildStore(); | 467 store = BuildStore(); |
| 461 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 468 store->GetOfflinePages( |
| 462 base::Unretained(this))); | 469 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 470 base::Unretained(this))); |
| 463 PumpLoop(); | 471 PumpLoop(); |
| 464 | 472 |
| 465 EXPECT_EQ(LOAD, last_called_callback_); | 473 EXPECT_EQ(LOAD, last_called_callback_); |
| 466 EXPECT_EQ(STATUS_TRUE, last_status_); | 474 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 467 ASSERT_EQ(1U, offline_pages_.size()); | 475 ASSERT_EQ(1U, offline_pages_.size()); |
| 468 EXPECT_EQ(offline_page_2.url, offline_pages_[0].url); | 476 EXPECT_EQ(offline_page_2.url, offline_pages_[0].url); |
| 469 EXPECT_EQ(offline_page_2.offline_id, offline_pages_[0].offline_id); | 477 EXPECT_EQ(offline_page_2.offline_id, offline_pages_[0].offline_id); |
| 470 EXPECT_EQ(offline_page_2.version, offline_pages_[0].version); | 478 EXPECT_EQ(offline_page_2.version, offline_pages_[0].version); |
| 471 EXPECT_EQ(offline_page_2.file_path, offline_pages_[0].file_path); | 479 EXPECT_EQ(offline_page_2.file_path, offline_pages_[0].file_path); |
| 472 EXPECT_EQ(offline_page_2.file_size, offline_pages_[0].file_size); | 480 EXPECT_EQ(offline_page_2.file_size, offline_pages_[0].file_size); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 486 OfflinePageItem offline_page(GURL(kTestURL), 1234LL, kTestClientId1, | 494 OfflinePageItem offline_page(GURL(kTestURL), 1234LL, kTestClientId1, |
| 487 base::FilePath(kFilePath), kFileSize); | 495 base::FilePath(kFilePath), kFileSize); |
| 488 store->AddOrUpdateOfflinePage( | 496 store->AddOrUpdateOfflinePage( |
| 489 offline_page, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 497 offline_page, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 490 base::Unretained(this), ADD)); | 498 base::Unretained(this), ADD)); |
| 491 PumpLoop(); | 499 PumpLoop(); |
| 492 EXPECT_EQ(ADD, last_called_callback_); | 500 EXPECT_EQ(ADD, last_called_callback_); |
| 493 EXPECT_EQ(STATUS_TRUE, last_status_); | 501 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 494 | 502 |
| 495 ClearResults(); | 503 ClearResults(); |
| 496 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 504 store->GetOfflinePages( |
| 497 base::Unretained(this))); | 505 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 506 base::Unretained(this))); |
| 498 PumpLoop(); | 507 PumpLoop(); |
| 499 | 508 |
| 500 EXPECT_EQ(LOAD, last_called_callback_); | 509 EXPECT_EQ(LOAD, last_called_callback_); |
| 501 EXPECT_EQ(STATUS_TRUE, last_status_); | 510 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 502 ASSERT_EQ(1U, offline_pages_.size()); | 511 ASSERT_EQ(1U, offline_pages_.size()); |
| 503 EXPECT_EQ(offline_page.url, offline_pages_[0].url); | 512 EXPECT_EQ(offline_page.url, offline_pages_[0].url); |
| 504 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id); | 513 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id); |
| 505 EXPECT_EQ(offline_page.version, offline_pages_[0].version); | 514 EXPECT_EQ(offline_page.version, offline_pages_[0].version); |
| 506 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path); | 515 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path); |
| 507 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size); | 516 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size); |
| 508 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time); | 517 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time); |
| 509 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time); | 518 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time); |
| 510 EXPECT_EQ(offline_page.expiration_time, offline_pages_[0].expiration_time); | 519 EXPECT_EQ(offline_page.expiration_time, offline_pages_[0].expiration_time); |
| 511 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count); | 520 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count); |
| 512 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id); | 521 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id); |
| 513 | 522 |
| 514 // Then update some data. | 523 // Then update some data. |
| 515 offline_page.file_size = kFileSize + 1; | 524 offline_page.file_size = kFileSize + 1; |
| 516 offline_page.access_count++; | 525 offline_page.access_count++; |
| 517 offline_page.expiration_time = base::Time::Now(); | 526 offline_page.expiration_time = base::Time::Now(); |
| 518 store->AddOrUpdateOfflinePage( | 527 store->AddOrUpdateOfflinePage( |
| 519 offline_page, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 528 offline_page, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 520 base::Unretained(this), ADD)); | 529 base::Unretained(this), ADD)); |
| 521 PumpLoop(); | 530 PumpLoop(); |
| 522 EXPECT_EQ(ADD, last_called_callback_); | 531 EXPECT_EQ(ADD, last_called_callback_); |
| 523 EXPECT_EQ(STATUS_TRUE, last_status_); | 532 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 524 | 533 |
| 525 ClearResults(); | 534 ClearResults(); |
| 526 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 535 store->GetOfflinePages( |
| 527 base::Unretained(this))); | 536 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 537 base::Unretained(this))); |
| 528 PumpLoop(); | 538 PumpLoop(); |
| 529 | 539 |
| 530 EXPECT_EQ(LOAD, last_called_callback_); | 540 EXPECT_EQ(LOAD, last_called_callback_); |
| 531 EXPECT_EQ(STATUS_TRUE, last_status_); | 541 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 532 ASSERT_EQ(1U, offline_pages_.size()); | 542 ASSERT_EQ(1U, offline_pages_.size()); |
| 533 EXPECT_EQ(offline_page.url, offline_pages_[0].url); | 543 EXPECT_EQ(offline_page.url, offline_pages_[0].url); |
| 534 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id); | 544 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id); |
| 535 EXPECT_EQ(offline_page.version, offline_pages_[0].version); | 545 EXPECT_EQ(offline_page.version, offline_pages_[0].version); |
| 536 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path); | 546 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path); |
| 537 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size); | 547 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 562 store->AddOrUpdateOfflinePage( | 572 store->AddOrUpdateOfflinePage( |
| 563 offline_page2, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 573 offline_page2, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 564 base::Unretained(this), ADD)); | 574 base::Unretained(this), ADD)); |
| 565 PumpLoop(); | 575 PumpLoop(); |
| 566 EXPECT_EQ(ADD, last_called_callback_); | 576 EXPECT_EQ(ADD, last_called_callback_); |
| 567 EXPECT_EQ(STATUS_TRUE, last_status_); | 577 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 568 | 578 |
| 569 ClearResults(); | 579 ClearResults(); |
| 570 | 580 |
| 571 // Load the store. | 581 // Load the store. |
| 572 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 582 store->GetOfflinePages( |
| 573 base::Unretained(this))); | 583 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 584 base::Unretained(this))); |
| 574 PumpLoop(); | 585 PumpLoop(); |
| 575 | 586 |
| 576 EXPECT_EQ(LOAD, last_called_callback_); | 587 EXPECT_EQ(LOAD, last_called_callback_); |
| 577 EXPECT_EQ(STATUS_TRUE, last_status_); | 588 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 578 EXPECT_EQ(2U, offline_pages_.size()); | 589 EXPECT_EQ(2U, offline_pages_.size()); |
| 579 | 590 |
| 580 // Clear all records from the store. | 591 // Clear all records from the store. |
| 581 store->Reset(base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, | 592 store->Reset(base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, |
| 582 base::Unretained(this), RESET)); | 593 base::Unretained(this), RESET)); |
| 583 PumpLoop(); | 594 PumpLoop(); |
| 584 EXPECT_EQ(RESET, last_called_callback_); | 595 EXPECT_EQ(RESET, last_called_callback_); |
| 585 EXPECT_EQ(STATUS_TRUE, last_status_); | 596 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 586 | 597 |
| 587 // Load the store. | 598 // Load the store. |
| 588 store->Load(base::Bind(&OfflinePageMetadataStoreTest::LoadCallback, | 599 store->GetOfflinePages( |
| 589 base::Unretained(this))); | 600 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, |
| 601 base::Unretained(this))); |
| 590 PumpLoop(); | 602 PumpLoop(); |
| 591 | 603 |
| 592 EXPECT_EQ(LOAD, last_called_callback_); | 604 EXPECT_EQ(LOAD, last_called_callback_); |
| 593 EXPECT_EQ(STATUS_TRUE, last_status_); | 605 EXPECT_EQ(STATUS_TRUE, last_status_); |
| 594 ASSERT_EQ(0U, offline_pages_.size()); | 606 ASSERT_EQ(0U, offline_pages_.size()); |
| 595 } | 607 } |
| 596 | 608 |
| 597 } // namespace | 609 } // namespace |
| 598 } // namespace offline_pages | 610 } // namespace offline_pages |
| OLD | NEW |