| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 bool has_more() { return has_more_; } | 49 bool has_more() { return has_more_; } |
| 50 | 50 |
| 51 private: | 51 private: |
| 52 int request_id_; | 52 int request_id_; |
| 53 scoped_ptr<RequestValue> result_; | 53 scoped_ptr<RequestValue> result_; |
| 54 bool has_more_; | 54 bool has_more_; |
| 55 }; | 55 }; |
| 56 | 56 |
| 57 class ErrorEvent { | 57 class ErrorEvent { |
| 58 public: | 58 public: |
| 59 ErrorEvent(int request_id, base::File::Error error) | 59 ErrorEvent(int request_id, |
| 60 : request_id_(request_id), error_(error) {} | 60 scoped_ptr<RequestValue> result, |
| 61 base::File::Error error) |
| 62 : request_id_(request_id), result_(result.Pass()), error_(error) {} |
| 61 virtual ~ErrorEvent() {} | 63 virtual ~ErrorEvent() {} |
| 62 | 64 |
| 63 int request_id() { return request_id_; } | 65 int request_id() { return request_id_; } |
| 66 RequestValue* result() { return result_.get(); } |
| 64 base::File::Error error() { return error_; } | 67 base::File::Error error() { return error_; } |
| 65 | 68 |
| 66 private: | 69 private: |
| 67 int request_id_; | 70 int request_id_; |
| 71 scoped_ptr<RequestValue> result_; |
| 68 base::File::Error error_; | 72 base::File::Error error_; |
| 69 }; | 73 }; |
| 70 | 74 |
| 71 EventLogger() : weak_ptr_factory_(this) {} | 75 EventLogger() : weak_ptr_factory_(this) {} |
| 72 virtual ~EventLogger() {} | 76 virtual ~EventLogger() {} |
| 73 | 77 |
| 74 void OnExecute(int request_id) { | 78 void OnExecute(int request_id) { |
| 75 execute_events_.push_back(new ExecuteEvent(request_id)); | 79 execute_events_.push_back(new ExecuteEvent(request_id)); |
| 76 } | 80 } |
| 77 | 81 |
| 78 void OnSuccess(int request_id, | 82 void OnSuccess(int request_id, |
| 79 scoped_ptr<RequestValue> result, | 83 scoped_ptr<RequestValue> result, |
| 80 bool has_more) { | 84 bool has_more) { |
| 81 success_events_.push_back( | 85 success_events_.push_back( |
| 82 new SuccessEvent(request_id, result.Pass(), has_more)); | 86 new SuccessEvent(request_id, result.Pass(), has_more)); |
| 83 } | 87 } |
| 84 | 88 |
| 85 void OnError(int request_id, base::File::Error error) { | 89 void OnError(int request_id, |
| 86 error_events_.push_back(new ErrorEvent(request_id, error)); | 90 scoped_ptr<RequestValue> result, |
| 91 base::File::Error error) { |
| 92 error_events_.push_back(new ErrorEvent(request_id, result.Pass(), error)); |
| 87 } | 93 } |
| 88 | 94 |
| 89 ScopedVector<ExecuteEvent>& execute_events() { return execute_events_; } | 95 ScopedVector<ExecuteEvent>& execute_events() { return execute_events_; } |
| 90 ScopedVector<SuccessEvent>& success_events() { return success_events_; } | 96 ScopedVector<SuccessEvent>& success_events() { return success_events_; } |
| 91 ScopedVector<ErrorEvent>& error_events() { return error_events_; } | 97 ScopedVector<ErrorEvent>& error_events() { return error_events_; } |
| 92 | 98 |
| 93 base::WeakPtr<EventLogger> GetWeakPtr() { | 99 base::WeakPtr<EventLogger> GetWeakPtr() { |
| 94 return weak_ptr_factory_.GetWeakPtr(); | 100 return weak_ptr_factory_.GetWeakPtr(); |
| 95 } | 101 } |
| 96 | 102 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 122 | 128 |
| 123 // RequestManager::Handler overrides. | 129 // RequestManager::Handler overrides. |
| 124 virtual void OnSuccess(int request_id, | 130 virtual void OnSuccess(int request_id, |
| 125 scoped_ptr<RequestValue> result, | 131 scoped_ptr<RequestValue> result, |
| 126 bool has_more) OVERRIDE { | 132 bool has_more) OVERRIDE { |
| 127 if (logger_.get()) | 133 if (logger_.get()) |
| 128 logger_->OnSuccess(request_id, result.Pass(), has_more); | 134 logger_->OnSuccess(request_id, result.Pass(), has_more); |
| 129 } | 135 } |
| 130 | 136 |
| 131 // RequestManager::Handler overrides. | 137 // RequestManager::Handler overrides. |
| 132 virtual void OnError(int request_id, base::File::Error error) OVERRIDE { | 138 virtual void OnError(int request_id, |
| 139 scoped_ptr<RequestValue> result, |
| 140 base::File::Error error) OVERRIDE { |
| 133 if (logger_.get()) | 141 if (logger_.get()) |
| 134 logger_->OnError(request_id, error); | 142 logger_->OnError(request_id, result.Pass(), error); |
| 135 } | 143 } |
| 136 | 144 |
| 137 virtual ~FakeHandler() {} | 145 virtual ~FakeHandler() {} |
| 138 | 146 |
| 139 private: | 147 private: |
| 140 base::WeakPtr<EventLogger> logger_; | 148 base::WeakPtr<EventLogger> logger_; |
| 141 bool execute_reply_; | 149 bool execute_reply_; |
| 142 DISALLOW_COPY_AND_ASSIGN(FakeHandler); | 150 DISALLOW_COPY_AND_ASSIGN(FakeHandler); |
| 143 }; | 151 }; |
| 144 | 152 |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 { | 336 { |
| 329 scoped_ptr<RequestValue> response; | 337 scoped_ptr<RequestValue> response; |
| 330 bool retry = | 338 bool retry = |
| 331 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); | 339 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); |
| 332 EXPECT_FALSE(retry); | 340 EXPECT_FALSE(retry); |
| 333 EXPECT_EQ(1u, observer.fulfilled().size()); | 341 EXPECT_EQ(1u, observer.fulfilled().size()); |
| 334 } | 342 } |
| 335 | 343 |
| 336 // Rejecting should also fail. | 344 // Rejecting should also fail. |
| 337 { | 345 { |
| 338 bool retry = request_manager_->RejectRequest(request_id, | 346 bool retry = request_manager_->RejectRequest( |
| 339 base::File::FILE_ERROR_FAILED); | 347 request_id, |
| 348 scoped_ptr<RequestValue>(new RequestValue()), |
| 349 base::File::FILE_ERROR_FAILED); |
| 340 EXPECT_FALSE(retry); | 350 EXPECT_FALSE(retry); |
| 341 EXPECT_EQ(0u, observer.rejected().size()); | 351 EXPECT_EQ(0u, observer.rejected().size()); |
| 342 } | 352 } |
| 343 | 353 |
| 344 ASSERT_EQ(1u, observer.destroyed().size()); | 354 ASSERT_EQ(1u, observer.destroyed().size()); |
| 345 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); | 355 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); |
| 346 EXPECT_EQ(0u, observer.timeouted().size()); | 356 EXPECT_EQ(0u, observer.timeouted().size()); |
| 347 | 357 |
| 348 request_manager_->RemoveObserver(&observer); | 358 request_manager_->RemoveObserver(&observer); |
| 349 } | 359 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 EXPECT_EQ(0u, logger.error_events().size()); | 442 EXPECT_EQ(0u, logger.error_events().size()); |
| 433 | 443 |
| 434 ASSERT_EQ(1u, observer.created().size()); | 444 ASSERT_EQ(1u, observer.created().size()); |
| 435 EXPECT_EQ(request_id, observer.created()[0].request_id()); | 445 EXPECT_EQ(request_id, observer.created()[0].request_id()); |
| 436 EXPECT_EQ(TESTING, observer.created()[0].type()); | 446 EXPECT_EQ(TESTING, observer.created()[0].type()); |
| 437 | 447 |
| 438 ASSERT_EQ(1u, observer.executed().size()); | 448 ASSERT_EQ(1u, observer.executed().size()); |
| 439 EXPECT_EQ(request_id, observer.executed()[0].request_id()); | 449 EXPECT_EQ(request_id, observer.executed()[0].request_id()); |
| 440 | 450 |
| 441 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; | 451 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; |
| 442 bool result = request_manager_->RejectRequest(request_id, error); | 452 bool result = request_manager_->RejectRequest( |
| 453 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); |
| 443 EXPECT_TRUE(result); | 454 EXPECT_TRUE(result); |
| 444 | 455 |
| 445 // Validate if the callback has correct arguments. | 456 // Validate if the callback has correct arguments. |
| 446 ASSERT_EQ(1u, logger.error_events().size()); | 457 ASSERT_EQ(1u, logger.error_events().size()); |
| 447 EXPECT_EQ(0u, logger.success_events().size()); | 458 EXPECT_EQ(0u, logger.success_events().size()); |
| 448 EventLogger::ErrorEvent* event = logger.error_events()[0]; | 459 EventLogger::ErrorEvent* event = logger.error_events()[0]; |
| 449 EXPECT_EQ(error, event->error()); | 460 EXPECT_EQ(error, event->error()); |
| 450 | 461 |
| 451 ASSERT_EQ(1u, observer.rejected().size()); | 462 ASSERT_EQ(1u, observer.rejected().size()); |
| 452 EXPECT_EQ(request_id, observer.rejected()[0].request_id()); | 463 EXPECT_EQ(request_id, observer.rejected()[0].request_id()); |
| 453 EXPECT_EQ(error, observer.rejected()[0].error()); | 464 EXPECT_EQ(error, observer.rejected()[0].error()); |
| 454 | 465 |
| 455 // Confirm, that the request is removed. Basically, fulfilling again for the | 466 // Confirm, that the request is removed. Basically, fulfilling again for the |
| 456 // same request, should fail. | 467 // same request, should fail. |
| 457 { | 468 { |
| 458 scoped_ptr<RequestValue> response; | 469 scoped_ptr<RequestValue> response; |
| 459 bool has_more = false; | 470 bool has_more = false; |
| 460 bool retry = | 471 bool retry = |
| 461 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); | 472 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); |
| 462 EXPECT_FALSE(retry); | 473 EXPECT_FALSE(retry); |
| 463 EXPECT_EQ(0u, observer.fulfilled().size()); | 474 EXPECT_EQ(0u, observer.fulfilled().size()); |
| 464 } | 475 } |
| 465 | 476 |
| 466 // Rejecting should also fail. | 477 // Rejecting should also fail. |
| 467 { | 478 { |
| 468 bool retry = request_manager_->RejectRequest(request_id, error); | 479 bool retry = request_manager_->RejectRequest( |
| 480 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); |
| 469 EXPECT_FALSE(retry); | 481 EXPECT_FALSE(retry); |
| 470 EXPECT_EQ(1u, observer.rejected().size()); | 482 EXPECT_EQ(1u, observer.rejected().size()); |
| 471 } | 483 } |
| 472 | 484 |
| 473 ASSERT_EQ(1u, observer.destroyed().size()); | 485 ASSERT_EQ(1u, observer.destroyed().size()); |
| 474 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); | 486 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); |
| 475 EXPECT_EQ(0u, observer.timeouted().size()); | 487 EXPECT_EQ(0u, observer.timeouted().size()); |
| 476 | 488 |
| 477 request_manager_->RemoveObserver(&observer); | 489 request_manager_->RemoveObserver(&observer); |
| 478 } | 490 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 EXPECT_EQ(0u, logger.error_events().size()); | 552 EXPECT_EQ(0u, logger.error_events().size()); |
| 541 | 553 |
| 542 ASSERT_EQ(1u, observer.created().size()); | 554 ASSERT_EQ(1u, observer.created().size()); |
| 543 EXPECT_EQ(request_id, observer.created()[0].request_id()); | 555 EXPECT_EQ(request_id, observer.created()[0].request_id()); |
| 544 EXPECT_EQ(TESTING, observer.created()[0].type()); | 556 EXPECT_EQ(TESTING, observer.created()[0].type()); |
| 545 | 557 |
| 546 ASSERT_EQ(1u, observer.executed().size()); | 558 ASSERT_EQ(1u, observer.executed().size()); |
| 547 EXPECT_EQ(request_id, observer.executed()[0].request_id()); | 559 EXPECT_EQ(request_id, observer.executed()[0].request_id()); |
| 548 | 560 |
| 549 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; | 561 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; |
| 550 bool result = request_manager_->RejectRequest(request_id + 1, error); | 562 bool result = request_manager_->RejectRequest( |
| 563 request_id + 1, scoped_ptr<RequestValue>(new RequestValue()), error); |
| 551 EXPECT_FALSE(result); | 564 EXPECT_FALSE(result); |
| 552 | 565 |
| 553 // Callbacks should not be called. | 566 // Callbacks should not be called. |
| 554 EXPECT_EQ(0u, logger.error_events().size()); | 567 EXPECT_EQ(0u, logger.error_events().size()); |
| 555 EXPECT_EQ(0u, logger.success_events().size()); | 568 EXPECT_EQ(0u, logger.success_events().size()); |
| 556 | 569 |
| 557 EXPECT_EQ(0u, observer.rejected().size()); | 570 EXPECT_EQ(0u, observer.rejected().size()); |
| 558 | 571 |
| 559 // Confirm, that the request hasn't been removed, by rejecting it correctly. | 572 // Confirm, that the request hasn't been removed, by rejecting it correctly. |
| 560 { | 573 { |
| 561 bool retry = request_manager_->RejectRequest(request_id, error); | 574 bool retry = request_manager_->RejectRequest( |
| 575 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); |
| 562 EXPECT_TRUE(retry); | 576 EXPECT_TRUE(retry); |
| 563 EXPECT_EQ(1u, observer.rejected().size()); | 577 EXPECT_EQ(1u, observer.rejected().size()); |
| 564 } | 578 } |
| 565 | 579 |
| 566 request_manager_->RemoveObserver(&observer); | 580 request_manager_->RemoveObserver(&observer); |
| 567 } | 581 } |
| 568 | 582 |
| 569 TEST_F(FileSystemProviderRequestManagerTest, UniqueIds) { | 583 TEST_F(FileSystemProviderRequestManagerTest, UniqueIds) { |
| 570 EventLogger logger; | 584 EventLogger logger; |
| 571 | 585 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 ASSERT_EQ(1u, observer.timeouted().size()); | 679 ASSERT_EQ(1u, observer.timeouted().size()); |
| 666 EXPECT_EQ(request_id, observer.timeouted()[0].request_id()); | 680 EXPECT_EQ(request_id, observer.timeouted()[0].request_id()); |
| 667 ASSERT_EQ(1u, observer.destroyed().size()); | 681 ASSERT_EQ(1u, observer.destroyed().size()); |
| 668 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); | 682 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); |
| 669 | 683 |
| 670 request_manager_->RemoveObserver(&observer); | 684 request_manager_->RemoveObserver(&observer); |
| 671 } | 685 } |
| 672 | 686 |
| 673 } // namespace file_system_provider | 687 } // namespace file_system_provider |
| 674 } // namespace chromeos | 688 } // namespace chromeos |
| OLD | NEW |