| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/files/file_enumerator.h" | 7 #include "base/files/file_enumerator.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 ASSERT_TRUE( | 130 ASSERT_TRUE( |
| 131 base::Move(src_path, database_path_.Append(src_path.BaseName()))); | 131 base::Move(src_path, database_path_.Append(src_path.BaseName()))); |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 | 134 |
| 135 void SetInvalidateCallback(const base::Closure& callback) { | 135 void SetInvalidateCallback(const base::Closure& callback) { |
| 136 DCHECK(invalidate_callback_.is_null()); | 136 DCHECK(invalidate_callback_.is_null()); |
| 137 invalidate_callback_ = callback; | 137 invalidate_callback_ = callback; |
| 138 } | 138 } |
| 139 | 139 |
| 140 virtual void InvalidateData() OVERRIDE { | 140 virtual void InvalidateData() override { |
| 141 PicasaDataProvider::InvalidateData(); | 141 PicasaDataProvider::InvalidateData(); |
| 142 | 142 |
| 143 if (!invalidate_callback_.is_null()) { | 143 if (!invalidate_callback_.is_null()) { |
| 144 invalidate_callback_.Run(); | 144 invalidate_callback_.Run(); |
| 145 invalidate_callback_.Reset(); | 145 invalidate_callback_.Reset(); |
| 146 } | 146 } |
| 147 } | 147 } |
| 148 | 148 |
| 149 void SetAlbumMapsForTesting(const AlbumMap& album_map, | 149 void SetAlbumMapsForTesting(const AlbumMap& album_map, |
| 150 const AlbumMap& folder_map) { | 150 const AlbumMap& folder_map) { |
| 151 album_map_ = album_map; | 151 album_map_ = album_map; |
| 152 folder_map_ = folder_map; | 152 folder_map_ = folder_map; |
| 153 } | 153 } |
| 154 | 154 |
| 155 private: | 155 private: |
| 156 virtual void OnTempDirWatchStarted( | 156 virtual void OnTempDirWatchStarted( |
| 157 scoped_ptr<base::FilePathWatcher> temp_dir_watcher) OVERRIDE { | 157 scoped_ptr<base::FilePathWatcher> temp_dir_watcher) override { |
| 158 PicasaDataProvider::OnTempDirWatchStarted(temp_dir_watcher.Pass()); | 158 PicasaDataProvider::OnTempDirWatchStarted(temp_dir_watcher.Pass()); |
| 159 | 159 |
| 160 file_watch_request_returned_ = true; | 160 file_watch_request_returned_ = true; |
| 161 for (std::vector<ReadyCallback>::const_iterator it = | 161 for (std::vector<ReadyCallback>::const_iterator it = |
| 162 file_watch_started_callbacks_.begin(); | 162 file_watch_started_callbacks_.begin(); |
| 163 it != file_watch_started_callbacks_.end(); | 163 it != file_watch_started_callbacks_.end(); |
| 164 ++it) { | 164 ++it) { |
| 165 it->Run(temp_dir_watcher_.get() != NULL); | 165 it->Run(temp_dir_watcher_.get() != NULL); |
| 166 } | 166 } |
| 167 file_watch_started_callbacks_.clear(); | 167 file_watch_started_callbacks_.clear(); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 | 272 |
| 273 scoped_ptr<TestPicasaDataProvider> picasa_data_provider_; | 273 scoped_ptr<TestPicasaDataProvider> picasa_data_provider_; |
| 274 | 274 |
| 275 base::Closure quit_closure_; | 275 base::Closure quit_closure_; |
| 276 | 276 |
| 277 DISALLOW_COPY_AND_ASSIGN(PicasaDataProviderTest); | 277 DISALLOW_COPY_AND_ASSIGN(PicasaDataProviderTest); |
| 278 }; | 278 }; |
| 279 | 279 |
| 280 class PicasaDataProviderNoDatabaseGetListTest : public PicasaDataProviderTest { | 280 class PicasaDataProviderNoDatabaseGetListTest : public PicasaDataProviderTest { |
| 281 protected: | 281 protected: |
| 282 virtual PicasaDataProvider::DataType RequestedDataType() const OVERRIDE { | 282 virtual PicasaDataProvider::DataType RequestedDataType() const override { |
| 283 return PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA; | 283 return PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA; |
| 284 } | 284 } |
| 285 virtual void VerifyRefreshResults(bool parse_success) OVERRIDE { | 285 virtual void VerifyRefreshResults(bool parse_success) override { |
| 286 EXPECT_FALSE(parse_success); | 286 EXPECT_FALSE(parse_success); |
| 287 TestDone(); | 287 TestDone(); |
| 288 } | 288 } |
| 289 }; | 289 }; |
| 290 | 290 |
| 291 IN_PROC_BROWSER_TEST_F(PicasaDataProviderNoDatabaseGetListTest, | 291 IN_PROC_BROWSER_TEST_F(PicasaDataProviderNoDatabaseGetListTest, |
| 292 NoDatabaseGetList) { | 292 NoDatabaseGetList) { |
| 293 RunTest(); | 293 RunTest(); |
| 294 } | 294 } |
| 295 | 295 |
| 296 class PicasaDataProviderNoDatabaseGetAlbumsImagesTest | 296 class PicasaDataProviderNoDatabaseGetAlbumsImagesTest |
| 297 : public PicasaDataProviderTest { | 297 : public PicasaDataProviderTest { |
| 298 protected: | 298 protected: |
| 299 virtual PicasaDataProvider::DataType RequestedDataType() const OVERRIDE { | 299 virtual PicasaDataProvider::DataType RequestedDataType() const override { |
| 300 return PicasaDataProvider::ALBUMS_IMAGES_DATA; | 300 return PicasaDataProvider::ALBUMS_IMAGES_DATA; |
| 301 } | 301 } |
| 302 virtual void VerifyRefreshResults(bool parse_success) OVERRIDE { | 302 virtual void VerifyRefreshResults(bool parse_success) override { |
| 303 EXPECT_FALSE(parse_success); | 303 EXPECT_FALSE(parse_success); |
| 304 TestDone(); | 304 TestDone(); |
| 305 } | 305 } |
| 306 }; | 306 }; |
| 307 | 307 |
| 308 IN_PROC_BROWSER_TEST_F(PicasaDataProviderNoDatabaseGetAlbumsImagesTest, | 308 IN_PROC_BROWSER_TEST_F(PicasaDataProviderNoDatabaseGetAlbumsImagesTest, |
| 309 NoDatabaseGetAlbumsImages) { | 309 NoDatabaseGetAlbumsImages) { |
| 310 RunTest(); | 310 RunTest(); |
| 311 } | 311 } |
| 312 | 312 |
| 313 class PicasaDataProviderGetListTest : public PicasaDataProviderTest { | 313 class PicasaDataProviderGetListTest : public PicasaDataProviderTest { |
| 314 protected: | 314 protected: |
| 315 virtual void InitializeTestData() OVERRIDE { | 315 virtual void InitializeTestData() override { |
| 316 WriteTestAlbumTable(GetColumnFileDestination(), test_folder_1_path(), | 316 WriteTestAlbumTable(GetColumnFileDestination(), test_folder_1_path(), |
| 317 test_folder_2_path()); | 317 test_folder_2_path()); |
| 318 } | 318 } |
| 319 | 319 |
| 320 virtual PicasaDataProvider::DataType RequestedDataType() const OVERRIDE { | 320 virtual PicasaDataProvider::DataType RequestedDataType() const override { |
| 321 return PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA; | 321 return PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA; |
| 322 } | 322 } |
| 323 | 323 |
| 324 virtual void VerifyRefreshResults(bool parse_success) OVERRIDE { | 324 virtual void VerifyRefreshResults(bool parse_success) override { |
| 325 ASSERT_TRUE(parse_success); | 325 ASSERT_TRUE(parse_success); |
| 326 VerifyTestAlbumTable( | 326 VerifyTestAlbumTable( |
| 327 data_provider(), test_folder_1_path(), test_folder_2_path()); | 327 data_provider(), test_folder_1_path(), test_folder_2_path()); |
| 328 TestDone(); | 328 TestDone(); |
| 329 } | 329 } |
| 330 }; | 330 }; |
| 331 | 331 |
| 332 IN_PROC_BROWSER_TEST_F(PicasaDataProviderGetListTest, GetListTest) { | 332 IN_PROC_BROWSER_TEST_F(PicasaDataProviderGetListTest, GetListTest) { |
| 333 RunTest(); | 333 RunTest(); |
| 334 } | 334 } |
| 335 | 335 |
| 336 class PicasaDataProviderGetAlbumsImagesTest : public PicasaDataProviderTest { | 336 class PicasaDataProviderGetAlbumsImagesTest : public PicasaDataProviderTest { |
| 337 protected: | 337 protected: |
| 338 virtual void InitializeTestData() OVERRIDE { | 338 virtual void InitializeTestData() override { |
| 339 WriteTestAlbumTable(GetColumnFileDestination(), test_folder_1_path(), | 339 WriteTestAlbumTable(GetColumnFileDestination(), test_folder_1_path(), |
| 340 test_folder_2_path()); | 340 test_folder_2_path()); |
| 341 WriteTestAlbumsImagesIndex(test_folder_1_path(), test_folder_2_path()); | 341 WriteTestAlbumsImagesIndex(test_folder_1_path(), test_folder_2_path()); |
| 342 } | 342 } |
| 343 | 343 |
| 344 virtual PicasaDataProvider::DataType RequestedDataType() const OVERRIDE { | 344 virtual PicasaDataProvider::DataType RequestedDataType() const override { |
| 345 return PicasaDataProvider::ALBUMS_IMAGES_DATA; | 345 return PicasaDataProvider::ALBUMS_IMAGES_DATA; |
| 346 } | 346 } |
| 347 | 347 |
| 348 virtual void VerifyRefreshResults(bool parse_success) OVERRIDE { | 348 virtual void VerifyRefreshResults(bool parse_success) override { |
| 349 ASSERT_TRUE(parse_success); | 349 ASSERT_TRUE(parse_success); |
| 350 VerifyTestAlbumTable( | 350 VerifyTestAlbumTable( |
| 351 data_provider(), test_folder_1_path(), test_folder_2_path()); | 351 data_provider(), test_folder_1_path(), test_folder_2_path()); |
| 352 VerifyTestAlbumsImagesIndex( | 352 VerifyTestAlbumsImagesIndex( |
| 353 data_provider(), test_folder_1_path(), test_folder_2_path()); | 353 data_provider(), test_folder_1_path(), test_folder_2_path()); |
| 354 TestDone(); | 354 TestDone(); |
| 355 } | 355 } |
| 356 }; | 356 }; |
| 357 | 357 |
| 358 IN_PROC_BROWSER_TEST_F(PicasaDataProviderGetAlbumsImagesTest, | 358 IN_PROC_BROWSER_TEST_F(PicasaDataProviderGetAlbumsImagesTest, |
| 359 GetAlbumsImagesTest) { | 359 GetAlbumsImagesTest) { |
| 360 RunTest(); | 360 RunTest(); |
| 361 } | 361 } |
| 362 | 362 |
| 363 class PicasaDataProviderMultipleMixedCallbacksTest | 363 class PicasaDataProviderMultipleMixedCallbacksTest |
| 364 : public PicasaDataProviderTest { | 364 : public PicasaDataProviderTest { |
| 365 public: | 365 public: |
| 366 PicasaDataProviderMultipleMixedCallbacksTest() | 366 PicasaDataProviderMultipleMixedCallbacksTest() |
| 367 : list_callbacks_called_(0), albums_images_callbacks_called_(0) {} | 367 : list_callbacks_called_(0), albums_images_callbacks_called_(0) {} |
| 368 | 368 |
| 369 virtual void InitializeTestData() OVERRIDE { | 369 virtual void InitializeTestData() override { |
| 370 WriteTestAlbumTable(GetColumnFileDestination(), test_folder_1_path(), | 370 WriteTestAlbumTable(GetColumnFileDestination(), test_folder_1_path(), |
| 371 test_folder_2_path()); | 371 test_folder_2_path()); |
| 372 WriteTestAlbumsImagesIndex(test_folder_1_path(), test_folder_2_path()); | 372 WriteTestAlbumsImagesIndex(test_folder_1_path(), test_folder_2_path()); |
| 373 } | 373 } |
| 374 | 374 |
| 375 virtual PicasaDataProvider::DataType RequestedDataType() const OVERRIDE { | 375 virtual PicasaDataProvider::DataType RequestedDataType() const override { |
| 376 return PicasaDataProvider::ALBUMS_IMAGES_DATA; | 376 return PicasaDataProvider::ALBUMS_IMAGES_DATA; |
| 377 } | 377 } |
| 378 | 378 |
| 379 protected: | 379 protected: |
| 380 virtual void ListCallback(int expected_list_callbacks_called, | 380 virtual void ListCallback(int expected_list_callbacks_called, |
| 381 bool parse_success) { | 381 bool parse_success) { |
| 382 ASSERT_TRUE(parse_success); | 382 ASSERT_TRUE(parse_success); |
| 383 ASSERT_EQ(expected_list_callbacks_called, ++list_callbacks_called_); | 383 ASSERT_EQ(expected_list_callbacks_called, ++list_callbacks_called_); |
| 384 VerifyTestAlbumTable( | 384 VerifyTestAlbumTable( |
| 385 data_provider(), test_folder_1_path(), test_folder_2_path()); | 385 data_provider(), test_folder_1_path(), test_folder_2_path()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 397 } | 397 } |
| 398 | 398 |
| 399 private: | 399 private: |
| 400 void CheckTestDone() { | 400 void CheckTestDone() { |
| 401 ASSERT_LE(list_callbacks_called_, 2); | 401 ASSERT_LE(list_callbacks_called_, 2); |
| 402 ASSERT_LE(albums_images_callbacks_called_, 2); | 402 ASSERT_LE(albums_images_callbacks_called_, 2); |
| 403 if (list_callbacks_called_ == 2 && albums_images_callbacks_called_ == 2) | 403 if (list_callbacks_called_ == 2 && albums_images_callbacks_called_ == 2) |
| 404 TestDone(); | 404 TestDone(); |
| 405 } | 405 } |
| 406 | 406 |
| 407 virtual void StartTestOnMediaTaskRunner() OVERRIDE { | 407 virtual void StartTestOnMediaTaskRunner() override { |
| 408 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); | 408 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
| 409 | 409 |
| 410 data_provider()->RefreshData( | 410 data_provider()->RefreshData( |
| 411 PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA, | 411 PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA, |
| 412 base::Bind(&PicasaDataProviderMultipleMixedCallbacksTest::ListCallback, | 412 base::Bind(&PicasaDataProviderMultipleMixedCallbacksTest::ListCallback, |
| 413 base::Unretained(this), | 413 base::Unretained(this), |
| 414 1)); | 414 1)); |
| 415 data_provider()->RefreshData( | 415 data_provider()->RefreshData( |
| 416 PicasaDataProvider::ALBUMS_IMAGES_DATA, | 416 PicasaDataProvider::ALBUMS_IMAGES_DATA, |
| 417 base::Bind( | 417 base::Bind( |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 &PicasaDataProvider::RefreshData, | 459 &PicasaDataProvider::RefreshData, |
| 460 base::Unretained(data_provider()), | 460 base::Unretained(data_provider()), |
| 461 RequestedDataType(), | 461 RequestedDataType(), |
| 462 base::Bind( | 462 base::Bind( |
| 463 &PicasaDataProviderFileWatcherInvalidateTest::VerifyRefreshResults, | 463 &PicasaDataProviderFileWatcherInvalidateTest::VerifyRefreshResults, |
| 464 base::Unretained(this)))); | 464 base::Unretained(this)))); |
| 465 | 465 |
| 466 data_provider()->MoveTempFilesToDatabase(); | 466 data_provider()->MoveTempFilesToDatabase(); |
| 467 } | 467 } |
| 468 | 468 |
| 469 virtual base::FilePath GetColumnFileDestination() const OVERRIDE { | 469 virtual base::FilePath GetColumnFileDestination() const override { |
| 470 return GetTempDirPath(); | 470 return GetTempDirPath(); |
| 471 } | 471 } |
| 472 | 472 |
| 473 private: | 473 private: |
| 474 virtual void StartTestOnMediaTaskRunner() OVERRIDE { | 474 virtual void StartTestOnMediaTaskRunner() override { |
| 475 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); | 475 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
| 476 | 476 |
| 477 // Refresh before moving album table to database dir, guaranteeing failure. | 477 // Refresh before moving album table to database dir, guaranteeing failure. |
| 478 data_provider()->RefreshData( | 478 data_provider()->RefreshData( |
| 479 RequestedDataType(), | 479 RequestedDataType(), |
| 480 base::Bind( | 480 base::Bind( |
| 481 &PicasaDataProviderFileWatcherInvalidateTest::ListCallback, | 481 &PicasaDataProviderFileWatcherInvalidateTest::ListCallback, |
| 482 base::Unretained(this))); | 482 base::Unretained(this))); |
| 483 } | 483 } |
| 484 }; | 484 }; |
| 485 | 485 |
| 486 IN_PROC_BROWSER_TEST_F(PicasaDataProviderFileWatcherInvalidateTest, | 486 IN_PROC_BROWSER_TEST_F(PicasaDataProviderFileWatcherInvalidateTest, |
| 487 FileWatcherInvalidateTest) { | 487 FileWatcherInvalidateTest) { |
| 488 RunTest(); | 488 RunTest(); |
| 489 } | 489 } |
| 490 | 490 |
| 491 class PicasaDataProviderInvalidateInflightTableReaderTest | 491 class PicasaDataProviderInvalidateInflightTableReaderTest |
| 492 : public PicasaDataProviderGetListTest { | 492 : public PicasaDataProviderGetListTest { |
| 493 protected: | 493 protected: |
| 494 // Don't write the database files until later. | 494 // Don't write the database files until later. |
| 495 virtual void InitializeTestData() OVERRIDE {} | 495 virtual void InitializeTestData() override {} |
| 496 | 496 |
| 497 private: | 497 private: |
| 498 virtual void StartTestOnMediaTaskRunner() OVERRIDE { | 498 virtual void StartTestOnMediaTaskRunner() override { |
| 499 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); | 499 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
| 500 | 500 |
| 501 // Refresh before the database files have been written. | 501 // Refresh before the database files have been written. |
| 502 // This is guaranteed to fail to read the album table. | 502 // This is guaranteed to fail to read the album table. |
| 503 data_provider()->RefreshData( | 503 data_provider()->RefreshData( |
| 504 RequestedDataType(), | 504 RequestedDataType(), |
| 505 base::Bind(&PicasaDataProviderInvalidateInflightTableReaderTest:: | 505 base::Bind(&PicasaDataProviderInvalidateInflightTableReaderTest:: |
| 506 VerifyRefreshResults, | 506 VerifyRefreshResults, |
| 507 base::Unretained(this))); | 507 base::Unretained(this))); |
| 508 | 508 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 534 VerifyRefreshResults, | 534 VerifyRefreshResults, |
| 535 base::Unretained(this))); | 535 base::Unretained(this))); |
| 536 | 536 |
| 537 // Now invalidate all the data. The album maps will be re-read. | 537 // Now invalidate all the data. The album maps will be re-read. |
| 538 data_provider()->InvalidateData(); | 538 data_provider()->InvalidateData(); |
| 539 | 539 |
| 540 // VerifyRefreshResults callback should receive correct results now. | 540 // VerifyRefreshResults callback should receive correct results now. |
| 541 } | 541 } |
| 542 | 542 |
| 543 private: | 543 private: |
| 544 virtual void StartTestOnMediaTaskRunner() OVERRIDE { | 544 virtual void StartTestOnMediaTaskRunner() override { |
| 545 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); | 545 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
| 546 | 546 |
| 547 data_provider()->RefreshData( | 547 data_provider()->RefreshData( |
| 548 PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA, | 548 PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA, |
| 549 base::Bind(&PicasaDataProviderInvalidateInflightAlbumsIndexerTest:: | 549 base::Bind(&PicasaDataProviderInvalidateInflightAlbumsIndexerTest:: |
| 550 ListCallback, | 550 ListCallback, |
| 551 base::Unretained(this))); | 551 base::Unretained(this))); |
| 552 } | 552 } |
| 553 }; | 553 }; |
| 554 | 554 |
| 555 IN_PROC_BROWSER_TEST_F(PicasaDataProviderInvalidateInflightAlbumsIndexerTest, | 555 IN_PROC_BROWSER_TEST_F(PicasaDataProviderInvalidateInflightAlbumsIndexerTest, |
| 556 InvalidateInflightAlbumsIndexerTest) { | 556 InvalidateInflightAlbumsIndexerTest) { |
| 557 RunTest(); | 557 RunTest(); |
| 558 } | 558 } |
| 559 | 559 |
| 560 } // namespace picasa | 560 } // namespace picasa |
| OLD | NEW |